nagios监控mysql主从复制 推荐
2013-07-22 08:42
525 查看
实验之前搭建好Mysql的主从同步,以及LAMP环境,然后搭建nagios服务器,再在slave端配置。
1、在主数据库服务器增加一个用户
mysql > grant Replication client on *.* to 'nagios'@'%' identified by 'nagios';
mysql> flush privileges;
2、登陆从服务器验证一下,看是否正常。操作为
[root@slave libexec]# mysql -uroot -p123456 -e "show slave status\G"
*************************** 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配置
添加下面的命令
[root@slave~]# vim /usr/local/nagios/etc/nrpe.cfg
command[check_mysql_slave]=/usr/local/nagios/libexec/check_mysql_slave
配置完成后重启nrpe
[root@localhost nagios]# 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
[root@localhost nagios]# kill 3730
[root@localhost nagios]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
(2)创建脚本(从服务器上)
[root@slave ~]# 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 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
[root@slave ~]# chmod +x /usr/local/nagios/libexec/check_mysql_slave
测试脚本运行情况:
[root@localhost libexec]# ./check_mysql_slave
OK -slave is running
================
服务器端的配置:
测试能不能通过nrpe 获取到主从同步运行情况
[root@localhost libexec]# /usr/local/nagios/libexec/check_nrpe -H 192.168.56.102 -c check_mysql_slave
OK -slave is running
首先配置监控slave这台主机:
[root@localhost etc]# 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
}
配置监控的服务:
[root@localhost etc]# 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配置
[root@localhost etc]# service nagios reload
Running configuration check...done.
Reloading nagios configuration...done
打开nagios 的服务页,可以看到已成功监控主从复制
模拟发生故障,主服务器挂掉,导致主从复制失败,看nagios能不能监控到:
[root@client ~]# service mysqld stop
Shutting down MySQL.... SUCCESS!
mysql> show slave status\G;
*************************** 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主从复制是否正常运行,如果我还要监控主从复制是否实时同步,或者说是否同步完成,又该怎么做?
1、在主数据库服务器增加一个用户
mysql > grant Replication client on *.* to 'nagios'@'%' identified by 'nagios';
mysql> flush privileges;
2、登陆从服务器验证一下,看是否正常。操作为
[root@slave libexec]# mysql -uroot -p123456 -e "show slave status\G"
*************************** 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配置
添加下面的命令
[root@slave~]# vim /usr/local/nagios/etc/nrpe.cfg
command[check_mysql_slave]=/usr/local/nagios/libexec/check_mysql_slave
配置完成后重启nrpe
[root@localhost nagios]# 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
[root@localhost nagios]# kill 3730
[root@localhost nagios]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
(2)创建脚本(从服务器上)
[root@slave ~]# 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 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
[root@slave ~]# chmod +x /usr/local/nagios/libexec/check_mysql_slave
测试脚本运行情况:
[root@localhost libexec]# ./check_mysql_slave
OK -slave is running
================
服务器端的配置:
测试能不能通过nrpe 获取到主从同步运行情况
[root@localhost libexec]# /usr/local/nagios/libexec/check_nrpe -H 192.168.56.102 -c check_mysql_slave
OK -slave is running
首先配置监控slave这台主机:
[root@localhost etc]# 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
}
配置监控的服务:
[root@localhost etc]# 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配置
[root@localhost etc]# service nagios reload
Running configuration check...done.
Reloading nagios configuration...done
打开nagios 的服务页,可以看到已成功监控主从复制
模拟发生故障,主服务器挂掉,导致主从复制失败,看nagios能不能监控到:
[root@client ~]# service mysqld stop
Shutting down MySQL.... SUCCESS!
mysql> show slave status\G;
*************************** 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主从复制是否正常运行,如果我还要监控主从复制是否实时同步,或者说是否同步完成,又该怎么做?
相关文章推荐
- nagios中自己写的监控mysql主从复制的插件 推荐
- nagios监控mysql主从复制
- nagios监控mysql主从复制
- 【nagios】监控mysql主从复制
- nagios监控mysql主从复制
- nagios中自己写的监控mysql主从复制的插件
- nagios监控mysql主从复制
- nagios 监控mysql主从复制
- nagios监控mysql主从复制
- 【nagios】监控mysql主从复制
- nagios中自己写的监控mysql主从复制的插件
- nagios监控mysql主从复制
- nagios监控mysql主从复制
- nagios监控mysql主从复制
- 【nagios】监控mysql主从复制
- nagios监控mysql主从复制
- CentOS下编写shell脚本来监控MySQL主从复制的教程
- MySQL主从复制架构及原理 推荐
- Mysql高可用复制原理及主从实例测试解析 推荐
- nagios监控mysql主从