nagios监控对于你们而言,已经并不陌生,相信它工做的原理及相互间的调用关系也有必定的了解,在生产环境中,监控linux服务器很明显你们都知道能够借助nrpe来检测间接的监控。node
其实,监控分为两类【本身理解定义】,一类是主动式,好比像ping、ssh之类,只须要监控主机执行相应的命令就能够实现监控;另外一类是被动式,也就是监控主机这是抽象为了客户端用于接收数据,借助nrpe插件实现与被监控端的通讯,好比像disk、load等。linux
对于主动式的监控,天然主动在监控主机手里,参数的设置与修改天然不是问题,而对于被动式的监控,好比之前我想监控服务器的根分区使用状况,如今因为生产环境的改变须要去监控/home分区的使用,并且可能我磁盘使用的告警值也须要修改,若是还分别登陆到被监牢主机上去修改相应的参数显然不是很明智的选择。若是咱们监控主机可以变被动为主动,得到修改参数的权力,岂不很好,下面就来配置说明一下,供你们参考。ios
监控主机想变为主动,很明显,被监控主机要容许传参数,因此就要在被监控主机上下些功夫。centos
一、被监控主机上从新编译nrpe bash
./configure --enable-command-args 服务器
make allssh
make install-pluginide
make install-daemon测试
make install-daemon-configspa
二、打开容许传递参数
dont_blame_nrpe=0 ---》 dont_blame_nrpe=1
三、设置带参数的检测指令[示例]
command[check_disk]=/usr/local/nagios/libexec/check_disk -w$ARG1$ -c $ARG2$ -p $ARG3$
四、reload nrpe,
kil -HUP `ps-ef |grep nrpe |grep -v grep | awk'{print $2}'`
###########################################################
下面就监控主机上的操做
注意,监控主机的其他配置不在此说明了,只简述与传参配置相关的。
1、先直接执行命令测试:
[root@localhost libexec]# /usr/local/nagios/libexec/check_nrpe -H 192.168.15.183 -c check_disk -a 20% 15% /
DISK OK - free space: / 14250 MB (79% inode=91%);|/=3645MB;15083;16025;0;18854
2、定义命令模板
vi /usr/local/nagios/etc/objects/commands.cfg
添加
define command {
command_name check_remote_disk
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c check_disk -a $ARG1$ $ARG2$ $ARG3$
}
3、修改主机配置文件
vi /usr/local/nagios/etc/objects/services.cfg
修改添加
define service{
use generic-service
host_name centos6
service_description check_load
check_command check_remote_load!20%!10%!/
}
四、检测语法,重载nagios
[root@localhost~]# /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
[root@localhost~]# service nagios reload
附上被监控主机的安装及初始化脚本,
安装脚本:
#! /bin/bash #install nagios-plugins,nrpe #auth colynn.liu echo 'install nagios-plugins,nrpe....' wget -t 3 -T 15 http://nchc.dl.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz wget -t 3 -T 15 http://nchc.dl.sourceforge.net/project/nagiosplug/nagiosplug/1.4.13/nagios-plugins-1.4.13.tar.gz useradd nagios -s /sbin/nologin -M tar zxf nagios-plugins-1.4.13.tar.gz cd nagios-plugins-1.4.13 ./configure --prefix=/usr/local/nagios make && make install cd .. tar zxf nrpe-2.12.tar.gz cd nrpe-2.12 sed -i '1657 s/^/\/\*/' src/nrpe.c sed -i '1662 s/^/\*\//' src/nrpe.c ./configure --enable-command-args make all make install-plugin make install-daemon make install-daemon-config echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.d/rc.local echo "DONE."
经过参数实现更合理监控
#! /bin/bash # CONFFILE=/usr/local/nagios/etc/nrpe.cfg MASTERIP=192.168.15.188 cd /usr/local/nagios/etc/ && cp nrpe.cfg nrpe.cfg.$(date +%Y%m%d-%H).bak && echo "bakup is succeess nrpe.cfg.$(date +%Y%m%d-%H).bak" sed -i "/allowed_hosts/s/allowed_hosts=127.0.*/allowed_hosts=127.0.0.1,${MASTERIP}/" $CONFFILE && echo "allowed_hosts add successfully" sed -i '/dont_blame_nrpe/s/dont_blame_nrpe=0/dont_blame_nrpe=1/' $CONFFILE sed -i '/^command\[/s/^/#/' $CONFFILE sed -i '/\$$/s/^#//' $CONFFILE ###start nrpe PID=`ps -ef |grep nrpe |grep -v grep | awk '{print $2}'` if [ -z $PID ] then /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d else kill -HUP $PID && echo "reload nrpe is ok" fi