安装篇的最后一篇了,Zabbix 在 6.0 版本最大的变化就是提出了原生高可用功能,在之前的版本可能会通过其他第三方的方式来进行高可用,操作难度较大,本文将会对高可以展开讲解。
首先要明确官方的高可用到底怎么回事?官方的高可用仅仅针对 Zabbix Server 部分,数据库部分和前端部分需要自行采用各自领域的高可用解决方案,所以如果想实现完全高可用架构,还是需要具备一定的知识储备。
默认情况下,HA 是关闭的
(资料图片仅供参考)
本文环境
主:zabbix-server-node01:192.168.181.183备:zabbix-server-node02:192.168.181.182数据库:mysql:192.168.181.183前端:apache+php:192.168.181.183系统:almalinux 8.7Zabbix Server 配置
vim /etc/zabbix/zabbix_server.conf
HA 部分的配置在配置文件的最下面:High availability cluster parameters 部分
该部分配置有两个选项
HANodeName:故名思义,节点的名称,如果该名称为空,为 standalone模式,即为单机模式,但如果节点地址配置了,该字段为空,前端显示为 IP 地址NodeAddress:节点的 IP,格式为[:port]修改完成后,需要重启服务
systemctl restart zabbix-server
将字段填写上
重启服务后,就能看到 HA 管理器已经开启了
查看前端,高可用集群已经启用了
最新数据
安装另外一台 Zabbix Server
同样关闭防火墙和Selinux,可以参考之前的文章,本文忽略。
安装 Zabbix 源
rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/8/x86_64/zabbix-release-6.0-4.el8.noarch.rpm
安装 Zabbix Server
dnf -y install zabbix-server zabbix-agent
修改 Zabbix server 配置文件
vim /etc/zabbix/zabbix_server.conf
修改数据库的主机 IP
修改数据库的密码
修改 HA 部分的配置,填写自身的信息
此时回出现无法连接数据库,因为数据库远程登录需要有权限。
mysql -uroot -pxiaoyu123create user zabbix@"192.168.181.132" identified by "xiaoyu123";grant all privileges on zabbix.* to zabbix@"192.168.181.132";
重启 Zabbix server 服务
systemctl restart zabbix-server
就会出现下面情况,完成了加入节点,状态为 standby
系统信息里
那么其实到这里了,HA 基本就可以实现了,那么是通过什么方式来确定的呢?通过抓包可以看到,实际上备机是通过查询 Zabbix 数据库的 ha_node表,来发现是否存在需要 HA 的关系,当然具体逻辑还得需要看源码才知道,这里不展开深究。
zabbix-server-node01 停止 server 服务
systemctl stop zabbix-server
zabbix-server-node02
立即做了切换(5s内),不可用状态根据切换时间来定(默认一分钟)
日志
前端
此时出现了主 Server stoped 字样
系统报告
那么高可用测试基本就没问题了。
1.在启用了高可用双方的配置是不会自动同步的,所以需要主备集群需要保持参数一致,而主的配置参数高于备机,切换虽然能成功,但是容易出现切换完成后备机出现不可用情况
2.关于被监控的主机。
snmp 不会受主备影响agent 部分需要重新配置Server=zabbix-node-01,zabbix-node-02ServerActive=zabbix-node-01;zabbix-node-02
需要注意的是在 ServerActive的连接符是‘;’而不是‘,’,在配置文件里也有详解
Server
ServerActive
如果不调整,当主机 down 掉了,会出现下面情况
Proxy 部分也需要注意
分两种情况
主动模式Server=zabbix-node-01;zabbix-node-02被动模式
Server=zabbix-node-01,zabbix-node-02
不调整会出现无法接收数据
3.主动中断服务是5s内立即切换,但如果非人为状态,例如断电/断网/宕机,都根据 failover_delay 时间(默认一分钟)切换,所以这一分钟会出现断图,丢数据等情况
4.当加入节点后,想退出 HA 模式,此时无法主动删除,需要用命令行移除备机,再取消掉主相关配置才可以。
HA 集群状态
activestandbyunavailablestopped切换细节
主节点和备节点每5秒更新一次上次访问时间。每个备节点监控主节点的最后一次访问时间。如果主节点的最后一次访问时间超过了“故障转移延迟”秒,备用节点将自己切换为主节点,并将“unavailable”状态分配给先前的主节点。
命令行管理
修改切换时间(10s-15min)
zabbix_server -R ha_set_failover_delay=5m
查看 HA 状态
zabbix_server -R ha_status
针对 HA 新增相关模板,在 Zabbix server health 模板里
当前原生高可用功能,仅完成比较初期的功能,如果现网监控环境较复杂,需要更改的功能,当前只支持1主多备,其次性能参数无法实现自动同步,需要手工同步;再就是无法提供虚拟 IP ,所以需要在 agent/proxy 修改相关参数才可使用,但至少看到了0从1的跨越,至于1.1,1.2...怎么完善就看 Zabbix 官方如何优化该功能了,后续就进入到 Zabbix 操作部分了,敬请期待。