zabbix性能低下的表现如下:
- zabbix队列有太多被延迟的item,可以通过administration-queue查看
- zabbix绘图中经常出现断图,一些item没有数据
- 带有nodata()函数的触发器出现flase
- 前端页面无响应,或者响应慢
解决方案如下:
- 不要使用默认的模板,使用自己定制的模板
- 数据库调优
- 架构优化,如使用 分布式,个服务器功能独立
- Item 、Trigger调优
- 变换更好的硬件
一:性能优化的依据
对zabbix server本身进行监控,选择zabbix-server的监控模板Template APP Zabbix Server。
然后看到zabbix-server内部监控情况:
通过上面的图,我们可以发现监控的指标有剩余的容量、性能这些。通过这些我们可以知道zabbix性能的瓶颈在哪里。例如:如果剩余的容量很小了,我们就可以调大zabbix_server.conf中的缓存参数,直到剩余的容量变大。
二:zabbix配置文件的参数优化
下面就是zabbix_server.conf文件内容
#通过日志可以分析当前服务状态。
LogFile=/tmp/zabbix_server.log #日志文件路径。
LogFileSize=1 #日志文件最大值(MB),超过则滚动,设为0表示不回滚。
DebugLevel=3 #调试日志级别:
# 0 - Zabbix进程启停基本信息。
# 1 - 严重信息。
# 2 - 错误信息。
# 3 - 警告。
# 4 - 调试模式。
# 5 - 调试模式-加强版。
#数据库配置,若数据库与服务器在同一机器上,使用socket模式可以提高访问速度。
DBSocket=/tmp/mysql.sock
#轮询进程数,通过并发来提高轮询或者捕获的效率,同时用来避免poller busy问题,根据CPU数量与系统负载综合调优。
StartPollers=80 #基本轮询进程数,范围0-1000。
StartIPMIPollers=0 #IPMI轮询进程数,若无智能卡监控,可置为0。
StartPollersUnreachable=1 #不可达主机的轮询进程数,包括IPMI和JAVA。
StartTrappers=1 #捕获模式进程数,若无active模式的客户端,则可减小该进程。
StartPingers=20 #ICMP ping数量,当大量使用ping用于心跳检测时,可适量增加。
StartDiscoverers=1 #自动发现实例数,若关闭此功能则减少该数量。
StartHTTPPoll