Nagios监控--Linux客户端(Use NRPE)
一、实验环境
系统要安装xinetd
监控服务器(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的工作原理
当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/,否则会出错
实验环境配置
   1、 环境搭建
   Server: nagios  nagios-plugins  nrpe
   工作站:nagios-plugins  nrpe
检查一下包的安装情况
# rpm -q httpd gcc glibc glibc-common gd gd-devel
#yum -y httpd gcc glibc glibc-common gd gd-devel
三、配置被监控的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,查找并修改如下一行
server_address=192.168.0.205,127.0.0.1  //地址修改为客户端主机的IP地址
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,并测试
添加服务端口号
vim /etc/services
nrpe           5666/tcp                            #nrpe
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d               //启动nrpe
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是否正常运行
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
 1、安装nagios
 #tar zxvf  tar zxvf nagios-3.2.1.tar.gz
 #cd  nagios-3.2.1
#./configure -–prefix=/usr/local/nagios  --with-command-group=nagios  //设置安装的目录,可随自己喜欢
#make all
#make install   //安装主要的程序、CGI及HTML文件;
#make install-init
#make install-config   //把配置文件的例子复制到nagios的安装目录,按照安装向导的提示
#make install-commandmode    //给外部命令访问nagios配置文件的权限;
#make install-webconf  //生成用户认证模版文件,要使用需复制到apache的最后http.conf文件中   可以自动安装在httpd.conf中的配置,生成nagios.conf;作用是把nagios做成一个运行脚本 在/etc/rc.d/init.d安装启动脚本
2、安装nagios-plugins
#tar zxvf  nagios-plugins-1.4.15.tar.gz
#cd nagios-plugins-1.4.15
#./configure --with-nagios-user=nagios --with-nagios-group=nagios
 #make
 #make install
3、安装nrpe(服务端与客户端一定要一样的版本)
#tar zxvf nagios-nrpe_2.8.1.orig.tar.gz
#cd nrpe-2.8.1
#./configure  --enable-ssl  --with-ssl-lib
#make
#make all
#make install-plugin
#make install-daemon && make install-daemon-config
#rpm -qa | grep ssl           保证有安装ssl
openssl-0.9.8e-12.el5
openssl-devel-0.9.8e-12.el5
openssl-perl-0.9.8e-12.el5

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   //检查nagios配置是否正确
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg   //启动nagios
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          ———————哦,原来是插件忘了装了。

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