nagios監控mysql主從複製
下手處:登陸mysql從服務器,通過執行 mysql> show slave status\G 查看其輸出,即可判定主從複製是否正常。下面是某個從服務器的輸出:
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.10.231
Master_User: rep1
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 1752541
Relay_Log_File: hy-mysql3-relay-bin.000088
Relay_Log_Pos: 2339
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
這個輸出,最關鍵處就是"Slave_IO_Running: Yes“和“Slave_SQL_Running: Yes”,這兩個值全是"Yes"就表明主從複製正常,否則就是有問題。
操作步驟:
1、在主數據庫服務器增加一個用戶,給予較低的權限,操作爲
mysql > grant Replication client on *.* to 'nagios'@'%' identified by 'nagios';
mysql> flush privileges;
4、編寫腳本/usr/local/nrpe/libexec/check_mysql_slave(這是監控其作用的核心),其內容如下:
#!/bin/bash
declare -a slave_is
slave_is=($(/opt/mysql/bin/mysql -unagios -pnagios -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
下手處:登陸mysql從服務器,通過執行 mysql> show slave status\G 查看其輸出,即可判定主從複製是否正常。下面是某個從服務器的輸出:
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.10.231
Master_User: rep1
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 1752541
Relay_Log_File: hy-mysql3-relay-bin.000088
Relay_Log_Pos: 2339
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
這個輸出,最關鍵處就是"Slave_IO_Running: Yes“和“Slave_SQL_Running: Yes”,這兩個值全是"Yes"就表明主從複製正常,否則就是有問題。
操作步驟:
1、在主數據庫服務器增加一個用戶,給予較低的權限,操作爲
mysql > grant Replication client on *.* to 'nagios'@'%' identified by 'nagios';
mysql> flush privileges;
2、登陸從服務器驗證一下,看是否正常。操作爲
mysql -unagios -pnagios -e "show slave stutas\G"
注意:這個操作是在 shell下操作的!!
mysql -unagios -pnagios -e "show slave stutas\G"
注意:這個操作是在 shell下操作的!!
3、在從服務器安裝 nrpe,然後在配置文件nrpe.cfg加入一行
command[check_mysql_slave]=/usr/local/nrpe/libexec/chech_mysql_slave
command[check_mysql_slave]=/usr/local/nrpe/libexec/chech_mysql_slave
4、編寫腳本/usr/local/nrpe/libexec/check_mysql_slave(這是監控其作用的核心),其內容如下:
#!/bin/bash
declare -a slave_is
slave_is=($(/opt/mysql/bin/mysql -unagios -pnagios -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
5、執行
/usr/local/nagios/libexec/check_nrpe -H 192.168.10.231
/usr/local/nagios/libexec/check_nrpe -H 192.168.10.231 -c check_mysql_slave
觀察其輸出:
6、修改nagios,並測試。
/usr/local/nagios/libexec/check_nrpe -H 192.168.10.231
/usr/local/nagios/libexec/check_nrpe -H 192.168.10.231 -c check_mysql_slave
觀察其輸出:
6、修改nagios,並測試。
(1)vim /usr/local/nagios/etc/services.cfg
define service {
host_name 192.168.10.231
service_description check_mysql_slave #名字任意定義
check_period 24x7
max_check_attempts 1
normal_check_interval 3
retry_check_interval 2
contact_groups sagroup #填寫屬於的組
process_perf_data 1
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_nrpe!check_mysql_slave #需要監控的對象,在從機中對應好
host_name 192.168.10.231
service_description check_mysql_slave #名字任意定義
check_period 24x7
max_check_attempts 1
normal_check_interval 3
retry_check_interval 2
contact_groups sagroup #填寫屬於的組
process_perf_data 1
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command check_nrpe!check_mysql_slave #需要監控的對象,在從機中對應好
}