作为一名运维人员,对于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