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   [email protected]:/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~~~

本文出自 “海纳百川” 博客,谢绝转载!

你可能感兴趣的:(nagios,监控mysql主从状态,简单脚本)