概述
在我们生产环境使用Zabbix监控会遇到卡顿性能缓慢等问题。这种情况下正确的调整Zabbix系统,使之保持高性能就是非常重要的。性能缓慢的表现01 NVPS参数值 每秒写入的新值数量 (简称NVPS)影响NVPS值的几个因素:
1. 更新频率会直接影响到 NVPS的值.2. 计算时考虑来自监控设备的数据。3. “Zabbix trapper” 和 “SNMP trap” 都是不在计算里的.4. 监控项类型, 数据类型, SNMPv3, triggers的数量和复杂度。5. Housekeeper 设置和数据库大小。6. 同时在线WEB界面的用户数量。02 性能下降表现 性能下降的几个表现:1. Zabbix 队列里面太多的延迟的监控项 Administration->Queue;2. 数据图形里经常出现的间隙断层, 甚至有些监控项没有数据;3. 触发器包含nodata()表达式的误报;4. 无响应和响应迟钝的WEB请求;5. 没有告警或者是数以千计的告警。确认问题
虽然我们在前端看到Zabbix的性能缓慢,但是我们还需要根据Zabbix的后台信息来确认真正的问题所在。所以我们还需要对后台做一个检查来确认问题所在。01 使用ps工具查看组件进程性能 对于安装了ps工具终端系统的都可以使用命令查看Zabbix组件的性能。# ps ax | grep synczabbix_server: history syncer #1 [synced 1845 items in 0.257111 sec, syncing history]zabbix_server: history syncer #2 [synced 24 items in 0.060314 sec, idle 4 sec]zabbix_server: history syncer #3 [synced 0 items in 0.000018 sec, idle 4 sec]zabbix_server: history syncer #4 [synced 0 items in 0.000009 sec, syncing history]02 监控Zabbix主机的内部性能数据
Zabbix 官方提供了开箱即用的内部性能监控模板实际的VPS值zabbix[wcache, values, all]zabbix[queue,1m] количество элементов данных с задержкой более чем в 1 минутуZabbix server 组件Alerter, Configuration syncer, DB watchdog, discoverer, escalator, history syncer, http poller, housekeeper, icmp pinger, ipmi poller, poller, trapper, etc.Zabbix server 缓存history write cache, value cache, trend write cache, vmware cache, etc.开箱即用的内部监控模板:Template App Zabbix ServerTemplate App Zabbix ProxyTemplate App Zabbix Agent03 提升日志等级来查看后台日志 可以通过后台zabbix_server 命令来做提升Zabbix的后台日志等级有个问题, 但是我们需要知道这是什么问题。Enable debugging mode for the process:# zabbix_server -R log_level_increase=alerterSearch in the log for information about the problem (grep, etc.): /var/log/zabbix/zabbix_server.log04 数据库性能状态查看 Zabbix server configuration file, zabbix_server.conf (请参考4.0手册中的Zabbix sever章节)
05 开启前端Debug模式
开启后点击Debug按钮,在Zabbix的面板里看后台情况。前端看到的:
******************** Script profiler ********************Total time: 10.960905 --web服务出现缓慢问题Total SQL time: 10.749027 --数据出现缓慢问题SQL count: 5636 (selects: 4065 | executes: 1571)Peak memory usage: 180.5MMemory limit: 2G调整参数优化性能01 调整一些组件进程数 Zabbix server configuration file, zabbix_server.conf:StartPollers=80StartPingers=10StartPollersUnreachable=80StartIPMIPollers=10StartTrappers=20StartDBSyncers=602 调整缓存大小 Zabbix server configuration file, zabbix_server.conf:VMwareCacheSize=64MCacheSize=32MHistoryCacheSize=256MTrendCacheSize=64MHistoryIndexCacheSize = 32MValueCacheSize=64M03 数据库引擎优化 InnoDB引擎是优于MyISAM引擎Look at the datamysqladmin status / variables (or innotop)InnoDB引擎配置innodb_file_per_table = 1innodb_buffer_pool_size=<large> (~75% of total RAM)innodb_buffer_pool_instances = 4 (MySQL 5.6 - 8)innodb_flush_log_at_trx_commit = 2innodb_flush_method = O_DIRECTinnodb_log_file_size = 256MDo not useQuery history二进制日志, 如果不使用复制(指MySQL主从)(sync_binlog = 0)04 数据库表分区 通过这种方式我们可以将一张大的表分成很多区,只对那些数据量大的有历史意义的表操作:history_log,history_str,history_text,history_uinttrends,trends_uint这样做的优势在于:1. 更快删除过期数据2. DB将拥有更好的性能05 Web服务器选择 通常条件允许的形况下推荐使用Nginx Web服务器,Nginx在应用Zabbix的Web上要比Apache性能高出六倍左右。
06 使用proxy代理
所有的数据采集都由Zabbix Proxy完成这样做的好处:
1. Zabbix Proxy "转换" 被动检查成主动。2. 负载分布在Zabbix Proxy代理之间。3. 如果一个Proxy高负载, 网络节点可以切换到其他的Proxy上。4. 简单易维护(Proxy没有图形化界面)。5. 当Zabbix server出现故障时Proxy可以缓存数据保证数据不丢失。07 服务分离 Zabbix 服务与数据库分离:
转载: