Nagios监控MySQL主从状态的简单脚本


使用nagios监控mysql主从,在监控主机上需要安装nrpe软件包以及nagios软件包,安装步骤就不多说了,下面进入正题
 
在监控主机上:
 
首先定义主机:
 
vim /usr/local/nagios/etc/objects/localhost.cfg       
define host {
        host_name                    joker
        alias                              test
        address                        192.168.xx.xx
        check_command          check-host-alive
        notification_options      d,u,r
        check_interval                1
        max_check_attempts      2
        contact_groups                admins
        notification_interval  10
        notification_period    24x7
 }
 
定义服务:
 
define service {
        host_name          joker
        service_description    nrpe
        check_period        24x7
        normal_check_interval  2
        retry_check_interval    1
        max_check_attempts      5
        notification_period    24x7
        notification_options    w,u,c,r
        check_command      check_nrpe!check_mysql
 }
 
定义command:
 
define command {
        command_name    check_nrpe
        command_line    /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
 }
 
在被监控主机上:
 
安装nrpe
 tar fvxz nrpe*.tar.gz
 ./configure --prefix=/usr/local/nagios
 useradd nagios
 make all
 make install
 make install-daemon
 make install-daemon-config
 make install-xinetd
 
scp /usr/local/nagios/libexec/check_nrpe  root@192.168.18.105:/usr/local/nagios/libexec
 
vim /etc/xinetd.d/nrpe
 service nrpe
 {
        flags          = REUSE
        socket_type    = stream   
        port            = 5666   
        wait            = no
        user            = nagios
        group          = nagios
        server          = /usr/local/nagios/bin/nrpe
        server_args    = -c /usr/local/nagios/etc/nrpe.cfg --inetd
        log_on_failure  += USERID
        disable        = no
        only_from      = 192.168.18.105 
}
 vim /etc/services
 
在最后添加nrpe 5666/tcp
 service xinetd restart
 
vim /usri/local/nagios/etc/nrpe.cfg
 command[check_mysql]=/usr/local/nagios/libexec/check_mysql
 
vim /usr/local/nagios/libexec/check_mysql
 #!/bin/bash
 master=`mysql -h 192.168.18.165 -u hello -p123 -e 'show master status' &> /tmp/123 | awk 'NR==2{print $2}' /tmp/123`
 slave=`mysql -e 'show slave status' &> /tmp/234 | awk =F: '{if($1~/Exec/)print $2}' /tmp/234`
 if [ $master -eq $slave ]; then
    echo "ok"
    rm -fr /tmp/123
    rm -fr /tmp/234
    exit 0
 else
    echo "error"
    mv /tmp/123 /tmp/err1
    mv /tmp/234 /tmp/err2
    exit 2
 
最后进行测试,本人亲测OK~~~

相关内容