因为公司的nagios用了很久监控项目很多,也在zabbix迁移中,也就先临时用nagios监控mysql主从了
mysql> show slave statusG 查看其输出,即可判定主从复制是否正常。下面是某个从服务器的输出:
mysql> show slave statusG
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.X.X
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 stutasG"
3、在从服务器安装 nrpe,然后在配置文件nrpe.cfg加入一行
command[check_mysql_slave]=/usr/local/nagios-nrpe/libexec/chech_mysql_slave
#!/bin/sh declare -a slave_is slave_is=($(/usr/local/mysql/bin/mysql -unagios -pnagios -e "show slave statusG"|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@192-168-X-X ~]#/usr/local/nagios-nrpe/libexec/check_mysql_slave
OK -slave is running
#注释掉下面这行,表示默认不需要控制台 #Defaults requiretty #添加 nagios ALL=(ALL) NOPASSWD:/usr/local/nagios-nrpe/libexec/check_mysql_slave
7、测试nrpe
[root@192-168-X-X ~]# /usr/local/nagios-nrpe/libexec/check_nrpe -Hlocalhost -c check_mysql_slave OK -slave is running
8、添加nagios服务器端的services.cfg
define service{ host_name 192.168.X.X service_description check_mysql_slave check_command check_nrpe!check_mysql_slave max_check_attempts 4 normal_check_interval 3 retry_check_interval 2 check_period 24x7 notification_interval 10 notification_period 24x7 notification_options w,u,c,r contact_groups zhaowei }
9、重启nagios
[root@BC_BJ__Nagios ~]# service nagios restart Running configuration check...done. Stopping nagios: done. Starting nagios: done.
10、web端显示如下可以监控多实例