4.6 zabbix HA原理

现在,zabbix高可用已经配置完成。zabbix server高可用是如何工作的呢?

先看看zabbix的系统信息页面,在zabbix前端单机“报表”—>“系统信息”选项,打开如图4.6.1所示的页面。

image-20241111113303313
图 4.6.1 系统信息

可以看到,这里新增了一些信息,如高可用集群信息。此信息告诉查看者是否启用了高可用功能及故障转移的延迟时间。

在示例中,故障转移的延迟时间为1分钟,这意味着在启动故障转移之前至少需要1分钟。

例外,在这里还可以看到集群中的每个节点(主机),并且zabbix现在支持集群1对多节点,下面来看看zabbix高可用的逻辑。

如图4.6.2所示,将2个zabbix server节点zabbix-ha1和zabbix-ha2连接到mariadb主机的zabbix数据库上。因为zabbix数据库是唯一的数据源,所以zabbix的集群配置也保存在数据库中。不管是主机配置信息、历史数据,还是高可用信息,都保存在数据库中。这就是为什么构建zabbix集群只要在zabbix server配置文件中填写正确的HANodeName参数即可。

Your Image
图 4.6.2 高可用示意图

在配置文件中还有一个NodeAddress参数,此参数用于zabbix前端连接zabbix server主节点,节点参数会通知前端应该连接哪个目前正处于活动状态的zabbix server。

除了zabbix server高可用,还在此部署中添加了简单的高可用配置。keepalived是一款用于在Linux主机之间构建高可用性的软件。在示例中,配置的VIP主机地址为192.168.4.26,并添加chk_apache_httpd进程监视以确定何时进行故障转移。故障转移的工作原理如下:

zabbix-ha1 has priority 244
zabbix-ha2 has priority 243

如果httpd或者apache2在主节点上运行,那么优先级的权重值增加10,2个节点的优先级的权重值分别为254和253.现在设想一下,当主节点的zabbix-ha1的web服务发生故障停止时,它的优先级的权重值将会下降到244,低于zabbix-ha2节点的优先级的权重值253.具有最高优先级的主机将拥有VIP地址192.168.4.26,这就意味着为zabbix提供前端服务的状态主机是zabbix-ha2。

结合这两种配置高可用的方法,已经为zabbix的server和web服务2个部分创建了冗余,以确保zabbix能持续提供监控服务。

为了完善zabbix高可用,除了zabbix自带的高可用功能,也可以在数据库的可用性增加高可用方法,比如MySQL主主配置。配置一个具有高可用性的zabbix数据库,可以确保你的zabbix在尽可能多的方面得到可靠的报障。有关mariadb数据库的详细信息,请仔细阅读mariadb数据库的官方文档