nagios檢查主從同步的腳本插件執行出錯


MYSQL主從環境:一主多從

在從上通過nagios插件腳本監控從同步是否正常
用的腳本是sery的 (參http://blog.formyz.org/?p=257)
腳本爲/usr/local/nagios/libexec/check_mysql_slave

#!/bin/sh
#nrpe install script writed by sery

Mysql_bin=/usr/bin/mysql
User_name=nagios
Pwd=xxx

declare -a slave_is
slave_is=($($Mysql_bin -u$User_name -p$Pwd -e "show slave status\G" |grep Running |awk '{print $2}'))
if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ]
then
echo "OK -slave is running"
exit 0
else
echo "Critical -slave is error"
exit 2
fi


有一臺從同步是正常的,但是監控報錯,輸出是Critical -slave is error
所有其他的從都無此問題

確保mysql.user表裏面確實有nagios用戶
直接用mysql -unagios -pxxx -e "show slave status\G"是輸出正常的
且直接用./check_mysql_slave 輸出也正常 OK -slave is running

即直接調用腳本執行可以,但是使用nrpe調用腳本執行的腳本輸出的結果是錯的.
注意是:兩種情況下腳本都是執行了,只是結果不同,所以腳本的權限是好的

根據打印出來${slave_is[0]}和${slave_is[1]}的內容發現在npre調用的時候,裏面的值爲空,正常的情況下都是Yes
所以是 ($($Mysql_bin -u$User_name -p$Pwd -e "show slave status\G" |grep Running |awk '{print $2}')) 這條語句出錯

分別以root 和 nagios用戶身份 執行mysql -unagios -pxxx -e "show slave status\G"
root是沒問題的
nagios提示連不上mysql.sock文件!!這一般是mysql服務的問題..... 問題大了!
到目錄下查看sock文件是存在的,權限也是對的...
但是以nagios 執行ll /var/lib/mysql/mysql.sock的時候提示權限禁止
ll /var/lib/發現mysql這個文件夾是700,原來這是問題所在.
奇怪的別的從上都沒有這個權限問題

解決方法就是加上x權限就行了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章