目前部署了zabbix3.0做爲生產的監控系統,最近發現一個有趣的問題,就是套用percona公司的percona moinitor plugins中MySQL的監控模板的時候,有些agent的機器在取MySQL.running-slave這個item值的時候,agent側取值同server側取值是不一致的,以下:mysql
agent:sql
[root@mysql03 zabbix_agentd.d]# /var/lib/zabbix/percona/scripts/get_mysql_stats_wrapper.sh running-slaveapp
1
ide
server:server
[root@zabbix zabbix]# zabbix_get -s 192.168.1.81 -k "MySQL.running-slave"blog
0ip
排查過程:
部署
我經過在腳本中echo $RES和狀態碼到/tmp目錄下的RES.TXT和xxx.txt裏,觀察echo出來的值,發現狀態碼確實是0,而非1。get
那爲何會出現手工跑腳本和經過應用自主調用腳本,結果會不一致呢? 這通常是環境變量致使的狀況,由於$RES這個變量在程序調度echo出來就是空值,而其實這就是一個sql查詢而已。因此直接將原mysql替換成/usr/local/mysql/bin/mysql 這個絕對路徑,而後再次檢驗後,agent端和server端取值終於一致,問題解決。
it