一、实验环境


监控服务器(nagios服务器
--192.168.1.100)
CentOS5.4 + nagios-3.2.1 + nagios-plugins-1.4.14 + nrpe-2.12

监控客户端(linux客户端--192.168.1.200)
CentOS5.4 + nagios-plugins-1.4.14 + nrpe-2.12


二、nrpe插件

1、nrpe插件的组成

NRPE总共由两部分组成:
(1)check_nrpe:它是运行在监控主机上
(2)NRPE daemon:它是运行在远程的linux主机上(通常就是被监控机)


2、nrpe的工作原理
7dbca139d77a20d114cecb51.jpg
当Nagios需要监控某个远程linux主机的服务或者资源情况时
第一步:nagios服务器运行check_nrpe插件,我们要在nagios配置文件中告诉它要检查什么
第二步:check_nrpe插件会通过SSL连接到远程的被监控的Linux客户端上的NRPE daemon
第三步:被监控的Linux客户端上的NRPE daemon会运行相应的nagios插件来执行检查本地资源或服务
第四步:被监控的Linux客户端上的NRPE daemon的NRPE daemon将检查的结果返回给check_nrpe插件,插件将其递交给进行nagios做处理
注意:NRPE daemon需要nagios-plugin插件安装在远程被监控linux主机上,否则NRPE daemon不能做任何的监控;别外因为它们间的通信是加密的SSL,所以在编译安装时都要加上选项:/configure --enable-ssl --with-ssl-lib=/lib/,否则会出错


三、配置被监控的Linux主机(Linux客户端)

1、安装所需的软件(nagios-plugins、nrpe)
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

1)安装nagios-plugins
#增加一个用户
useradd nagios
passwd nagios
#解压并安装
tar zvxf nagios-plugins-1.4.14.tar.gz && cd nagios-plugins-1.4.14
./configure --with-nagios-user=nagios --with-nagios-group=nagios && make && make install
chown -R nagios:nagios /usr/local/nagios


2)安装nrpe
tar -zxvf nrpe-2.12.tar.gz && cd nrpe-2.12
./configure --enable-ssl --with-ssl-lib (前提是已经安装了openssl与openssl-devel)
make all && make install-plugin && make install-daemon && make install-daemon-config

3)配置nrpe

#配置nrpe信息
vi /usr/local/nagios/etc/nrpe.cfg,查找并修改如下一行
allowed_hosts=192.168.1.100,127.0.0.1   #注意修改为nagios服务器的IP:192.168.1.100

#配置监控对象
说明:由监控原理可知被监控端做监控,然后将数据传给监控服务器绘总,设置监控详细参数主要是设置被监控端的nrpe.cfg文件,可以看到里面监控对象
vi /usr/local/nagios/etc/nrpe.cfg,查找并修改如下一行
command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_disk]=/usr/local/nagios/libexec/check_disk -w 10% -c 5%
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 500 -c 550
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
command[check_ping]=/usr/local/nagios/libexec/check_ping -H 192.168.1.1 -w 100.0,20% -c 500.0,60%
............................................#自已添加..........................................................  
#command[check_http]=/usr/local/nagios/libexec/check_http -I 127.0.0.1 -w 10 -c 20
#command[check_ssh]=/usr/local/nagios/libexec/check_ssh -4 127.0.0.1


4)启动nrpe,并测试
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
echo '/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d &> /dev/null' >> /etc/rc.local
netstat -atulnp | grep 'nrpe'
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      3308/nrpe
/usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.12

5)nrpe常见故障

错误一:/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
CHECK_NRPE: Error - Could not complete SSL handshake
解析办法:配置allowed_hosts=192.168.1.100,127.0.0.1,然后kill进程再重启就OK了

错误二:/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
Connection refused by host
解析办法:Nrpe进程没有启动

四、配置监控服务器(Nagios服务器)

1、安装所需的软件(nagios、nagios-plugins、nrpe)
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.1.tar.gz
wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz
wget http://prdownloads.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz

2、安装nagios与nagios-plugins

1)nagios与nagios-plugins的安装
查看:http://hi.baidu.com/9812658/blog/item/ae3632edd4f5afe2ce1b3e0e.html

2)安装nrpe
tar -zxvf nrpe-2.12.tar.gz && cd nrpe-2.12
./configure --enable-ssl --with-ssl-lib (前提是已经安装了openssl与openssl-devel)
make all && make install-plugin && make install-daemon && make install-daemon-config

3)配置nrpe

#在commands.cfg中定义nrpe这个外部构件
vi /usr/local/nagios/etc/nagios.cfg,打开下面这一行
cfg_file=/usr/local/nagios/etc/objects/commands.cfg
vi /usr/local/nagios/etc/objects/commands.cfg,增加如下一行
#check nrpe
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

#配置要监控的linux主机
vi /usr/local/nagios/etc/nagios.cfg,加入如下一行
cfg_file=/usr/local/nagios/etc/objects/mylinux.cfg
touch  /usr/local/nagios/etc/objects/mylinux.cfg,增加如下内容
define host{
use         linux-server
host_name   mylinux
alias       mylinux
address     192.168.1.200
}

define service{
use                 generic-service #使用的是/usr/local/nagios /etc/objects/templates.cfg中所定义的
host_name           mylinux
service_description Swap Usage
check_command       check_nrpe!check_swap
}

define service{
use                 generic-service
host_name           mylinux
service_description Current Load
check_command       check_nrpe!check_load
}

define service{
use                 generic-service
host_name           mylinux
service_description Partition Usage
check_command       check_nrpe!check_disk
}

define service{
use                 generic-service
host_name           mylinux
service_description Current Users  
check_command       check_nrpe!check_users
}

define service{
use                 generic-service
host_name           mylinux
service_description Total Processes
check_command       check_nrpe!check_total_procs
}

define service{
use                 generic-service
host_name           mylinux
service_description PING
check_command       check_nrpe!check_ping
}


5)启动nrpc,并测试
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
echo '/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d &> /dev/null' >> /etc/rc.local
netstat -atulnp | grep 'nrpe'
tcp        0      0 0.0.0.0:5666                0.0.0.0:*                   LISTEN      3308/nrpe
/usr/local/nagios/libexec/check_nrpe -H 192.168.0.6   #linux客户端的IP地址:192.168.0.6
NRPE v2.12
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
service nagios restart
http://nagios_ip_address/nagios


PS(★)我第一次实验的时候忘了安装插件了。nagios监控显示:

NRPE: Unable to read output


进入排错阶段:

[root@domU:/usr/local/nagios/libexec/check_nrpe -H localhost
NRPE v2.8                            ———————正常阿??

[root@domU:/usr/local/nagios/libexec/check_nrpe -H localhost -c check_load
NRPE: Unable to read output          ———————哦,原来是插件忘了装了。

安装后解决问题!希望对大家有所帮助,