当前位置 : 主页 > 网络编程 > 其它编程 >

Nagios监控mysql同步

来源:互联网 收集:自由互联 发布时间:2023-07-02
一、方案一、先检查master上masterstatus的状态sleep1再检查slave上slavestatus只要slavest 一、方案一、 先检查master上master status的状态sleep 1再检查slave上slave status只要slave status上相应的file和posi
一、方案一、先检查master上masterstatus的状态sleep1再检查slave上slavestatus只要slavest

一、方案一、

先检查master上master status的状态sleep 1再检查slave上slave status只要slave status上相应的file和position > master上的就认为是OK否则发报警mail仅供参考这里使用方案二。 二、方案二、 登入mysql从服务器通过执行 mysql> show slave status\G 查看其输出即可判定主从复制是否正常。下面是某个从服务器的输出

  • mysql> show slave status\G 
  • *************************** 1. row *************************** 
  •                Slave_IO_State: Waiting for master to send event 
  •                   Master_Host: 192.168.93.16 
  •                   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、在被监控的从服务器增加一个用户给予较低的权限操作为 注Replication client 有此权限可以查询master server、slave server状态。

  • mysql> grant Replication client on *.* to nagioslocalhost identified by nagios; 
  • mysql> flush privileges; 
  • 2、验证一下看是否正常,  . mysql -unagios -pnagios -e "show slave stutas\G" 3、在从服务器安装 nrpe,然后在配置文件nrpe.cfg加入一行

  • vi /usr/local/nagios/etc/nrpe.cfg 
  • command[check_mysql_slave]/usr/local/nagios/libexec/check_mysql_slave 
  • 4、编写脚本/usr/local/nagios/libexec/check_mysql_slave这是监控其作用的核心,其内容如下

  • #!/bin/sh  
  • declare -a    slave_is  
  • slave_is($(/usr/local/mysql/bin/mysql -unagios -pnagios    -e "show slave status\G"|grep Running |awk {print $2}))  
  • if [ "${slave_is[0]}"  "Yes" -a "${slave_is[1]}"  "Yes" ]  
  •      then  
  •      echo "OK C2-slave is running"  
  •      exit 0  
  • else  
  •      echo "Critical C2-slave is error"  
  •      exit 2  
  • fi  
  • 保存退出。注意权限执行权限 
  • chmod x check_mysql_slave 
  • chown  nagios.nagios check_mysql_slave 
  • 5、手动运行这个脚本观察输出是否正确 [rootwan76slavemysql libexec]# ./check_mysql_slave  OK mysql_slave is running!!! ################################# ###  以下对监控服务器进行配置 ### ################################# 6、在监控服务器上执行 WuYi176# /usr/local/nagios/libexec/check_nrpe -H 被监控机 -c check_mysql_slave OK mysql_slave is running!!! 7、在监控文件中添加定义监控服务的配置

  • vi /usr/local/nagios/etc/test.cfg 
  • define service{ 
  •         use                     mail-service 
  •         host_name               test 
  •         service_description     mysql_slave 
  •         check_command           check_nrpe!check_mysql_slave 
  • 8、验证配置文件是否正确 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 9、重读nagios配置文件立即生效 FreeBSD下     /usr/local/etc/rc.d/nagios reload CentOS下     service nagios reload 声明本博客 转载、收集、整理了一些他人文章仅方便自己学习之用时间久远已不知其具体出处。敬请前辈们海涵。

     

    转:https://blog.51cto.com/johnsteven/817171

    网友评论