目的:做 zabbix 監控,在客戶端上自定義一個 item key,用來監控 mysql 隊列數值
現象:
客戶端上,設置 item key,可以看到 命令的返回值是 53,說明mysql隊列有53
[root@ape-test2-1120 ~]# vim /etc/zabbix/zabbix_agentd.d/userparameter_mysql_processlist.conf
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 -l
53
服務端上:get到的值一直爲 0,正常的話應該是 53 纔對
[root@iZm5ehq0spxwe0fe6nay7fZ ~]# zabbix_get -s 192.168.100.120 -p 10050 -k 'mysql.processlist.count'
0
解決方法:想了半天,試了各種方法,一直以爲是權限問題,在網上查了不少老鐵的文章,最後靈光一閃,想到可能是命令的路徑在不同機器上不一致的問題,所以給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
問題解決!!!