内容简介:如何衡量Zabbix的性能情况?一台基础配置的Zabbix到底能监控多少主机,能使用监控多少监控项?性能瓶颈出在哪里?如何优化配置?参考官方手册https://www.zabbix.com/documentation/4.0/zh/manual/appendix/performance_tuning一、NVPS
如何衡量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命令查询
innotop是一个mysql数据库实时监控工具,其功能强大,信息种类繁多,很能体现数据库的状态.它实际上是一个 perl 脚本,整合show status/show variables/show engine innodb status输出结果并进行统计格式化输出.
yum install innotop
然后可以简单分析数据库慢查询日志
grep slow /var/log/zabbix/zabbix_server.log
当数据库出慢查询时,会出现如下问题
四、web debug
可以在web前端开启web debug模式,更加直接的分析问题
在用户群组下,找到“Enabled debug mode",开启即可
然后随意在"Enabled debug mode"群组下创建一个用,如debug,可以将权限设置为超级管理员然后登陆
登陆后,可以看到在每个页面都有一个”调试“小按钮,点击可以看到测试脚本结果
按钮将在页面内容下方打开一个新窗口,其中包含页面的 SQL 统计信息,以及API调用和各个SQL语句的列表, 如果页面出现性能问题,可以使用此窗口搜索问题的根本原因。
如果数据查询有异常,可以看到明显的查询时间过长
五、优化性能
5.1 配置文件zabbix_server.conf优化
建议按照如下方式调整zabbix_server.conf配置文件进行优化
#调整zabbix_server进程数量 StartPollers=80 StartPingers=10 StartPollersUnreachable=80 StartIPMIPollers=10 StartTrappers=20 StartDBSyncers=6
#调整内存大小 VMwareCacheSize=64M CacheSize=32M HistoryCacheSize=256M TrendCacheSize=64M HistoryIndexCacheSize = 32M ValueCacheSize=64M
5.2mysql数据库调优
zabbix推荐使用innodb引擎的mysql数据库,所以要针对数据库配置文件进行优化
mysqladmin status / variables #检查数据库配置状态
#调整数据库innodb innodb_file_per_table = 1 innodb_buffer_pool_size=<large> (~75% of total RAM) innodb_buffer_pool_instances = 4 (MySQL 5.6 - 8) innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT innodb_log_file_size = 256M
5.3进一步优化
1)数据库使用分区表
通过这种方式可以将一张大的表分成很多区.
只对那些数据量大的有历史意义的表操作:
history_log,history_str,history_text,history_uint
trends,trends_uint
好处:
更快删除过期数据
DB将拥有更好的性能
当zabbix-server频繁出现“Zabbix housekeeper processes more than 75% busy”的告警时,此时housekeeper的性能正在下降
则需要使用分区表
2)web服务器使用nginx
nginx服务器的响应速度要明显优于apache服务器
3)使用Zabbix Proxy
当监控主机过多,可以使用多个zabbix Proxy进行分布式监控
Zabbix Proxy "转换" 被动检查成主动。
负载分布在Zabbix Proxy代理之间如果一个Proxy高负载, 网络节点可以切换到其他的Proxy上
简单易维护当
Zabbix server出现故障时Proxy可以缓存数据保证数据不丢
4)数据库分离或采用硬件
可以采用数据库与 zabbix分离,zabbix-server和前端一台服务器,数据库一台服务器,且数据库服务的性能要高于前者,使用硬件服务器部署要优于使用虚拟机部署。
Linux公社的RSS地址 : https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-05/158758.htm
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Masterminds of Programming
Federico Biancuzzi、Chromatic / O'Reilly Media / 2009-03-27 / USD 39.99
Description Masterminds of Programming features exclusive interviews with the creators of several historic and highly influential programming languages. Think along with Adin D. Falkoff (APL), Jame......一起来看看 《Masterminds of Programming》 这本书的介绍吧!