nagios的CS模式的,所以在被监控主机Client上要有客户端,而监控机Server要有和客户端交互的组建,这个就是check_nrpe。

nagios工作原理:

Nagios<-->check_nrpe <=====>NRPE<--->check_disk


NRPE总共由两部分组成:

check_nrpe ==>插件,位于监控主机上

NRPE daemon==>运行在远程的Linux主机上(通常就是被监控机)


按照上面的监控过程:

当Nagios 需要监控某个远程Linux 主机的服务或者资源情况时:

Nagios会运行check_nrpe插件,告诉它要检查什么;

check_nrpe ==>插件会连接到远程的NRPE daemon,所用的方式是SSL;

NRPE daemon==>会运行相应的Nagios 插件来执行检查;

NRPE daemon==>将检查的结果返回给check_nrpe 插件,插件将其递交给nagios做处理。


NRPE是在nagios-plugins正确安装的基础上进行的,nagios-plugins的安装详情请移步到:

[Nagios监控之2:nagios-plugins安装]http://4709096.blog.51cto.com/4699096/1702253


1.依赖包检测

#rpm -q openssl-devel

#yum install openssl-devel


2.编译安装

NRPE依赖于nagios-plugins,因此,需要先安装之

# tar -zxvf nrpe-2.12.tar.gz

# cd nrpe-2.13

# ./configure \

--prefix=/usr/local/nagios \

--with-nrpe-user=nagios \

--with-nrpe-group=nagios \

--with-nagios-user=nagios \

--with-nagios-group=nagios \

--enable-command-args \

--enable-ssl

(也可以自己# ./configure)

# make all

# make install-plugin

(监控端只安装这一个插件即可)


3.配置监控

3.1定义nrpe监控命令

在commands.cfg中增加check_nrpe命令的定义,以便Nagios监控主机可以使用check_nrpe插件来获取远程被监控主机的信息。

#vim /usr/local/nagios/etc/objects/commands.cfg

在最后面增加如下内容:


# 'check_nrpe' command definition

define command{

# 定义命令名称为check_nrpe,在services.cfg中要使用这个名称

        command_name    check_nrpe

#这是定义实际运行的插件程序

        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

注意:这个命令行的书写要完全按照check_nrpe这个命令的用法,不知道用法的就用check_nrpe –h查看.


3.2添加远端被监控主机信息

#vim /usr/local/nagios/etc/objects/hosts.cfg

该文件默认不存在,新建他是为了统一存放主机配置信息

define host{

#引用主机linux-server的属性信息,linux-server主机在templates.cfg文件中进行了定义。

     use                linux-server          

     host_name            Nagios-Linux    #主机名

     alias               Nagios-Linux    #主机别名

#被监控的主机地址,这个地址可以是ip,也可以是域名。

     address             192.168.1.111

}


#定义一个主机组   

define hostgroup{

     hostgroup_name         bsmart-servers   #主机组名称,可以随意指定

     alias               bsmart servers   #主机组别名

#主机组成员,其中“Nagios-Linux”就是上面定义的主机

     members             Nagios-Linux

}


3.3添加远端被监控主机上定义要监控服务信息

该文件默认不存在,新建他是为了统一存放服务配置信息,如192.168.1.111和其分组信息。

#vim /usr/local/nagios/etc/objects/services.cfg

如:监控负载

define service{

#引用主机local-service的属性信息,local-service在templates.cfg文件中进行了定义。

     use                local-service

     host_name            Nagios-Linux     #在hosts.cof中定义的主机

     service_description      Current Load

#check_load要在被监控主机的nrpe.cfg中定义,默认有这个命令

     check_command          check_nrpe!check_load 

}


如:监控磁盘(注意要监控磁盘的类型和设备号)

define service{

     use                 local-service

     host_name             Nagios-Linux

     service_description      Check Disk sda1

     check_command          check_nrpe!check_sda1

}


3.4添加自定义配置文件到nagios总配置文件中(hosts.cfg和services.cfg)

# vim /usr/local/nagios/etc/nagios.cfg

添加

cfg_file=/usr/local/nagios/etc/objects/hosts.cfg

cfg_file=/usr/local/nagios/etc/objects/services.cfg


鸣谢:本人参考了多篇文章后总结而得,在此感谢各位网络分享者!