ddddddf 发表于 2015-9-8 09:51:50

关于Nagios通过NRPE监控客户端的安装与配置

  环境介绍>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
服务端(监控端):192.168.100.2   --nagios服务+check_nrpe
客户端(被监控端):192.168.100.3    --nrpe守护进程+检测插件
  Nagios通过NRPE来远端管理服务的过程
1. Nagios服务端执行安装在它里面的check_nrpe插件,并告诉check_nrpe 去检测哪些服务。
2. 通过SSL,check_nrpe连接远端机子上的NRPE daemon
3. 被监控端的NRPE运行本地的各种插件去检测本地的服务和状态(check_disk,..etc)
4. 最后,被监控端的的NRPE把检测的结果传给nagios服务端的check_nrpe,check_nrpe再把结果送到Nagios状态队列中。
5. Nagios 依次读取队列中的信息,再把结果显示出来。
  NRPE 工作原理如下图所示:

  NRPE 总共由两部分组成:
1、check_nrpe 插件,位于监控主机上
2、NRPE daemon,运行在远程的Linux主机上(通常就是被监控机)
  当Nagios 需要监控某个远程Linux 主机的服务或者资源情况时:
Nagios 会运行check_nrpe 这个插件,告诉它要检查什么;
check_nrpe 插件会连接到远程的NRPE daemon,所用的方式是SSL;
NRPE daemon会运行相应的Nagios插件来执行检查;
NRPE daemon将检查的结果返回给check_nrpe 插件,插件将其递交给nagios做处理。
注意:NRPE daemon需要Nagios 插件安装在远程的Linux主机上,否则,daemon不能做任何的监控。
  
  服务端(监控端)安装过程
  1、服务端需要先安装nagios服务,安装方法可点击笔者的另一篇文章,《linux系统下Nagios+rrdtool+Pnp4nagios监控环境的搭建》
  2、安装nrpe所需的依赖,使用yum命令安装即可。



# yum install gcc make -y
# yum install openssl-devel -y      //check_nrpd会通过ssl的方式,连接远端的NRPE Daemon
  3、解压nrpe-2.15.tar.gz,进入其目录,执行如下命令。



# ./configure --with-nrpe-user=nagios    //可以就以nagios用户运行nrpe,如没有此用户,须先创建
# make all                               //编译所有源码
# make install-plugin       //安装check_nrpe插件,默认为安装到/usr/local/nagios/libexec目录
  
  客户端(被监控端)的安装过程
  1、安装nrpe所需的依赖,使用yum命令安装即可。



# yum install gcc make -y
# yum install openssl-devel -y                     //check_nrpd会通过ssl的方式,连接远端的NRPE Daemon
  2、解压nrpe-2.15.tar.gz,进入其目录,执行如下命令:



# useradd nagios                                 //创建nagios用户
# ./configure --with-nrpe-user=nagios      //可以就以nagios用户运行nrpe
# make all                                 //编译所有源码
# make install-daemon                      //安装nrpe命令,默认安装到/usr/local/nagios/bin目录
# make install-daemon-config               //安装nrpe配置文件,默认安装到/usr/local/nagios/etc目录
  3、修改nrpe.cfg配置文件,允许监控端通过check_nrpe进行连接nrpe守护进程,默认只允许本机,加上监控端的IP即可。



allowed_hosts=127.0.0.1,192.168.100.2
  4、启动nrpe守护进程,也可以将如下命令加入到开机启动脚本/etc/rc.local



# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d    //启动nrpe,监听TCP 5666 端口
  5、验证是否安装及启动成功,可在服务端执行如下命令:



# /usr/local/nagios/libexec/check_nrpe -H 192.168.100.3               //显示被监控端nrpe的版本
# /usr/local/nagios/libexec/check_nrpe -H 192.168.100.3 -c check_load   //通过nrpe执行远端的检测插件
  这里需要特别注意的有2点
  (1)被监控端必须得有有/usr/local/nagios/libexec/check_load 检测脚本文件
  (2)通过check_nrpe 命令后的-c参数所接的命令名是被定义在监控端的nrpe.cfg中,如下图所示:
  
  
  服务端(监控端)的配置
  1、定义命令,在/usr/local/nagios/etc/objects/commands.cfg中增加对check_nrpe的定义,加入如下内容:



define command{
command_name    check_nrpe                                    //定义命令名称为check_nrpe,在services.cfg中要使用这个名称.
command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$   //这是定义实际运行的插件程序
}
  -c后的$ARG1$参数是传给nrpe daemon执行的检测命令,它必须是nrpe.cfg中所定义的那几条命令中的一条。在定义监控服务中使用check_nrpe的时候要用!带上这个参数。
  2、在/usr/local/nagios/etc/nagios.cfg配置文件中加上如下内容:



cfg_file=/etc/nagios/objects/linux.cfg                           //让nagios包含此配置文件
  3、定义主机与check_nrpe要检测的远端command名字。这里我们可以将主机与服务写在一个文件里,创建/usr/local/nagios/etc/objects/linux.cfg文件,写入如下内容:



define host{
use                     linux-server
host_name               nagios_client                  //nagios网页上的主机名
address               192.168.100.3
}
define service{
use                           local-service
host_name                     nagios_client
service_description             cpu_load               //nagios网页上的服务名
check_command                   check_nrpe!check_load
normal_check_interval         1                        //检测的间隔
}
  4、重启nagios服务。打开nagios监控网站,可见如下图所示,则表示被监控节点添加成功。
  
页: [1]
查看完整版本: 关于Nagios通过NRPE监控客户端的安装与配置