zabbix监控MySQL遇到的EB单位BUG

1、简介

Zabbix监控MySQL,使用Percona的模板监控,发现了一个图形“Bytes Received”,其中的单位异常,本文就是记录此问题的处理方法;

2、问题1

本次发现了下图(图1)中的单位居然是EB,这单位完全不对,针对这个问题,查找了下原因;

1 EB = 1,024 PB = 1,048,576 TB = 1,048,576 GB = 1,152,921,504,606,846,976 Bytes

zabbix监控MySQL遇到的EB单位BUG

                                                                      图1

1)首先找了找Byte Received在web模块中的键值

点击“配置”--》“主机”--》“监控项”--》找到对应的键值(这里实际应该从“主机”--》“图形”--》“监控项”一步步找的,这里简化了过程)
如下表显示的,Bytes Received对应的键值是MySQL.Bytes-received;
名称 触发器 键值 间隔 历史记录 趋势 类型 应用集 状态 信息
Percona MySQL Server Template Passive: Bytes Received   MySQL.Bytes-received 300 90d 365d Zabbix客户端(主动式) MySQL 已启用  

2)找zabbix-agent服务器中的shell的配置;

[[email protected] ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_percona_mysql.conf |grep Bytes-received
UserParameter=MySQL.Bytes-received,/var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh ky
[[email protected] ~]#
#执行脚本内容,可以看到结果数据比EB小了很多;
[[email protected] ~]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh ky
21332438
[[email protected] ~]# 

#继续查找,找到了更详细的php脚本,对php脚本进行搜索查看,发现最后的结果就是MySQL命令行中的“SHOW GLOBAL STATUS”的结果中的”Bytes_received“
#结果这个找到的数据也比EB小很多;
[[email protected] ~]# cat /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh|more
ss_get_mysql_stats.php
[[email protected] ~]# cat /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php |grep ky
      'Bytes_received'              =>  'ky',
[[email protected] ~]# cat /var/lib/zabbix/percona/scripts/ss_get_mysql_stats.php |grep "SHOW"|grep -v '#'
SHOW GLOBAL STATUS
[[email protected] ~]$ mysql --defaults-file=/etc/my.cnf.d/xx.cnf -e "SHOW GLOBAL STATUS;"|grep Bytes_received
Bytes_received  21344599
[[email protected] ~]$ 

3)去web界面查看,看看界面是否有异常配置

点击“配置”--》“模板"--》"监控项"--》"Bytes Received"监控
可以看到“进程”这里有个“自定义倍数"(就是值乘以倍数),点击“测试”按钮后,分析得出,这个是-1导致的错误,删掉这个“自定义倍数”即可;

zabbix监控MySQL遇到的EB单位BUG

zabbix监控MySQL遇到的EB单位BUG

 

 

 

时间:2020-10-26