Nagios 利用check_mysql监控MySQL主从状态

作为一名运维人员,对于mysql的主从同步我们并不陌生。我们如何能得知主从库是否在实时的同步呢?每隔一分钟登录到数据库到数据库执行 show slave status\G 显然是不靠谱。不要忘记我们有监控之神 nagios,我们可以通过 nagios 来监控主从库的同步状态。那如何来实现nagios 监控 mysql 主从同步状态呢?

增加监控用户

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

登陆从服务器验证是否正常

# mysql -unagios -pnagios -e "show slave status\G"

监控远程mysql状态

# vim /etc/nagios/nrpe.cfg

添加如下一行:

command[check_mysql_slave]=/usr/lib64/nagios/plugins/check_mysql -P 3306 -u nagios -p nagios -S -w 60 -c 600

在远程主机服务配置文件里面添加如下

define service{
use local-service ; Name of service template to use
host_name mysql
service_description MySQL Slave
check_command check_nrpe!check_mysql_slave
}

在监控机运行check_nrpe检查是否可正常

# /usr/lib64/nagios/plugins/check_nrpe -H x.x.x.x -c check_mysql_slave