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端显示如下可以监控多实例

    志不强者智不达
  • 相关阅读:
    rs
    stm32f767 usoc3
    stm32f767 RTT 日志
    stm32f767 标准库 工程模板
    stm32f767 HAL 工程模板
    docker tab 补全 linux tab 补全
    docker anconda 依赖 下载 不了
    docker run 常用 指令
    linux scp 命令
    Dockerfile 常用参数说明
  • 原文地址:https://www.cnblogs.com/xiewenming/p/7263283.html
Copyright © 2011-2022 走看看