现在有一套监控了海量服务器的zabbix分布式监控平台需整体在线从IPV4切换到IPV6,不能影响其原有的定制监控及视图。本文讲解了切换的第一步--监控主机切换。
一、zabbix分布式监控平台平台架构
本套zabbix分布式监控平台是一个多代理服务器分布式部署的典型传统架构,目前全平台均使用IPV4地址,主机数量已达5000+,平台架构图示意如下:
由于已经监控了海量的服务器,并存在大量的定制监控模板,平滑无缝迁移是整体的目标,对完成的效率并没有很强的要求。
二、实施方案探讨
基于上述背景,因此本项目拟分步实施,考虑到zabbix分布式监控环境其实从数据流向来说,从南到北可以分为四段:1、主机-代理;2、代理-server;3、server-数据库;4、数据库-web。
从影响来说,越底层影响越小,因此,为实现平滑无缝迁移,最好就是从易到难来做。第一步完成最下一层,受控主机至代理的改造。
三、实施过程
因为proxy同时需完成IPV4数据上报至server和接收主机侧未改造时的IPV4上报数据和改造后的IPV6数据,它在改造过程中必须保持双栈运行,此过程中平台的架构调整如下:
需要完成的操作如下:
1、完成所有主机和代理服务器在操作系统层面的IPV4、IPV6的双栈配置(当然两者间的网络设备、安全防护设备均需完成双栈配置);
2、因本例中zabbix主机侧采用的是主动模式,zabbix-proxy本身是支持双栈监听的,无需进行配置调整;
3、查看主机侧的zabbix_agentd.conf文件配置
bash
# cat /etc/zabbix/zabbix_agentd.conf |egrep -v "^#|^$"
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=192.168.188.236/120
ServerActive=192.168.188.236
Hostname=SRV_192.168.188.251
HostMetadata=NLLinuxAuto01
Include=/etc/zabbix/zabbix_agentd.d/*.conf
可见配置显示本机地址192.168.188.251,zabbix平台显示主机名SRV_192.168.188.251,代理服务器IP地址192.168.188.236。
4、查看主机IP信息:
ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:ad:1a:0e brd ff:ff:ff:ff:ff:ff
altname enp11s0
inet 192.168.188.251/24 brd 192.168.188.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:1::c0a8:bcfb/64 scope global noprefixroute
valid_lft forever preferred_lft forever
5、查看proxy服务器IP信息:
bash
#ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:50:56:ad:1a:8a brd ff:ff:ff:ff:ff:ff
altname enp11s0
inet 192.168.188.236/24 brd 192.168.188.255 scope global noprefixroute ens192
valid_lft forever preferred_lft forever
inet6 fe80::250:56ff:1::c0a8:bcec//64 scope global noprefixroute
valid_lft forever preferred_lft forever
6、从主机侧测试IPV6的连通性:
bash
# ping6 fe80::250:56ff:1::c0a8:bcec
PING fe80::250:56ff:1::c0a8:bcec(fe80::250:56ff:1::c0a8:bcec) 56 字节的数据
64 字节,来自 fe80::250:56ff:1::c0a8:bcec: icmp_seq=1 ttl=64 时间=0.115 毫秒
64 字节,来自 fe80::250:56ff:1::c0a8:bcec: icmp_seq=2 ttl=64 时间=0.170 毫秒
64 字节,来自 fe80::250:56ff:1::c0a8:bcec: icmp_seq=3 ttl=64 时间=0.192 毫秒
^C
--- fe80::250:56ff:1::c0a8:bcec ping 统计 ---
已发送 3 个包, 已接收 3 个包, 0% packet loss, time 2032ms
rtt min/avg/max/mdev = 0.115/0.159/0.192/0.032 ms
7、从web界面修改主机的IP,从IPV4改为IPV6,所配置的代理主机信息不变
即主机接口配置地址:fe80::250:56ff:1::c0a8:bcfb,agnet代理还是原来的代理主机名,不用调整,点击更新进行数据更新。
8、在主机侧修改zabbix_agentd.conf文件如下
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server=fe80::250:56ff:1::c0a8:bcec/120
ServerActive=[fe80::250:56ff:1::c0a8:bcec]
Hostname=SRV_192.168.188.251
HostMetadata=NLLinuxAuto01
Include=/etc/zabbix/zabbix_agentd.d/*.conf
注意Server处填写的IPV6地址不用加[],而ServerActive处的IPV6地址需要加[]。完成后重启zabbix客户端。
10、此时zabbix平台对该主机的监控即切换到了IPV6下。
四、结果验证
登录Web界面,验证主机监控信息
可见本主机已切换成功,各项监控及定制指标均未受影响,其它主机均参照修改agent配置文件并重启服务即可。
总结一下操作要点:proxy只需要启用双栈,无需进行配置修改;agent需要确保IPV6到proxy的可达性,先改web侧主机配置,再改agent侧配置文件中proxy的两项配置并重启服务即可。