目的:作 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
問題解決!!!