master:23.247.76.253
[root@nagios_client1 tool]#
mysql -V mysql Ver 14.14 Distrib 5.6.32, for linux-glibc2.5 (x86_64) using EditLine wrapper
[root@nagios_client1 tool]#
cat /etc/redhat-release CentOS release 6.7 (Final)
slave:23.247.78.254
[root@nagios_client2 ~]#
mysql -V mysql Ver 14.14 Distrib 5.6.32, for linux-glibc2.5 (x86_64) using EditLine wrapper
[root@nagios_client2 ~]#
cat /etc/redhat-release CentOS release 6.9 (Final)
//其中master_log_file和master_log_pos是在上面使用 show master status 查到的数据。执行完这一步后,需要在master上执行一步:
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)
然后查看slave的状态:
mysql> show slave status\G;
遇到错误:
Slave_IO_Running: No
Slave_SQL_Running: Yes
Last_IO_Errno: 1593
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).
解决:
mysql> show variables like 'server_id'; //查看服务器的id号set global server_id=XX 修改id号
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)
mysql> set global server_id=2;
Query OK, 0 rows affected (0.00 sec)
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 2 |
+---------------+-------+
1 row in set (0.00 sec)
nagios 监控 mysql 主从同步状态
slave查询
[root@nagios_client2 ~]# mysql -uroot -p"123456" -e "show slave status\G"|grep "Running:"
Warning: Using a password on the command line interface can be insecure.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
"Slave_IO_Running: Yes“和“Slave_SQL_Running: Yes”,这两个值全是"Yes"就表明主从库同步成功
命令:
[root@nagios_client2 ~]#
slave_status=($(mysql -uroot -p"123456" -e "show slave status\G"|grep Running |awk '{print $2}')) Warning: Using a password on the command line interface can be insecure.
[root@nagios_client2 ~]#
echo ${slave_status[0]} Yes
[root@nagios_client2 ~]#
echo ${slave_status[1]} Yes
查看检查脚本:
cat /usr/local/nagios/libexec/check_mysql_slave
#!/bin/sh
slave_status=($(mysql -uroot -p"123456" -e "show slave status\G"|grep Running |awk '{print $2}'))
if [ "${slave_status[0]}" = "Yes" -a "${slave_status[1]}" = "Yes" ]
then
echo "OK nagios_client2-slave is running"
exit 0
else
echo "Critical nagios_client2-slave is error"
exit 2
fi 在nrpe.cfg文件里加:
vi /usr/local/nagios/etc/nrpe.cfg command[check_mysql_slave]=/usr/local/nagios/libexec/check_mysql_slave