阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Zabbix 4.0性能调优配置详述

295次阅读
没有评论

共计 3192 个字符,预计需要花费 8 分钟才能阅读完成。

如何衡量 Zabbix 的性能情况?一台基础配置的 Zabbix 到底能监控多少主机,能使用监控多少监控项?性能瓶颈出在哪里?如何优化配置?

参考官方手册 https://www.zabbix.com/documentation/4.0/zh/manual/appendix/performance_tuning

一、NVPS

在完成 zabbix 搭建后,zabbix 首先监控的第一个主机就是自身。可以在仪表盘中看到这些。

Zabbix 4.0 性能调优配置详述

每秒写入的新值数量 (简称 NVPS),是衡量 zabbix 主机性能的一个很重要的指标。

影响 NVPS 指标的主要是以下几个因素

• 监控项类型, 数据类型, SNMPv3, triggers 的数量和复杂度。

• Housekeeper 设置和数据库大小。

• 同时在线 WEB 界面的用户数量

说明:

1、更新频率会直接影响到 NVPS 的值.

2、计算时考虑来自监控设备的数据。

3、“Zabbix trapper”和“SNMP trap”都是不在计算里的.

关于 zabbix 中 NVPS 的大致估算,可以以此来衡量性能消耗

Zabbix 4.0 性能调优配置详述

1)每个主机 60 个监控项,更新频率一分钟一次,100 个主机产生的 NVPS 大致为 100

2)每个主机 300 个监控项,更新频率一分钟一次,100 个主机产生的 NVPS 大致为 500

 

 

历史数据分析也会影响 zabbix 性能,但是不会消耗太多

Zabbix 4.0 性能调优配置详述

 

二、如何判断 zabbix 性能下降

 

如果 zabbix 性能下降,会有如下现象

 

• Zabbix 队列里面太多的延迟的监控项 Administration->Queue

• 数据图形里经常出现的间隙断层, 甚至有些监控项没有数据。

• 触发器包含 nodata() 表达式的误报

• 无响应和响应迟钝的 WEB 请求。

• 没有告警或者是数以千计的告警

最明显的就是列队中,有很多主机延迟大于 30 秒甚至超过 1 分钟

Zabbix 4.0 性能调优配置详述

2.1 一些很重要分析工具

 

top 工具

使用 top 命令可以很直观的看到 cpu, 内存的消耗和一些进程信息

Zabbix 4.0 性能调优配置详述

 

 

iostat 工具

iostat 是查看 Linux 系统 io 是否存在瓶颈顶好用的一个命令

Zabbix 4.0 性能调优配置详述

 

vmstat 工具

Virtual Memory Statistics 虚拟内存统计 命令用来显示 Linux 系统虚拟内存状态,也可以报告关于进程、内存、I/ O 等系统整体运行状态。

Zabbix 4.0 性能调优配置详述

 

sar 工具

sar 是非常强大性能分析命令,通过 sar 命令可以全面的获取系统的 CPU、运行队列、磁盘 I/O、交换区、内存、cpu 中断、网络等性能数据。

Zabbix 4.0 性能调优配置详述

 

 

watch 工具

watch 可以帮你监测一个命令的运行结果,来监测你想要的一切命令的结果变化, 而且官方推荐使用这个工具

watch -tn 0.2 'ps -o cmd -C zabbix_server -C zabbix_proxy -C zabbix_agentd'

Zabbix 4.0 性能调优配置详述

2.2 查看进程

 

可以查看 zabbix-server 进程,观察子进程响应时延

ps aux |grep zabbix_server

Zabbix 4.0 性能调优配置详述

也可以查看 zabbix-server history 同步的时延

ps aux |grep sync

Zabbix 4.0 性能调优配置详述

3.3 查看 zabbix 自身监控图形

 

对 zabbix 完成配置后,会对自己作为第一个主机进行监控,最直接的方式就是查看监控图形

Zabbix 4.0 性能调优配置详述

Zabbix 4.0 性能调优配置详述

三、问题分析

3.1 打开日志调试开关

当出现异常时,需要打开 zabbix 日志 debug 模式,通过日志来判断故障原因

zabbix_server -R log_level_increase=alerter                #增加所有进程日志级别
 
 tail -f /var/log/zabbix/zabbix_server.log                   #查看最新日志 

Zabbix 4.0 性能调优配置详述

3.2 MySQL 数据库分析

    zabbix 推荐后端使用 mysql,可以简单对 mysql 进行分析。

    首先在 zabbix_server.conf 配置文件中修改 LogSlowQueries=3000

   Zabbix 4.0 性能调优配置详述

   使用 innotop 命令查询

   

  innotop 是一个 mysql 数据库实时监控工具, 其功能强大, 信息种类繁多, 很能体现数据库的状态. 它实际上是一个 perl 脚本, 整合 show status/show variables/show engine innodb status 输出结果并进行统计格式化输出.

yum install innotop

Zabbix 4.0 性能调优配置详述

Zabbix 4.0 性能调优配置详述

然后可以简单分析数据库慢查询日志

grep slow /var/log/zabbix/zabbix_server.log

Zabbix 4.0 性能调优配置详述

当数据库出慢查询时,会出现如下问题

Zabbix 4.0 性能调优配置详述

四、web debug

可以在 web 前端开启 web debug 模式,更加直接的分析问题

在用户群组下,找到“Enabled debug mode”, 开启即可

Zabbix 4.0 性能调优配置详述

然后随意在 ”Enabled debug mode” 群组下创建一个用,如 debug, 可以将权限设置为超级管理员然后登陆

Zabbix 4.0 性能调优配置详述

登陆后,可以看到在每个页面都有一个”调试“小按钮,点击可以看到测试脚本结果

Zabbix 4.0 性能调优配置详述

按钮将在页面内容下方打开一个新窗口,其中包含页面的 SQL 统计信息,以及 API 调用和各个 SQL 语句的列表, 如果页面出现性能问题,可以使用此窗口搜索问题的根本原因。

Zabbix 4.0 性能调优配置详述

如果数据查询有异常,可以看到明显的查询时间过长

Zabbix 4.0 性能调优配置详述

五、优化性能

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 和前端一台服务器,数据库一台服务器,且数据库服务的性能要高于前者,使用硬件服务器部署要优于使用虚拟机部署。

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3192字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中