一、方案一、

 先检查master上master status的状态,sleep 1,再检查slave上slave status,只要slave status上相应的file和position >= master上的,就认为是OK,否则发报警mail,仅供参考,这里使用方案二。
 
二、方案二、
登入mysql从服务器,通过执行 mysql> show slave status\G 查看其输出,即可判定主从复制是否正常。下面是某个从服务器的输出:
 
  1. mysql> show slave status\G 
  2. *************************** 1. row *************************** 
  3.                Slave_IO_State: Waiting for master to send event 
  4.                   Master_Host: 192.168.93.16 
  5.                   Master_User: rep1 
  6.                   Master_Port: 3306 
  7.                 Connect_Retry: 60 
  8.               Master_Log_File: mysql-bin.000004 
  9.           Read_Master_Log_Pos: 1752541 
  10.                Relay_Log_File: hy-mysql3-relay-bin.000088 
  11.                 Relay_Log_Pos: 2339 
  12.         Relay_Master_Log_File: mysql-bin.000004 
  13.              Slave_IO_Running: Yes 
  14.             Slave_SQL_Running: Yes 
  15.               Replicate_Do_DB:  
这个输出,最关键处就是"Slave_IO_Running: Yes“和“Slave_SQL_Running: Yes”,这两个值全是"Yes"就表明同步正常。
 
################################
### 以下配置针对被监控服务器 ###
################################
 
1、在被监控的从服务器增加一个用户,给予较低的权限,操作为 :
注:Replication client 有此权限可以查询master server、slave server状态。
 
  1. mysql> grant Replication client on *.* to nagios@localhost identified by 'nagios'
  2. mysql> flush privileges
2、验证一下,看是否正常,  .
mysql -unagios -pnagios -e "show slave stutas\G"
 
3、在从服务器安装 nrpe,然后在配置文件nrpe.cfg加入一行
 
  1. vi /usr/local/nagios/etc/nrpe.cfg 
  2. command[check_mysql_slave]=/usr/local/nagios/libexec/check_mysql_slave 
4、编写脚本/usr/local/nagios/libexec/check_mysql_slave(这是监控其作用的核心),其内容如下:
 
  1. #!/bin/sh  
  2. declare -a    slave_is  
  3. slave_is=($(/usr/local/mysql/bin/mysql -unagios -pnagios    -e "show slave status\G"|grep Running |awk '{print $2}'))  
  4. if [ "${slave_is[0]}" = "Yes" -a "${slave_is[1]}" = "Yes" ]  
  5.      then  
  6.      echo "OK C2-slave is running"  
  7.      exit 0  
  8. else  
  9.      echo "Critical C2-slave is error"  
  10.      exit 2  
  11. fi  
  12. 保存,退出。注意权限执行权限 
  13. chmod +x check_mysql_slave 
  14. chown  nagios.nagios check_mysql_slave 
 
5、手动运行这个脚本,观察输出是否正确
[root@wan76slavemysql libexec]# ./check_mysql_slave 
OK mysql_slave is running!!!
 
#################################
###  以下对监控服务器进行配置 ###
#################################
 
6、在监控服务器上执行
WuYi176# /usr/local/nagios/libexec/check_nrpe -H 被监控机 -c check_mysql_slave
OK mysql_slave is running!!!
 
7、在监控文件中添加定义监控服务的配置
  1. vi /usr/local/nagios/etc/test.cfg 
  2. define service{ 
  3.         use                     mail-service 
  4.         host_name               test 
  5.         service_description     mysql_slave 
  6.         check_command           check_nrpe!check_mysql_slave 
 
8、验证配置文件是否正确
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
 
9、重读nagios配置文件,立即生效
FreeBSD下     /usr/local/etc/rc.d/nagios reload
CentOS下     service nagios reload
 
 
声明:本博客 转载、收集、整理了一些他人文章,仅方便自己学习之用,时间久远,已不知其具体出处。敬请前辈们海涵。