nagios中本身寫的監控mysql主從複製的插件

你們可能遇到這樣的問題,mysql的主已經寫入數據了,可是卻沒有同步到從myql那裏,或者延遲很長時間才同步過去。說明一下咱們的網絡環境,咱們每臺數據庫都有兩個網線,分別鏈接內網和外網的千兆交換機,速度確定不是問題。若是延遲很長的話,確定是出問題,好比數據庫被lock了,或者開發人員的一些不當的操做等。這時候就須要監控主從同步的狀態已經主從同步的時間間隔等。以便及時與開發人員溝通,及時解決問題。下面是我本身寫的一個腳本名字叫check_mysql_delay:mysql

 
#!/bin/bash
aa=`/usr/local/mysql/bin/mysql -u 用戶 –p密碼 --socket=/數據庫目錄/$1/mysql_$1.sock -e "show slave status\G"|egrep Read_Master_Log_Pos|awk    '{print $2}'`
bb=`/usr/local/mysql/bin/mysql -u 用戶 –p密碼 --socket=/數據庫目錄/$1/mysql_$1.sock -e "show slave status\G"|egrep Exec_Master_Log_Pos|awk    '{print $2}'`
cc=`expr $aa - $bb`
if [ $cc -gt 10000 ]
then
 echo "$1 is CRITICAL $aa $bb $cc"
 #exit $STATE_CRITICAL;
 exit 2;
else
 echo "$1 is OK $aa $bb $cc"
 #exit $STATE_OK;
 exit 0;
fi
把該腳本放到/usr/local/nagios/libexec目錄下面。
而後修改/usr/local/nagios/etc/nrpe.cfg,在後面添加一行
command[check_mysql_delay3306]=/usr/local/nagios/libexec/check_mysql_delay 3306
注意這個3306就是給上面腳本當中$1賦值用的,若是有多個mysql實例的話,能夠多寫幾行。
而後修改nagios服務器端的配置文件。在服務的配置文件中添加以下內容
define service {
        use    db-server
        host_name host當中定義的主機名
        service_description check_rep_delay3306
        check_command check_nrpe!check_mysql_delay3306
}
而後從新加載一下nagios就ok了。
相關文章
相關標籤/搜索