Nagios监控远程主机

来源:岁月联盟 编辑:exp 时间:2011-12-14

 

上文提到过Nagios默认只能监控本机资源,对于远程服务器资源的监控有点力不从心,现在和大家一起学习一下nrpe,Nagios就是通过nrpe来监控远程主机的存活、磁盘空间、负载、进程数、ip 连接等。

一、nrpe原理简介

Nagios的实现方式:Nagios采用分布-集中的管理模式。在nagios服务器上安装Nagios主程序,在被监控主机上安装nagios代理程序。通过nagios主程序和nagios代理程序之间的通讯,监视主机状态。

主程序和代理程序之间有两种工作方式,一种是主程序–>Active–>代理程序;另一种是主程序–>passive–>代理程序;顾名思义,是以一方向另一方主动提出通讯需求来划分的。

二、NRPE的功能和意义

之前已经理解了Nagios的服务-命令-插件的工作关系,因此也明确了基本的Nagios服务是无法实现对远程系统的状况进行监测的,基本的Nagios 监测服务只能是本地系统监测以及对远程主机的连通性监测。为了使Nagios的监测服务器能够远程对被监测主机系统上的信息进行获取,就必须要依靠NRPE这个核心扩展插件程序,NRPE作为中间的代理程序,扮演着一手接受着Nagios监测服务器发来的请求,另一手在远程主机系统上获取指定的信息的中间人角色。

 

三、NRPE的主要工作方式

如以上提到的实现Nagios对远程系统的监测,那么首先必须要在被监测的远程主机上除了安装Nagios-plugins插件程序之外还必须安装NRPE 核心扩展插件程序,并将NRPE在被监测的远程主机系统上以守护进程的方式运行起来,开放指定的NRPE监听端口监听着Nagios监测服务器发送过来的所有监测请求。另外,在Nagios监测服务器上,在必须要安装Nagios-plugins插件程序和NRPE核心扩展插件程序。唯一不同的是,Nagios监测服务器不需要将NRPE作为守护进程运行着,因为它本身一般不需要被别人监测着而是去监测别人,对Nagios监测服务器而言,它只需要使用到Nagio-plugins插件程序和NRPE扩展插件程序就足够了。

 

 

四、在被监控主机上安装Nagios-plugins插件程序

 

$useradd nagios    #新增nagios用户 

$tar -zxvf nagios-plugins-1.4.10.tar.gz  

$cd nagios-plugins-1.4.10 

$./configure --prefix=/usr/local/nagios 

$make;make install 

$chown -R nagios:nagios /usr/local/nagios/ 

 

五、在被监控主机上安装NRPE服务

 

$tar -zxvf nrpe-2.9.tar.gz 

$cd nrpe-2.9 

$./configure 

$make all 

$ make install-plugin;make install-daemon;make install-daemon-config; 

六、在被监测主机上配置并运行NRPE

配置NRPE的主配置文件/usr/local/nagios/etc/nrpe.cfg

 

这里主要交待一些关键重要的设定。 

------------------------------------------------------- 

pid_file=/var/run/nrpe.pid 

设定NRPE运行的PID文件,这个默认就设定好了,不用更改。 

server_port=5666 

这个是NRPE守护进程占用的系统端口。 

#server_address=0.0.0.0 

server_address=192.168.1.9  #这是被控端IP地址 

设定系统监听NRPE的网络接口。一般设定具体的IP地址,如果要多个网卡的话就用逗号“,”来分隔多个IP地址。如果要监听系统全部的网络接口的话,可以使用“0.0.0.0”这个表示全部网络接口的特殊地址,但是不可以用通配符“*”。 

nrpe_user=nagios 

nrpe_group=nagios 

设定NRPE的宿主用户。 

allowed_hosts=192.168.1.12 #这是充许监控服务器IP地址 

这里是设定允许与本机进行NRPE交互的主机的IP地址,也就是Nagios监测服务器的地址,如果要指定多个Nagios服务器的话,那么用逗号“,”来分隔多个IP地址。 

 

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_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1 

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 150 -c 200 

以上是NRPE默认就有的扩展插件命令,这是至关重要的地方了。当被监测主机运行NRPE守护进程的时候,同时就运行起来了这些在NRPE配置文件中定义的NRPE扩展命令了。可以看出这些扩展命令都已经指定了好了命令名、插件路径以及选项参数了。格式如下:

command[NRPE命令名]=插件路径/插件 选项1 参数1 选项2 参数2 ...

注意,如果要指定该被监测主机需要被监控的服务的话,就必须在这里都配置好NRPE命令并运行在NRPE守护进程里。这里没有配置的NRPE命令则Nagios监测服务器是无法监控到的。

将NRPE运行添加加入系统启动脚本中

www.2cto.com

echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.d/rc.local 

 

七、在Nagios监测服务器上安装NRPE核心扩展插件程序

相对被检测主机来说,Nagios监测服务器上做的NRPE安装就比较简单了,而且它主要监测别人而不是被别人监测,所以它不需要将NRPE作为守护进程运行起来,只要拥有NRPE的扩展插件功能就可以了。

 

tar -zxvf nrpe-2.9.tar.gz  

cd nrpe-2.9 

./configure  

make all 

make install-plugin 

Nagios 只要拥有NRPE的扩展插件功能就可以了,所以在Nagios监测服务器安装NRPE工作到这步就可以了。接下来要做的就是在Nagios监测服务器上配置NRPE的扩展插件命令,使得Nagios监测服务器能够定义nrpe命令,从而可以定义出“远程系统监测服务”。

 

作者 周波