Zabbix 6 系列学习 10:原生高可用介绍及使用

2022-12-29 16:22:16 来源:51CTO博客

安装篇的最后一篇了,Zabbix 在 6.0 版本最大的变化就是提出了原生高可用功能,在之前的版本可能会通过其他第三方的方式来进行高可用,操作难度较大,本文将会对高可以展开讲解。

须知

首先要明确官方的高可用到底怎么回事?官方的高可用仅仅针对 Zabbix Server 部分,数据库部分和前端部分需要自行采用各自领域的高可用解决方案,所以如果想实现完全高可用架构,还是需要具备一定的知识储备。

启用 HA

默认情况下,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.7

Zabbix 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 操作部分了,敬请期待。

标签: 配置文件 访问时间 加入节点

上一篇:环球通讯!明晰C语言中的真/假和0/1
下一篇:将全局命名空间和零信任策略与 VMware Tanzu Service Mesh 结合使用