zabbix_server端当主机数量过多的时候,由Server端去收集数据,Zabbix会出现严重的性能问题,主要表现如下:
1、当被监控端到达一个量级的时候,Web操作很卡,容易出现502
2、图层断裂
3、开启的进程(Pollar)太多,即使减少item数量,以后加入一定量的机器也会有问题
所以下面主要往两个优化方向考虑:
1、添加Proxy节点或者Node模式做分布式监控
2、调整Agentd为主动模式
由于第一个方案需要增加物理机器,所以首先尝试第二方案。
一、被监控端 zabbix_Agentd.conf 的配置调整:
LogFile=/tmp/zabbix_agentd.log
StartAgents=0 #客户端agent模式,仅为主动模式,值为0的时候,被监控端的zabbix_agentd 不监听本地端口,所以无法在 netstat -tunpl 中查看到zabbix_agentd进程
ServerActive=**.**.**.** #zabbix_server的ip
Hostname=test_host #重要:主机名
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 模板来改,需要调整的地方就是:
然后修改克隆的模板名称
然后修改每一个 item 的监控模式
全部勾选
然后选择 Mass update 批量修改
修改这里
修改为 active 模式,保存
然后选择 自动发现策略
同样将里面的监控项修改为 active 模式并保存。
点击items
同样将里面的监控项修改为 active 模式并保存。
这个模板就做好了
四,添加一台主动模式的主机
创建一台新的主机
这里的hostname必须填入被监控端zabbix_agentd.conf中配置的主机名 ,agent类型,IP地址填入0.0.0.0 ,端口填入0 保存
第二页关联监控模板
保存
最后,启动被监控端的zabbix_agentd服务。
然后就查看 zabbix_server.log 看是主动监控主机是否能够正常监控
如果不能正常监控,那么使用tcpdump抓下被监控端的数据包,如果不能抓取数据包,请检查防火墙配置。
还可以查看 latest data 来查看是否能够正常获取被监控端发来的监控值。
在host主机列表中,好像无法显示被监控端的监控类型。但是并不影响监控。
好了,测试完毕了。
一些Zabbix相关教程集合:
Ubuntu 14.04下Zabbix2.4.5 源码编译安装 .com/Linux/2015-05/117657.htm
CentOS 6.3下Zabbix安装部署