设为首页 收藏本站
查看: 762|回复: 0

nagios 监控 mysql 主从同步状态

[复制链接]

尚未签到

发表于 2019-1-14 09:26:16 | 显示全部楼层 |阅读模式
http://blog.163.com/ly_89/blog/static/18690229920111129113543770/
作为一名运维人员,对于 Mysql 的主从同步我们并不陌生。我们如何能得知主从库是否在实时的同步呢?每隔一分钟登录到数据库到数据库执行 show slave status\G  显然是不靠谱。不要忘记我们有监控之神 nagios,我们可以通过 nagios 来监控主从库的同步状态。那如何来实现nagios 监控 mysql 主从同步状态呢?
我们都知道登录到 mysql 数据库之后,通过 show slave status\G 查看其输出,即可以判断主从复制是否正常,下面来看某个服务器懂得输出


mysql> show slave status\G
*************************** 1. row ***************************
             Slave_IO_State: Waiting for master to send event
                Master_Host: 172.16.117.251
                Master_User: test1
                Master_Port: 3306
              Connect_Retry: 60
            Master_Log_File: mysql-bin.000008
        Read_Master_Log_Pos: 16755097
             Relay_Log_File: Slave_sql-relay-bin.000728
              Relay_Log_Pos: 235
      Relay_Master_Log_File: mysql-bin.000008
Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB:
        Replicate_Ignore_DB:
         Replicate_Do_Table:
     Replicate_Ignore_Table:
    Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
                 Last_Errno: 0
                 Last_Error:
               Skip_Counter: 0
        Exec_Master_Log_Pos: 16755097
            Relay_Log_Space: 235
            Until_Condition: None
             Until_Log_File:
              Until_Log_Pos: 0
         Master_SSL_Allowed: No
         Master_SSL_CA_File:
         Master_SSL_CA_Path:
            Master_SSL_Cert:
          Master_SSL_Cipher:
             Master_SSL_Key:
      Seconds_Behind_Master: 0
1 row in set (0.00 sec)

这个输出,最关键处就是"Slave_IO_Running: Yes“和“Slave_SQL_Running: Yes”,这两个值全是"Yes"就表明主从库同步成功

##############################################################################################
nagios 监控 Mysql 主从同步的操作步骤:
第一部分:客户端配置
1. 编写脚本/usr/local/nagios/libexec/check_mysql_slave (这个脚本是监控mysql 主从同步状态的核心)


#!/bin/sh
slave_is=($(/usr/local/mysql/bin/mysql -uroot -pabc   -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


2. 编辑 /usr/local/nagios/libexec/etc/nrpe.cfg 加入监控 mysql 主从状态同步的命令


command[check_mysql_slave]=/usr/local/nagios/libexec/check_mysql_slave


3. 启动 nrpe 服务,并检查其端口是否监听


[root@Slave_sql libexec]#  /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d [root@Slave_sql libexec]# netstat -npl | grep nrpe
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      27500/nrpe         




4. 启动 mysql 服务手动执行该脚本


[root@Slave_sql libexec]#  ./check_mysql_slave
OK C2-slave is running


   5. 关闭 mysql 服务手动执行该脚本


  [root@Slave_sql libexec]#  ./check_mysql_slave
Critical C2-slave is error




第二部分:服务器端的配置:
1. 编辑 /usr/local/nagios/etc/objects/host.cfg 定义监控的 client


define host {use                     linux-server
host_name               195-Slave-mysql
address                     192.35.91.195
check_command           check-host-alive
max_check_attempts      3
normal_check_interval   2
retry_check_interval    2
check_period            24x7
notification_interval   300
notification_period     24x7
notification_options    d,u,r
contact_groups          admins
process_perf_data       1
action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
}


2. 编辑 /usr/local/nagios/etc/objects/ service.cfg




define service {
use                   generic-service
host_name             195-Slave-mysql
service_description   check_mysql_replication_status
check_command         check_nrpe!check_mysql_slave
max_check_attempts    2
normal_check_interval 2
retry_check_interval  2
check_period          24x7
notification_interval 10
notification_period   24x7
notification_options  w,u,c,r
contact_groups        admins
process_perf_data     1
action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$
}


3. 重启 nagios 和 apache 服务


[root@node2 objects]# /etc/init.d/nagios restart
Running configuration check...done.
Stopping nagios: done.
Starting nagios: done.
[root@node2 objects]# /etc/init.d/httpd restart
Stopping httpd: [  OK  ]
Starting httpd: [  OK  ]


查看 nagios 监控图像

DSC0000.jpg
  





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-663027-1-1.html 上篇帖子: Nagios+Nconf 部署 下篇帖子: nagios 监控平台搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表