目的:作 zabbix 监控,在客户端上自定义一个 item key,用来监控 mysql 队列数值mysql
现象:sql
客户端上,设置 item key,能够看到 命令的返回值是 53,说明mysql队列有53vim
[root@ape-test2-1120 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql_processlist.confide
UserParameter=mysql.processlist.count[*],mysql -uroot -p123456 -e "show full processlist" 2>/dev/null |grep -v "Id"|wc -l队列
[root@ape-test2-1120 ~]# mysql -uroot -p123456 -e "show full processlist" 2>/dev/null |grep -v "Id"|wc -lssl
53get
服务端上:get到的值一直为 0,正常的话应该是 53 才对it
[root@iZm5ehq0spxwe0fe6nay7fZ ~]# zabbix_get -s 192.168.100.120 -p 10050 -k 'mysql.processlist.count'class
0test
解决方法:想了半天,试了各类方法,一直觉得是权限问题,在网上查了很多老铁的文章,最后灵光一闪,想到多是命令的路径在不一样机器上不一致的问题,因此给conf 文件中的mysql命令改成了绝对路径
UserParameter=mysql.processlist.count[*],/usr/local/mysql/bin/mysql -uroot -p123456 -e "show full processlist" 2>/dev/null |grep -v "Id"|wc -l
而后重启 zabbix-agent 服务
最后在服务端上:
[root@iZm5ehq0spxwe0fe6nay7fZ ~]# zabbix_get -s 192.168.100.120 -p 10050 -k 'mysql.processlist.count'
53
问题解决!!!