nagios监控mysql脚本_nagios监控mysql主从状态的简单脚本

  • Post author:
  • Post category: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     24×7

}

定义服务:

define service {

host_name           joker

service_description     nrpe

check_period        24×7

normal_check_interval   2

retry_check_interval    1

max_check_attempts      5

notification_period     24×7

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~~~



版权声明:本文为weixin_36035585原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。