Nagios监控远程主机

在以前的文章中有介绍过Nagios的安装和插件编写,实践过程中发现安装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插件程序

  1.添加Nagios用户

$useradd nagios

  2.准备好Nagios-plugins和NRPE源代码包,编译安装。

$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

1.配置NRPE的主配置文件 vi /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监测服务器是无法监控到的。

 

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

$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命令,从而可以定义出“远程系统监测服务”。

 

参考资料: http://linux.chinaunix.net/techdoc/system/2008/07/10/1016249.shtml http://www.2cto.com/os/201102/83674.html

posted @ 2011-12-07 12:34  残夜  阅读(1080)  评论(0编辑  收藏  举报