当主机数量过多的时候,由Server端去收集数据,Zabbix会出现严重的性能问题,主要表现以下:bash
一、Web操做很卡,容易出现502服务器
二、图层断裂app
三、开启的进程(Pollar)太多,即便减小item数量,之后加入必定量的机器也会有问题运维
因此下面主要往两个优化方向考虑:分布式
一、用Proxy或者Node模式作分布式监控ide
二、调整Agentd为主动模式性能
因为第一个方案须要增长物理机器,因此先尝试第二方案优化
1、Agentd的配置调整:ui
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,关闭被动模式spa
2、Server的配置调整:
StartPollers=100
首先把这个主动收集数据进程减小,原来开到700多,囧
StartTrappers=200
而后把这个负责处理Agentd推送过来的数据的进程开大一些,就能够了
3、调整模板
建议完整克隆一个Template OS Linux 模板来改,须要调整的地方就是:
把全部的item的类型由原来的“zabbix代理”改为“zabbix端点代理程序(主动式)”
只须要简单的几步,就完成了主动模式的切换,调整以后服务器不卡了,图层不裂了,进程也少了。
本文出自 “运维笔记” 博客,请务必保留此出处http://lihuipeng.blog.51cto.com/3064864/1562603