20 Zabbix系统性能优化建议
1. Zabbix性能变慢的可能表现:
- zabbix队列有太多被延迟的item,可以通过administration-queue查看
- zabbix绘图中经常出现断图,一些item没有数据|
- 带有nodata()函数的触发器出现flase
- 前端页面无响应,或者响应慢
如何度量Zabbix性能:
通过Zabbix的NVPS(每秒处理数值数)来衡量其性能。在Zabbix的dashboard上有一个错略的估值。
2. Zabbix性能优化的几点原则:
- 确保zabbix内部组件性能处于被监控状态(调优的基础!)
- 使用硬件性能足够好的服务器
- 不同角色分开,使用各自独立的服务器
- 使用分布式部署
- 调整MySQL性能
- 调整Zabbix自身配置
3. Zabbix变慢的几个原因总结如下:
- Zabbix server硬件配置,更好的CPU、更大的内存,更快的硬盘
- Zabbix架构,若整体架构过大,建议使用分布式proxy,各服务器功能独立
- 数据量太大,vps太高,zabbix来不及处理
- Housekeeper设置不当,数据库体积变大
- 前端主机或用户太多,查询过多的数据
- Item工作模式及Triggers优化,Triggers太过复杂
3.1 了解Zabbix目前的工作状态
获得zabbix内部状态
zabbix[wcache,values,all]
zabbix[queue,1m] ----延迟超过1分钟的item
获得zabbix内部组件工作状态(该组件处于BUSY状态的时间百分比)
zabbix[process,type,mode,state]
其中可用的参数为:
- type: trapper,discoverer,escalator,alerter,etc
- mode: avg,count,min,max
- state: busy,idel
3.2 Zabbix性能优化---Item工作模式及Triggers优化
Zabbix中的item默认工作是被动模式,可以通过设置主动模式来提高server的性能。
若采用active checks模式,首先针对zabbix_agentd.conf文件修改
a)在ServerActive=xxx 填server端ip、
b)Hostname=xx 填agent的hostname 、
c)StartAgents=0
()
注:如果此处值为0,那么passive checks 将被disable,同学们可以根据实际业务大小来分配主动、被动agent个数)
d)针对模板变更,
1.以任何一个现有模板为例,clone并重命名,假如重命名模板为TEST
2.将模板TEST里所有items和discovery rules里的items都变更type为atvice agent
3.将创建的host关联重命名的模板TEST,注意创建的时候,ip和port都填0,否则会因模式冲突看到一个红色的Z,让人觉得很不舒服,不是么
至此active-checks模式的agent部署完毕,可以在overview中查看模板中的监控项。
Tigger中正则表达式函数last()、nodata()的速度是最快的。。。Min()、max()、avg()是最慢的。。。尽量使用速度快的函数
3.3 数据量太大,vps太高,zabbix来不及处理
3.4 采用被动agent
aaaa