zabbix性能调优(1)

 

 

 

 

概述
在我们生产环境使用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 sync
zabbix_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 Server
Template App Zabbix Proxy
Template App Zabbix Agent




03 提升日志等级来查看后台日志 
可以通过后台zabbix_server 命令来做提升Zabbix的后台日志等级


有个问题, 但是我们需要知道这是什么问题。


Enable debugging mode for the process:
# zabbix_server -R log_level_increase=alerter


Search in the log for information about the problem (grep, etc.): /var/log/zabbix/zabbix_server.log




04 数据库性能状态查看 
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.5M
Memory limit: 2G




调整参数优化性能
01 调整一些组件进程数 
Zabbix server configuration file, zabbix_server.conf:


StartPollers=80
StartPingers=10
StartPollersUnreachable=80
StartIPMIPollers=10
StartTrappers=20
StartDBSyncers=6


02 调整缓存大小 
Zabbix server configuration file, zabbix_server.conf:


VMwareCacheSize=64M
CacheSize=32M
HistoryCacheSize=256M
TrendCacheSize=64M
HistoryIndexCacheSize = 32M
ValueCacheSize=64M




03 数据库引擎优化 




InnoDB引擎是优于MyISAM引擎


Look at the data
mysqladmin status / variables (or innotop)


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


Do not use
Query history
二进制日志, 如果不使用复制(指MySQL主从)(sync_binlog = 0)




04 数据库表分区 


通过这种方式我们可以将一张大的表分成很多区,只对那些数据量大的有历史意义的表操作:




history_log,history_str,history_text,history_uint
trends,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 服务与数据库分离:

 

 转载:https://tieba.baidu.com/p/6039701886?red_tag=1277081980&traceid=

posted @ 2019-07-30 10:54  Aslan-a  阅读(2005)  评论(0编辑  收藏  举报