如何衡量Zabbix的性能情况?一台基础配置的Zabbix到底能监控多少主机,能使用监控多少监控项?性能瓶颈出在哪里?如何优化配置?
参考官方手册https://www.zabbix.com/documentation/4.0/zh/manual/appendix/performance_tuning
一、NVPS
在完成zabbix搭建后,zabbix首先监控的第一个主机就是自身。可以在仪表盘中看到这些。
每秒写入的新值数量 (简称NVPS),是衡量zabbix主机性能的一个很重要的指标。
影响NVPS指标的主要是以下几个因素
• 监控项类型, 数据类型, SNMPv3, triggers的数量和复杂度。
• Housekeeper 设置和数据库大小。
• 同时在线WEB界面的用户数量
说明:
1、更新频率会直接影响到 NVPS的值.
2、计算时考虑来自监控设备的数据。
3、“Zabbix trapper” 和 “SNMP trap” 都是不在计算里的.
关于zabbix中NVPS的大致估算,可以以此来衡量性能消耗
1)每个主机60个监控项,更新频率一分钟一次,100个主机产生的NVPS大致为100
2)每个主机300个监控项,更新频率一分钟一次,100个主机产生的NVPS大致为500
历史数据分析也会影响zabbix性能,但是不会消耗太多
二、如何判断zabbix性能下降
如果zabbix性能下降,会有如下现象
• Zabbix 队列里面太多的延迟的监控项 Administration->Queue
• 数据图形里经常出现的间隙断层, 甚至有些监控项没有数据。
• 触发器包含nodata()表达式的误报
• 无响应和响应迟钝的WEB请求。
• 没有告警或者是数以千计的告警
最明显的就是列队中,有很多主机延迟大于30秒甚至超过1分钟
2.1一些很重要分析工具
top工具
使用top命令可以很直观的看到cpu,内存的消耗和一些进程信息
iostat工具
iostat是查看Linux系统io是否存在瓶颈顶好用的一个命令
vmstat工具
Virtual Memory Statistics 虚拟内存统计 命令用来显示Linux系统虚拟内存状态,也可以报告关于进程、内存、I/O等系统整体运行状态。
sar工具
sar 是非常强大性能分析命令,通过 sar 命令可以全面的获取系统的 CPU、运行队列、磁盘 I/O、交换区、内存、 cpu 中断、网络等性能数据。
watch工具
watch可以帮你监测一个命令的运行结果,来监测你想要的一切命令的结果变化,而且官方推荐使用这个工具
watch -tn 0.2 'ps -o cmd -C zabbix_server -C zabbix_proxy -C zabbix_agentd'
2.2 查看进程
可以查看zabbix-server进程,观察子进程响应时延
ps aux |grep zabbix_server
也可以查看zabbix-server history同步的时延
ps aux |grep sync
3.3 查看zabbix自身监控图形
对zabbix完成配置后,会对自己作为第一个主机进行监控,最直接的方式就是查看监控图形
三、问题分析
3.1打开日志调试开关
当出现异常时,需要打开 zabbix日志debug模式,通过日志来判断故障原因
zabbix_server -R log_level_increase=alerter #增加所有进程日志级别 tail -f /var/log/zabbix/zabbix_server.log #查看最新日志
3.2 MySQL数据库分析
zabbix推荐后端使用mysql,可以简单对mysql进行分析。
首先在zabbix_server.conf配置文件中修改 LogSlowQueries=3000
使用innotop命令查询