当主机数量过多的时候,由Server端去收集数据,Zabbix会出现严重的性能问题,主要表现如下:
1、Web操作很卡,容易出现502
2、图层断裂
3、开启的进程(Pollar)太多,即使减少item数量,以后加入一定量的机器也会有问题
所以下面主要往两个优化方向考虑:
1、用Proxy或者Node模式做分布式监控
2、调整Agentd为主动模式
由于第一个方案需要增加物理机器,所以先尝试第二方案
一、Agentd的配置调整:
1
2
3
4
5
6
7
8
|
LogFile= /tmp/zabbix_agentd .log
Server=14.18.xxx.xxx ServerActive=14.18.xxx.xx Hostname=119.146.xxx.xx RefreshActiveChecks=60 BufferSize=10000 MaxLinesPerSecond=200 Timeout=30 |
比较重要的参数是ServerActive和Hostname,ServerActive是指定Agentd收集的数据往哪里发送,Hostname是必须要和Server端添加主机时的主机名对应起来,这样Server端接收到数据才能找到对应关系,我这里为了兼容被动模式,没有把StartAgents设为0,如果一开始就是使用主动模式的话建议把StartAgents设为0,关闭被动模式
二、Server的配置调整:
StartPollers=100
首先把这个主动收集数据进程减少,原来开到700多,囧
StartTrappers=200
然后把这个负责处理Agentd推送过来的数据的进程开大一些,就可以了
三、调整模板
建议完整克隆一个Template OS Linux 模板来改,需要调整的地方就是:
把所有的item的类型由原来的“zabbix代理”改成“zabbix端点代理程序(主动式)”
只需要简单的几步,就完成了主动模式的切换,调整之后服务器不卡了,图层不裂了,进程也少了。
本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/1562603如需转载请自行联系原作者
lihuipeng