butai 发表于 2013-7-23 09:57:31

nagios监控mysql主从复制

实验之前搭建好Mysql的主从同步,以及LAMP环境,然后搭建nagios服务器,再在slave端配置。1、在主数据库服务器增加一个用户
mysql > grant Replication client on *.* to    'nagios'@'%' identified by 'nagios';   
mysql> flush privileges;
2、登陆从服务器验证一下,看是否正常。操作为   
# mysql -uroot -p123456 -e "show slave statusG"
*************************** 1. row ***************************
               Slave_IO_State: Reconnecting after a failed master event read
                  Master_Host: 192.168.56.105
                  Master_User: rep
                  Master_Port: 3306
                Connect_Retry: 60
            Master_Log_File: mysql-bin.000009
          Read_Master_Log_Pos: 645
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 705
      Relay_Master_Log_File: mysql-bin.000009
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
3、在从服务器安装 nrpe,然后在配置文件nrpe.cfg加入一行
(安装过程这里就不再重复,只讲配置)
slave上的配置(1)nrpe配置
添加下面的命令
# vim /usr/local/nagios/etc/nrpe.cfg
command=/usr/local/nagios/libexec/check_mysql_slave
配置完成后重启nrpe
# netstat -nultp |grep nrpe
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp      0            0                0.0.0.0:5666                0.0.0.0:*                   LISTEN      3730/nrpe      

# kill 3730# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
(2)创建脚本(从服务器上)
# vim /usr/local/nagios/libexec/check_mysql_slave#!/bin/sh
declare -a    slave_is
slave_is=($(/usr/local/mysql/bin/mysql -uroot -p123456    -e "show slave statusG"|grep Running |awk '{print $2}'))
if [ "${slave_is}" = "Yes" -a "${slave_is}" = "Yes" ]
   then
   echo "OK -slave is running"
   exit 0
else
   echo "Critical -slave is error"
   exit 2
fi
# chmod +x /usr/local/nagios/libexec/check_mysql_slave
测试脚本运行情况:
# ./check_mysql_slave
OK -slave is running
================
服务器端的配置:
测试能不能通过nrpe 获取到主从同步运行情况
# /usr/local/nagios/libexec/check_nrpe -H 192.168.56.102 -c check_mysql_slave
OK -slave is running
首先配置监控slave这台主机:
# vim /usr/local/nagios/etc/hosts/slave.cfg
define host{
      use   linux-server,hosts-pnp
      host_name       slave
      alias               slave
      address         192.168.56.102
}
配置监控的服务:
# vim /usr/local/nagios/etc/services/slave.cfg
define service{
      use   generic-service,services-pnp
      host_name       slave
      service_description   ping
      check_command   check_ping!100.0,20%!500.0,60%
      max_check_attempts 5
      normal_check_interval 1
}
define service{
      use   generic-service,services-pnp
      host_name       slave
      service_description   tcp
      check_command   check_tcp!22
      max_check_attempts 5
      normal_check_interval 1
}
......
define service{
      use   generic-service,services-pnp
      host_name       slave
      service_description   check_mysql_slave
      check_command         check_nrpe!check_mysql_slave
      max_check_attempts 5
      normal_check_interval 1
}
重新加载nagios配置
# service nagios reload
Running configuration check...done.
Reloading nagios configuration...done打开nagios 的服务页,可以看到已成功监控主从复制
模拟发生故障,主服务器挂掉,导致主从复制失败,看nagios能不能监控到:
# service mysqld stop
Shutting down MySQL.... SUCCESS! mysql> show slave statusG;
*************************** 1. row ***************************
               Slave_IO_State: Reconnecting after a failed master event read
                  Master_Host: 192.168.56.105
                  Master_User: rep
                  Master_Port: 3306
                Connect_Retry: 60
            Master_Log_File: mysql-bin.000009
          Read_Master_Log_Pos: 645
               Relay_Log_File: mysql-relay-bin.000002
                Relay_Log_Pos: 705
      Relay_Master_Log_File: mysql-bin.000009
             Slave_IO_Running: Connecting
            Slave_SQL_Running: Yes
。。。。。。实验至此就完成了!
这里提出个疑问:从上面的实验可以看到,nagios只是监控mysql主从复制是否正常运行,如果我还要监控主从复制是否实时同步,或者说是否同步完成,又该怎么做?

panjianm 发表于 2013-7-23 17:16:15

不在放荡中变坏,就在沉默中变态!

搜鞥都哦 发表于 2013-7-24 05:36:24

做爱做的事,交配交的人。

排第四偶家 发表于 2013-7-24 21:04:43

爱她,就请为她做无痛人流手术!

q9989 发表于 2013-7-26 00:04:54

男人偷腥时的智商仅次于爱因斯坦!

trzxycx 发表于 2013-7-27 00:30:51

我的id是假冒的,大家不要相信我是骗子。

漂亮蓝影 发表于 2013-7-27 23:29:15

真是 收益 匪浅
页: [1]
查看完整版本: nagios监控mysql主从复制