1、为什么要使用Zabbix Agent的主动模式?
默认情况下,Zabbix Agent运行在被动模式。在这种模式下,Zabbix Server会去每个Zabbix Agent上抓取数据。这种模式在Zabbix Server监控主机少时,不会出现问题。但是,当监控的主机数量过多时,使用这种模式将照成严重的性能问题,表现如下:
- Zabbix Web操作卡顿,出现502错误
- 监控数据不准确,报警超时
- 图层断裂
- Zabbix Server开启的poller进程过多,就算减少监控项数量,新加入一定量的机器后也会出问题
要解决Zabbix Server的性能问题,可以使用Zabbix Proxy部署分布式监控或者使用Zabbix Agent的主动模式。Zabbix Agent在使用主动模式时,会主动向Zabbix Server发送自己收到的监控数据,以减轻Zabbix Server的负担(建议在监控超过200台主机时使用主动模式)。
2、Zabbix Agent开启主动模式
Zabbix Agent要开启主动模式,必须修改Zabbix Agent配置文件的以下三项:
StartAgents ServerActive Hostname
- StartAgents:定义Zabbix Agent启用被动模式监听进程的数量。设置为0表示关闭被动模式,此时10050端口也会被关闭;设置非零可以兼容被动模式
- ServerActive:定义主动模式接收监控数据的Zabbix Server
- Hostname:必须与Zabbix Web中添加主机时的主机名对应,这样Zabbix Server才能为收集到的数据找到对应关系
3、Zabbix Server配置调整
为了保证Zabbix Server的性能,需要在Zabbix Server的配置中调整以下两项:
StartPollers StartTrappers
- StartPollers:定义Zabbix Server主动拉取数据的进程数,在使用主动模式后应该减少进程数
- StartTrappers:定义Zabbix Server接收Zabbix Agent发送数据的进程数,在使用主动模式后应该加大进程数
4、Zabbix Web监控项的修改
在使用Zabbix Agent的主动模式后,需要在Zabbix Web中将监控项的数据来源也修改为Zabbix Agent主动模式。进入模板中的监控项,修改以下配置:
将类型修改为Zabbix客户端(主动式),这样就可以在Zabbix Web获取到Zabbix Agent通过主动模式发送的数据了。