zabbix 的主动模式与被动模式

默认情况下,zabbix server 会直接去每个 agent 上抓取数据,这对于 zabbix agent 来说,是被动模式,也是默认的一种获取数据的方式,但是,当 zabbix server 监控主机数量过多的时候,由 Zabbix Server 端去抓取 agent 上的数据,Zabbix server 会出现严重的性能问题,主要表现如下:

1.Web 操作界面很卡,容易出现 502 错误

2.监控图形中图层断裂

3.监控告警不及时

所以下面只要从两个方面进行优化:

1.通过部署多个 zabbix Proxy 模式做分布式监控

2.调整 Zabbix Agentd 为只动模式

Zabbix Agentd 主动模式的含义是 Agentd 端主动汇报自己收集到的数据给 Zabbix Server,这样,Zabbix Server 就会空闲很多

下面介绍下如何开启 agent 的主动模式

1、Zabbix Agentd 配置调整

修改zabbix_agentd.conf配置文件,主要是如下三个参数:

ServerActive=192.168.80.155(zabbix server 端 IP 地址)

Hostname=192.168.80.144(zabbix web 端添加主机的主机名)

StartAgents=1

ServerActive 是指定 Agentd 收集的数据往哪里发送,Hostname 必须要和 zabbix web 端添加主机时的主机名对应起来,这样 zabbix Server 端接收到数据才能找到对应关系,StartAgents 默认为 3,要关闭被动模式,可设置StartAgents 为 0 即可,关闭被动模式后,agent 端的 10050 端口也关闭了,这里为了兼容被动模式,没有把 StartAgents 设为 0,如果一开始就是使用主动模式的话,建议把 StartAgents 设为 0,关闭被动模式

2、Zabbix Server 端配置调整

如果开启了agent端的主动发送数据模式,还需要在zabbix Server端修改如下两个参数,保证性能。

StartPollers=10      #把这个zabbix Server主动收集数据进程减少一些。

StartTrappers=200    #把这个负责处理Agentd推送过来数据的进程开大一些。

3、调整模板

因为收集数据的模式发生了变化,因此还需要把所有的监控项的监控类型由原来的“zabbix 客户端”改成“zabbix 客户端(主动式)”

这样经过三个步骤的操作,就完成了主动模式的切换,调整之后,可以观察 zabbix server 的负载,应该会降低不少,在操作上,服务器也不卡了,图层也不裂了,zabbix的性能问题解决了。