nagios监控mysql主从同步

nagios监控mysql主从同步

在网上看了很多多文章大多出自一个人

作者:田逸( sery@163.com)

,不过有几处错误也不够详细 ,在这自己写详细点。

最近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.93.16
                  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、在被监控的从服务器增加一个用户,给予较低的权限,操作为 :

注:Replication client 有此权限可以查询master serverslave server状态。

mysql >  grant Replication client on *.* to nagios@localhost identified by 'nagios';
mysql> flush privileges;

2、验证一下,看是否正常,  .

mysql -unagios -pnagios -e "show slave stutas\G"    

  注意:这个操作是在 shell下操作的!!
3、在从服务器安装 nrpe,然后在配置文件nrpe.cfg加入一行

vi /usr/local/nagios/etc/nrpe.cfg

command[check_mysql_slave]=/usr/local/nagios/libexec/check_mysql_slave
 

4、编写脚本/usr/local/nagios/libexec/check_mysql_slave(这是监控其作用的核心),其内容如下:
 

#!/bin/sh 
declare -a    slave_is 
slave_is=($(/usr/local/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 C2-slave is running" 
     exit 0 
else 
     echo "Critical C2-slave is error" 
     exit 2 
fi 
 
注意权限执行权限

5、手动运行这个脚本,观察输出。

6、执行
/usr/local/nagios/libexec/check_nrpe -H 被监控端机器 -c check_mysql_slave
在nagios执行的
------------------------------------------------------------------------------------------------------------------------------
下面在nagios配置文件
vi /usr/local/nagios/services/nagios.conf
define service{
        use                                   service  
        host_name                     被监控段的IP 地址必须有nrpe
        service_description        check_mysql_slave  nagios显示的名字
        check_command            check_nrpe!check_mysql_slave 查找的插件
        notification_options      w,u,c,r  状态
         contact_groups           联系组
}
vi /usr/local/nagios/hosts/nagios.conf
define host{
        use                             host
        host_name                      IP
        alias                           check_alive
        address                        IP
        contact_groups                组
}
 

 




本文转自 houzaicunsky 51CTO博客,原文链接:http://blog.51cto.com/hzcsky/472982

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值