原文链接 http://blog.51cto.com/allmrys/2286220
概述:使用zabbix监控服务器已有一段时间,监控的服务器不到100台,发现刷新zabbix页面有卡顿的现象。而且经常报“Zabbix poller processes more than 75% busy”的错误,检查服务器性能还是有保障的,最后发现zabbix_server.conf既然使用的是默认配置(懒得没有底线),zabbix_server.conf的很多配置都没有修改,赶紧脑补了一下,把主要的参数信息优化下。
一、Zabbix服务端的常用参数如下:(参数取值根据服务器配置)
参数 | 必填 | 范围 | 默认值 | 描述 |
---|---|---|---|---|
CacheSize | no | 128K-8G | 8M | 缓存大小, 单位字节. 服务器分配有4G 设置为:CacheSize=256M |
CacheUpdateFrequency | no | 1-3600 | 60 | Zabbix 缓存更新频率, 单位秒.60秒感觉太快了 设置为:CacheUpdateFrequency=180 |
DebugLevel | no | 0-5 | 3 | 指定调试等级: |
HistoryCacheSize | no | 128K-2G | 16M | 历史缓存数据大小, 单位字节. 设置为:HistoryCacheSize=64M |
HistoryIndexCacheSize | no | 128K-2G | 4M | 历史索引缓存大小, 单位字节. 用于索引历史缓存中历史数据的共享内存大小. 缓存一个item大概需要索引的大小为100字节.item代表一个监控项,按照100000个监控项来算:100000*100/1024/1024=9.6M 设置为:HistoryIndexCacheSize=10M |
HousekeepingFrequency | no | 0-24 | 1 | Zabbix 执行 housekeeping 的频率 (单位小时). 从数据库中删除过期的信息. 注意: 为了防止 housekeeper 过载 (例如, 当历史和趋势周期大大减小时), 对于每一个item,不会在一个housek周期内删除超过4倍HousekeepingFrequency 的过时信息. 因此, 如果 HousekeepingFrequency 是 1, 一个周期内不会删除超过4小时的过时信息 (starting from the oldest entry) . |
StartPollersUnreachable | no | 0-1000 | 1 | 不可达主机 (包括IPMI 和 Java)的轮询器实例数量。 设置为:StartPollersUnreachable=20 占总数20%足够 |
StartPollers | no | 0-1000 | 5 | 轮询器实例数量。根据具体情况设置大小 设置为:StartPollers=30 |
StartDiscoverers | no | 0-250 | 1 | 自动发现子进程实例个数。 设置为:StartDiscoverers=5 |
StartTrappers | no | 0-1000 | 5 | trappers进程实例数量。 设置为:StartTrappers=15 |
StartVMwareCollectors | no | 0-250 | 0 | vmware 采集器的子进程实例个数,如果有虚拟机的话,记得开启。 |
Timeout | no | 1-30 | 3 | agent, SNMP 设备或外部检查的超时时长(单位秒)。 设置为:Timeout=6 |
TrendCacheSize | no | 128K-2G | 4M | 趋势缓存的大小,单位字节。 设置为:128M |
ValueCacheSize | no | 0,128K-64G | 8M | 历史数据缓存大小, 单位bytes. 缓存item历史数据请求的共享内存大小. 0即禁止缓存 (不建议). 当缓存大小超过共享内存时,每5分钟会向服务器日志写入一条警告信息. 设置为:ValueCacheSize=128M |
二、zabbix监控状态情况
Zabbix自带模版监控各工作进程的状态,根据数据收集过程中的性能做分析,适合调整配置参数。
1、Zabbix cache usage, % free:
图一为CacheSize=8M的时候,可用为70%
设置为:CacheSize=256M
设置为:HistoryCacheSize=64M
设置为:HistoryIndexCacheSize=10M
图2为调整CacheSize后,三个触发器可用都在90%以上。
2、 Zabbix data gathering process busy %
图3为调整前的配置信息
设置为:StartPollers=30
设置为:StartPollersUnreachable=20
设置为:StartDiscoverers=5
图4为调整后的配置信息,三个触发器占用最大都没有超过50%
4、Zabbix internal process busy %
其中Zabbix busy history syncer processes:写入数据库的同步程序占缓存的百分比在重启服务时占用飙升一会,其他基本正常。
5、Preprocessing为预处理:
使用这个功能可以对item收到的数据行处理,处理之后再存入数据库或展示出来,提高监控的效率,降低了系统负荷,减少网络流量
3.4版本的新功能,如果要用到其他程序上去,需要自己创建item,配合使用。
6、Zabbix服务器性能状态:
其中左侧纵坐标代表通过zabbix服务器每秒处理的值,图形中用绿色表示;
右侧纵坐标代表需要处理写入数据库的列队值,图形中用红色表示。等待列队逐渐增多,说明性能越来越差。
三、Zabbix报错信息处理
1、Zabbix poller processes more than 75% busy:
2、 icmp pinger processes more than 75% busy
3、zabbix unreachable poller processes more than 75 busy
4、zabbix的WEB界面刷新卡死
5、数据库连接超出
这类报错比较多,首先检查zabbix-server配置信息
StartPollers、StartDiscoverers、StartPingers、StartPollersUnreachable等等,根据上面的【Zabbix服务端的常用参数】核对下。
然后在检查:
根据服务器性能状态、队列、数据库配置信息