nagios监控mysql主从复制

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;

2、登陆从服务器验证一下,看是否正常。操作为
mysql -unagios -pnagios -e "show slave stutas\G"  
 注意:这个操作是在 shell下操作的!!

3、在从服务器安装 nrpe,然后在配置文件nrpe.cfg加入一行
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,并测试。
(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 #需要监控的对象,在从机中对应好
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章