Zabbix Agent active批量调整客户端为主动模式监控
zabbix_server端当主机数量过多的时候,由Server端去收集数据,Zabbix会出现严重的性能问题,主要表现如下:
1、当被监控端到达一个量级的时候,Web操作很卡,容易出现502
2、图层断裂
3、开启的进程(Pollar)太多,即使减少item数量,以后加入一定量的机器也会有问题
所以下面主要往两个优化方向考虑:
1、添加Proxy节点或者Node模式做分布式监控
2、调整Agentd为主动模式
由于第一个方案需要增加物理机器,所以首先尝试第二方案。
一、被监控端 zabbix_Agentd.conf 的配置调整:
StartAgents=0 #客户端agent模式,仅为主动模式,值为0的时候,被监控端的zabbix_agentd 不监听本地端口,所以无法在 netstat -tunpl 中查看到zabbix_agentd进程
ServerActive=*.*.*.* #zabbix_server的ip
Hostname=agent_host_name #重要:主机名
RefreshActiveChecks=1800 #被监控端到服务器获取监控项的周期
BufferSize=200 #被监控端存储监控信息的空间大小
Timeout=10 #超时时间
比较重要的参数是ServerActive和Hostname,ServerActive是指定Agentd收集的数据往哪里发送,Hostname是必须要和Server端添加主机时的主机名一样,这样Server端接收到数据才能找到对应关系。
二、Server端的zabbix_server.conf 配置调整:
StartPollers=100
首先把这个主动收集数据进程减少,原来开到700多,囧
StartTrappers=200
然后把这个负责处理Agentd推送过来的数据的进程开大一些,就可以了
三、调整模板
建议完整克隆一个Template OS Linux 模板来改,需要调整的地方就是:
然后修改克隆的模板名称为 Template OS Linux Active Mode
然后修改每一个 item 的监控模式
全部勾选
然后选择 Mass update 批量修改
修改type这里为Zabbix agent(active)
update保存
然后选择 自动发现策略同样将里面的监控项修改为 active 模式并保存。
点击Item prototypes同样将里面的监控项修改为 active 模式并保存这个模板就做好了
后面添加主机关联Template OS Linux Active Mode 模板即可
添加active模板的items项目,这样就可以定制监控了(如监控某个集群的指定进程)