场景模拟:
某知名企业搭建了一套zabbix_server的高可用环境,然后通过虚拟ip(192.168.1.1)来访问真实的zabbix_server(主节点:192.168.1.2)。当zabbix_server主节点发生异常后,虚拟ip就会映射到zabbix_server(备节点:192.168.1.3)上。这时候他们做了一个高可用的切换过程。但是切换高可用后,zabbix备节点界面出现了主机无法获取数据的告警,经排查,是因为zabbix_server(主节点)上的一些自定义键值文件和自定义脚本,还有外部检查文件没有添加到zabbix_server的(备节点),所以即使切换后,zabbix_server可以访问,但是由于备节点上缺失自定义脚本的相关文件,导致zabbix备节点无法获取部分主机的数据。

部署过程:
第一步:在zabbix_server(主节点)和zabbix_server(备节点)上安装rsync服务
yum install rsync

启动rsync –daemon启动服务
Rsync --daemon
用ss –ntl查看rsync服务,默认端口为873
Zabbix_server高可用之文件同步_第1张图片
接着在主zabbix和备zabbix上编辑/etc/rc.local文件,把rsync服务设置为开机启动
在rc.local中加入/usr/bin/rsync –daemon
接下来要到备节点zabbix上配置
echo “test:test”> /etc/rsync.password&&chmod 600 /etc/rsync.password
创建rsync的password文件并更改权限。
接着配置/etc/rsyncd.conf的配置文件
Zabbix_server高可用之文件同步_第2张图片
uid和gid为nobody,即使说进行同步或者备份的用户为任何用户和任何组
然后[extend_data]和[data]为一个认证模块名,即一个认证模块名,代表同步一个目录,上面配置为同步两个目录
Read only=no
允许可读写
Auth users = test
认证的用户是test
Secrets file=/etc/rsync.password
密码文件存放的地址
备zabbix节点配置完成
下面开始主zabbix节点配置
在主节点zabbix上,创建一个用户test。要和备节点上的auth users对应。
接着创建一个密码文件。
echo “test”> /etc/rsync.password&&chmod 600 /etc/rsync.password
此时就可以在主节点zabbix上实现同步
rsync -avzP /usr/local/zabbix/ [email protected]::data --password-file=/etc/rsync.password
/usr/local/zabbix为需要同步的目录。test是用来同步备份的账号,192.168.1.3是备zabbix节点的ip,data是备节点上认证模块的名字
Zabbix_server高可用之文件同步_第3张图片
同步成功。
上面的同步方式不会删除文件。比如在主节点zabbix同步目录下删除了1.html文件,那么备节点zabbix仍然会存在1.html文件。如果要做到主zabbix删除了文件,备节点也要删除文件,必须添加-delete参数。