官方文档:1 高可用 (zabbix.com)
zabbix官方HA高可用是在6.0版本以后才支持的,通过设置配置文件内HANodeName以集群模式启动,如果没有指定那他将会以**standalone(独立)**模式启动
配置文件内NodeAddress 参数必须为每个节点指定
#集群搭建好后可以使用命令查看集群节点的状态
zabbix_server -R ha_status
当agent连接zabbix-server时,配置文件需要指定HA集群内所有zabbix-server的IP,中间以“,”作为分隔符
在配置文件中修改Server和ServerActive,指向所有的zabbix-server的地址
zabbix的前端php程序可以通过数据库的ha_node表获得各个zabbix-server节点的状态,并且自动切换连接到主节点
zabbix-server通过不断向数据库更新自己的时间戳并且查询其他节点的时间戳,当主节点宕机其时间戳不再更新,就会自动切换备用节点为主节点,以此实现高可用
故障切换时,如果是主动stop主节点,那么另一个节点将在5秒内接管,如果是突然宕机变得不可用,那么备用节点将等待故障转移延迟+5秒来接管
#故障转移延迟可被修改,默认1分钟,支持10秒到15分钟之间
zabbix_server -R ha_set_failover_delay=5m
当一个节点变得不可用,并且以后也将不再使用他时可以使用命令将他踢出集群
#主备节点不可被踢出
zabbix_server -R ha_remove_node=2
#注:删除由其 <target> 标识的 HA 节点 - 列表中节点的编号(该编号可以从运行 ha_status 的输出中获得
另外,zabbix-server之间不进行通讯,发送和获取节点状态以及前端的切换都需要通过数据库来实现
zabbix-server的状态对应数据库的值为active:3,standby:0,stopped:1,unavailable:2