神魂顛倒論壇logo

icon
首頁網頁 / 程式應用區PHP 與 MySQL 討論 → [MySQL]Nagios 加上 MySQL Slave Replication Status 檢查

雷射溶脂 | 瘦小腹 | 植髮 | 眼袋 | 玻尿酸 | 電波拉皮 | Flash | 購物車 | Flash Player 11.2 | 豐胸 |

下一主題 上一主題


[MySQL]Nagios 加上 MySQL Slave Replication Status 檢查


[MySQL]Nagios 加上 MySQL Slave Replication Status 檢查 簡版






[MySQL]Nagios 加上 MySQL Slave Replication Status 檢查

類型:
MySQL

MySQL Status (Monitor)是否例外可以靠自己程式設計檢查 + 解決,不過都已經架了一台 Nagios,就該把檢查的工作全部交給它,才不會東漏一隻、西漏一隻的。

註:此組態主要針對 MySQL 的 DB Slave



Nagios 加上 MySQL Slave Replication Status 檢查

這程式主要是檢查 MySQL Slave status,此 Nagios 的 Script 檢查的專案還不少,不過我只需要確認 Replication 是否正常就夠了,所以更多的檢查就不細看了。

於 Nagios 的 MySQL Slave Status Script

Check MySQL Replication Slave Status - Nagios Exchange

ck :: Nagios Plugin check_mysql_slavestatus MySQL Slave Status Check ::

Nagios 組態使用 MySQL Slave Status Script 的步驟

Nagios 檢查方式有兩種:

遠端透過此 Shell script 去抓取 Slave Status 資料,然後來確認。

遠端呼叫 Slave,Slave 執行抓取 localhost Status 資料,傳送回去確認。

註:避免網路或其它問題就造成誤報,所以下述是讓每台機器自己跑 localhost 檢查(此採用第二種方式)。

[Slave 組態步驟]

ssh slave

MySQL 許可權需要給 SUPER 或 REPLICATION CLIENT

$ mysql -u root -p

mysql> GRANT REPLICATION CLIENT on *.* TO "nagios"@"127.0.0.1" IDENTIFIED BY "password"; # 或 GRANT SUPER on *.* TO "nagios"@"%" IDENTIFIED BY "password";

mysql> flush privileges;

抓取 Nagios MySQL Slave Status Script

cd /tmp

wget http://www.claudiokuenzler.com/nagios-plugins/check_mysql_slavestatus.sh

chmod +x ./check_mysql_slavestatus.sh

./check_mysql_slavestatus.sh -H localhost -P 3306 -u nagios -p password # test,會印出下述

# OK: Slave SQL running: Yes Slave IO running: Yes / master: 123.127.123.123 / slave is 0 seconds behind master | delay=0s

mv check_mysql_slavestatus.sh /usr/lib/nagios/plugins/check_mysql_slavestatus.sh

組態 Nagios

vim /etc/nagios/nrpe.d/mysql_slave.cfg # 加入下述其中一行,不要兩行都加入。 -c 500 是 replication Delay 超過 500 secs 才警告

command[check_mysql_slave_status]=/usr/lib/nagios/plugins/check_mysql_slavestatus.sh -H 127.0.0.1 -P 3306 -u nagios -p password

command[check_mysql_slave_status]=/usr/lib/nagios/plugins/check_mysql_slavestatus.sh -H 127.0.0.1 -P 3306 -u nagios -p password -c 500

/etc/init.d/nagios-nrpe-server restart

上述兩個組態挑其一

測試方式

語法:$USER1$/check_mysqlslave.sh -u $ARG1$ -p $ARG2$ -H $HOSTADDRESS$

範例:$ ./check_mysql_slavestatus.sh -H localhost -P 3306 -u root -p password

[Master 組態步驟]

ssh master

vim /etc/nagios3/conf.d/dbs.cfg

define service{

use generic-service ; Name of service template to use

host_name example.com

service_description MySQL Replication check

check_command check_nrpe_1arg!check_mysql_slave_status

}

/etc/init.d/nagios3 restart

到此即組態完成

相關組態

若要加入 /etc/nagios3/commands.cfg 可以參考下述:(我沒有用到此組態,給有需要的參考用)

一般 check replication 是否有問題

define command {

command_name check_mysql_slavestatus

# command_line $USER1$/check_mysql_slavestatus.sh -H $HOSTADDRESS$ -P $ARG1$ -u $ARG2$ -p $ARG3$

command_line /usr/lib/nagios/plugins/check_mysql_slavestatus.sh -H $HOSTADDRESS$ -P $ARG1$ -u $ARG2$ -p $ARG3$

}

"check_mysql_slavestatus" command definition with delay check

define command {

command_name check_mysql_slavestatus

# command_line $USER1$/check_mysql_slavestatus.sh -H $HOSTADDRESS$ -P $ARG1$ -u $ARG2$ -p $ARG3$ -w $ARG4$ -c $ARG5$

command_line /usr/lib/nagios/plugins/check_mysql_slavestatus.sh -H $HOSTADDRESS$ -P $ARG1$ -u $ARG2$ -p $ARG3$ -c $ARG5$

}

相關網頁

pmp-check-mysql-replication-running

想在手機查閱更多MySQL資訊?免費下載【香港矽谷】Android App

在新視窗檢視







原文站台: Tsung Hao

This work, unless otherwise expressly stated, is licensed under a

Creative Commons Attribution-ShareAlike 3.0 Unported License.











在新視窗檢視

分享到Facebook





購物車 | 回到頂部
下一主題 上一主題