NRPE
是
nagios
的一个扩展,它被用于被监控的服务器上,向
nagios
监控平台提供该服务器的一些本地的情况。例如,
cpu
负载、内存使用、硬盘使用等等。
NRPE
可以称为
nagios
的
for linux
客户端。
为什么要使用这个客户端呢?在
nagios
的插件中,有一个名为“
check_ssh
”的插件,它也可以实现对于远程服务器中
local
信息的监控。但是,相对
NRPE
,“
check_ssh
”占用的系统资源就略多了一点。监控少量的服务时可能不会察觉,但是如果监控对象比较多,那么差距就非常明显了。但是还有一点要说明,虽然
NRPE
也是使用
SSL
安全通道,但是“
check_ssh
”的安全性要高于
NRPE
,安全性总是和易用性成反比的。
-_-||
首先,需要在
nagios
监控平台服务器上安装
NRPE
,安装很简单,到官方网站下载最新的
nrpe
包,本例中使用的是
nrpe- 2.8.1 .tar.gz
。
tar xzf nrpe- 2.8.1 .tar.gz
cd nrpe- 2.8.1
./configure
make all
make install-plugin
如果安装成功,就可以在
/.../nagios/libexec
目录中找到
"check_nrpe"
这个插件。
之后需要定义一个可以在监控平台使用的命令,这个定义一般会在
/.../nagios/etc/commands.cfg
中,其内容如下:
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }
这样就可以在定义服务的时候使用这个命令了,举个例子:
define service{
host_name remotehost
service_description CPU Load
check_command check_nrpe!check_load }
这个例子就定义了对
remotehost
服务器
cpu
负载情况的监控。其中红色的“
check_load
”是什么,来自哪里,我们下面再说。
ok
,现在来说本文的重点内容,如何在被监控服务器上安装
NRPE
。
首先,需要准备的包有两个:
NRPE
和
nagios-plugin
。本文使用的版本是
nagios-plugins- 1.4.9 .tar.gz
和
nrpe-2.8.1.tar.gz
。首先安装插件:
/usr/sbin/useradd nagios
passwd nagios
tar xzf nagios-plugins- 1.4.9 .tar.gz
cd nagios-plugins- 1.4.9
./configure --prefix=/usr/local/nagios
make && make install
chown nagios.nagios /usr/local/nagios/
chown -R nagios.nagios /usr/local/nagios/libexec/
然后安装
NRPE
:
tar xzf nrpe- 2.8.1 .tar.gz
cd nrpe- 2.8.1
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
ok
,安装好了,可以到
/usr/local/nagios/
下面检查一下,应该生成了
4
个目录
:bin
、
etc
、
libexec
、
share
。之后我们要配置一下,目的是让
NRPE
可以以守护进程的形式监听
5666
端口,为特定地址的
nagios
平台提供服务。在官方的
NRPE
文档中,详细说明了如何将
NRPE
嵌入
xinetd
服务中,我在这里就不��嗦了。有些情况,我们的服务器上没有
xinetd
或者
inetd
这样的服务,那如何办呢?我在这里介绍一种更加通用的方法。
首先,需要修改
/usr/local/nagios/etc/nrpe.cof
。
找到“
allowed_hosts=127.0. 0.1 ” 将其改为:
allowed_hosts=127.0.0.1,$Nagios
监控平台的地址或域名
这个配置的作用是声明合法的
nrpe
服务对象,没有在这里声明的地址是无法从本机的
NRPE
获得服务的。“
$Nagios
监控平台的地址或域名”可以是
ip
地址,也可以是域名。在我环境中,
nagios
监控平台没有一个固定的公网
ip
,所以其他在公网上的服务器如果安装了
NRPE
的话,就只能通过动态域名来辨别监控平台的地址。
启动
NRPE
守护进程:(可以将此命令加入
/etc/rc.local
,以便开机自动启动)
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
此命令生成的日志会在系统的日志(
/var/log/message
)中。如果没有出错,就基本搞定了。我们来验收一下,在本机上:
/usr/local/nagios/libexec/check_nrpe -H 127.0.0.1
或者在
nagios
监控平台服务器上:
/usr/local/nagios/libexec/check_nrpe -H $
目标主机地址
正常的返回值为被监控服务器上安装的
NRPE
的版本信息:
NRPE v 2.8.1
那么,通过
NRPE
,可以监控到哪些信息呢?
只要在被监控服务器上有的插件(
/usr/local/nagios/libexec
中的所有插件),都可以使用。也就是说,你想监控什么,只要有对应的插件,就可以实现。
例如,我希望监控一台远程服务器上的
cpu
负载。在远程主机的插件中有“
check_load
”,那么,在
nrpe.conf
中定义一个
cpu
负载的监控:
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
这个配置就声明了一个命令:“
check_load
”,也就是上述中红色字
check_load
的真身所在了。
本文参考
Nagios
官方文档
NRPE.pdf