nagios监控-监控客户端NRPE的安装配置
一、NRPE和NRPE_NT简介:
官方的说法是:NRPE是nagios的一个扩展,它可以让你在远程的linux/Unix服务器执行nagios的插件来监控该服务器的一此本地资源情况,例如,cpu负载、内存使用、硬盘使用等等。由于这些资源通常不会暴露给外部主机,所以NRPE需作为客户端安装在被监控的远程服务器上。简单来说当监控主机将监控请求发给安装在被监控机的nrpe客户端后,nrpe客户端调用插件完成监控动作并向nagios监控平台提供该服务器的一些本地的情况。顾名思义,NRPE用于linux/unix平台,而NRPE_NT则用于windows平台。
二、NRPE的工作原理:
如上图所示,NRPE主要由两部份组成――位于监控主机的check_nrpe插件和运行在远程主机的NRPE后台程序,当监控主机需要监控远程主机的资源时:
2.1、监控主机执行check_nrpe插件并说明需要检查的资源(如CPU、内存等)
2.2、check_nrpe插件通过SSL连接来联系远程主机的NRPE后台程序
2.3、远程主机的NRPE后台程序运行相应的插件来检查本地的资源(如CPU、内存等)
2.4、远程主机的NRPE后台程序得到检查的结果后返回给监控主机的check_nrpe插件,check_nrpe插件再将结果返回给nagios
需要注意的是,由于远程主机的检查的结果是通过NRPE后台程序调用nagios的插件来得到的,所以nrpe和nagios-plugins(本例为nagios-plugins-1.4.13.tar.gz)必需一起安装到被监控主机上。
英文水平有限,更多的详细说明请看官方文档:http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf
三、NRPE的安装与配置实例――linux平台
环境:
监控服务器:
被监控服务器:
3.1
3.11
3.12
首先,需要准备的包有两个:NRPE和nagios-plugin。本文使用的版本是nagios-plugins-1.4.13.tar.gz和nrpe-2.12.tar.gz。
首先安装插件nagios-plugins-1.4.13.tar.gz:
[root@
[root@
[root@
[root@
[root@
[root@
[root@
[root@
然后安装NRPE:
[root@
[root@
[root@
[root@
[root@
[root@
[root@
安装完成之后,
首先,需要修改/usr/local/nagios/etc/nrpe.cfg
找到“allowed_hosts=127.0.0.1”将其改为:
allowed_hosts=127.0.0.1,10.246.0.103
这个配置的作用是声明能与NRPE后台程序进行会话的监控服务器的IP地址或域名,没有在这里声明的地址是无法从本机的NRPE获得服务的。在本例中,我的监控服务器的IP为10.246.0.103
启动NRPE守护进程并加入开机自启动:
[root@
[root@
查看NRPE是否已正常启动:
[root@
tcp
可以看到5666端口已经在监听,NRPE已正常启动
在nagios监控服务器上运行以下命令进行测试:
[root@nagios]#/usr/local/nagios/libexec/check_nrpe
NRPE
正常的返回值为被监控服务器上安装的NRPE的版本信息,说明在监控服务器上用check_nrpe连接nrpe
注:如出现“Connection
3.2++++配置++++
NRPE 安装完成之后,我们需要对监控服务器及和被监控主机分别进行配置后才能进行监控,那么我们可以监控到哪些信息呢?这个取决于被监控主机有什么样的插件
OK,现在我以监控客户端10.246.0.103上的磁盘分区/var的使用情况为例来说一下如何对监控服务器及和被监控主机分别进行配置。
3.21
[root@mysql-slave]#vi
找到下面这一段
#
command[check_users]=/usr/local/nagios/libexec/check_users
command[check_load]=/usr/local/nagios/libexec/check_load
command[check_hda1]=/usr/local/nagios/libexec/check_disk
command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs
command[check_total_procs]=/usr/local/nagios/libexec/check_procs
中括号里面的红色部分是定义的命令名,等号=后面是实际执行的插件程序,从上面可以知道NRPE默认已定义了检测登陆用户数,cpu负载,hda1的容量, 僵尸进程,总进程数5个命令,但是没有我想要的检测磁盘分区/var使用情况的命令,需另外定义,将如下内容添加到上面5个命令的后面:
command[check_var]=/usr/local/nagios/libexec/check_disk
这样,我们就定义了一个命令:“check_var”,调用“check_disk”插件来检测磁盘分区/var的使用情况,如果空闲空间小于20%则为警告状态—warning;如果小于10%则为严重状态—critical。定义完之后,须重启nrpe
[root@
3.22
3.22.1
在commands.cfg定义check_var命令,只有在commands.cfg中定义过的命令才能在services.cfg中使用。
[root@nagios]#vi
在最后面增加如下内容
define
}
解释如下:
command_name
command_line
3.22.2
[root@nagios]#vi
增加如下内容
define
}
3.22.3
[root@nagios]#vi
在services.cfg中定义对mysql-slave主机/var分区的监控
define
#监控命令为check_nrpe,须先在commands.cfg定义,参数是check_var,须先在被监控机的nrpe.cfg定义
}
还需要监控其他信息的话,像上面那将它加进来就行了,如要将默认定义好的五个命令都加进来,只需将上面的一段定义内容复制粘,然后将“check_var”改成事先定义好的命令即可
至此,所有的配置文件都已经配置好了已经修改好了,使用下面的命令来检查配置文件是否有错:
[root@nagios]#/usr/local/nagios/bin/nagios
…………………..
Total
Total
[root@nagios]#/etc/init.d/nagios
打开IE输入http://10.246.0.103/nagios测试
四、NRPE的安装与配置实例――Windows平台
4.1
4.11
nagios监控服务器上面已经安装好NRPE,这里略过
4.12
4.12.1
需要的安装包有两个:nrpe_n和nrpe_nt_plugins。
http://nchc.dl.sourceforge.net/sourceforge/nrpent/nrpe_nt.0.8b-bin.zip
http://www.nagiosexchange.org/cgi-bin/jump.cgi?ID=2131&view=File2;d=1
4.12.2
目录结构如下:
C:\nrpe_nt
├─bin
├─plugins
其中bin目录为nrpe_nt的主目录;
plugins为nagios_plugins程序所在目录;
4.12.3
C:\>cd
C:\nrpe\bin>NRPE_NT.exe
NRPE_NT
C:\nrpe\bin>net
Nagios
Nagios
4.12.4
检查端口Listen情况
C:\nrpe_nt\bin>netstat
可以看到5666端口已经在监听,NRPE已正常启动
测试plugins的执行情况
C:\nrpe_nt\plugins>memload_nrpe_nt.exe
Mem:
命令执行成功
4.2++++配置++++
4.21
nrpe_nt的配置文件为C:\nrpe_nt\bin\nrpe.cfg,用写字板打开,找到
“allowed_hosts=10.10.9.100,10.10.9.101,192.168.1.100”
将其改为:allowed_hosts=127.0.0.1,10.246.0.103
在最后面定义如下检测命令用于检测C盘、内存、CPU负载:
command[nt_check_disk_c]=C:\nrpe_nt\plugins\diskspace_nrpe_nt.exe
command[nt_cpuload]=C:\nrpe_nt\plugins\cpuload_nrpe_nt.exe
和linux平台一样,可以监控到什么样的信息取决于被监控主机有什么样的插件,这样就配置好了,保存后重启服务使其生效
4.22
服务器端的配置跟上面linux平台的一样:
422.1
define
}
命令在上面配置linux平台的客户端时已定义好,这里不用再定义
422.1
define
}
3.22.3
define
}
define
}
define
}
配置文件配置好后,使用下面的命令来检查配置文件是否有错:
[root@nagios]#/usr/local/nagios/bin/nagios
…………………..
Total
Total
[root@nagios]#/etc/init.d/nagios