zoukankan      html  css  js  c++  java
  • Nagios监控mysql主从复制

    因为公司的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"    
      注意:这个操作是在 shell下操作的!!
    3、在从服务器安装 nrpe,然后在配置文件nrpe.cfg加入一行
    command[check_mysql_slave]=/usr/local/nagios-nrpe/libexec/chech_mysql_slave
    4、编写脚本/usr/local/nagios-nrpe/libexec/check_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 
    5、给脚本添加可执行权限,手动运行这个脚本,观察输出。

    [root@192-168-X-X ~]#/usr/local/nagios-nrpe/libexec/check_mysql_slave
    OK -slave is running

    6、修改/etc/suders
    #注释掉下面这行,表示默认不需要控制台
    #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端显示如下可以监控多实例

    志不强者智不达
  • 相关阅读:
    iOS-技巧性总结
    使用Xcode进行调试
    iOS-屏幕适配-UI布局
    iOS开发简单介绍
    iOS-网络处理
    iOS-数据解析XML解析的多种平台介绍
    iOS-数据持久化基础-JSON与XML数据解析
    iOS-数据持久化-第三方框架FMDB的使用
    ASP.NET的内置对象
    线性表
  • 原文地址:https://www.cnblogs.com/xiewenming/p/7263283.html
Copyright © 2011-2022 走看看