nagios的nrpe插件
 nrpe插件,是安装在客户端上面,通过修改配置文件,启动之后,可以供服务端读取信息,当然服务端也需要设置以下。我下面举例:

服务端:203
客户端:191、189
操作系统都是:RedFlagDC5.0SP2

kernel:2.6.9-42.7AX

    服务端203上面安装了

nagios-plugins-1.4.11-1
nagios-cn-www-3.0rc1-1.rfdc5.0sp2
nagios-cn-3.0rc1-1.rfdc5.0sp2

客户端191和189上面安装了(当然安装前建议先建nagios用户和组,我不希望nrpe以root权限跑

nagios-plugins-1.4.11-1
nrpe-2.12-1
nrpe-plugin-2.12-1

    首先配置客户端191和189上面nrpe的配置文件/etc/nagios/nrpe.cfg,修改其中的

allowed_hosts=172.16.81.203

    后面的IP地址,是服务端203的ip地址,也就是说只允许203通过nrpe开的端口5666取得本机的信息。
    然后修改nrpe.cfg中的command部分。默认提供了5个command

command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200

    其实我就改了其中的check_hda1部分,因为我191和189上/分区不是hda1
    191上跟分区是sda6,并且为了以后监控更多的磁盘,并且为了直观,所以我改了命令名为check_/。

command[check_/]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/sda6

    189上跟分区是hda10,命令名也同样被我改了。

command[check_/]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda10

    启动客户端191和189上的nrpe服务即可。
    当然command部分可以无限制的扩展,因为有nagios_plugins的支持,想监控本地的什么资源,都可以自己写出来。此文章中就不多述,以后再研究。
    在nrpe所带的README中说,还要在/etc/service中添加nrpe的5666端口tcp一行,但是我没有加也没关系。但是在正式的环境里面,建议还是加上。
    可见客户端比较简单。

    服务端203上面的配置是这样的,首先nagios部分已经配置好了(包括host都已经定义好了),不多叙述。只需要修改service部分。
    在此之前,需要先定义command部分关于nrpe的信息,修改/etc/nagios/objects/commands.cfg,在最后添加

define command{
        command_name check_nrpe
        command_line /usr/lib/nagios/plugins/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

    其实从nrpe_plugin的README中可以得到很详细的介绍。其中command_line后面指定的命令,可能需要修改以下,我当时没注意,就直接拷贝的nrpe_plugin的README中的内容,结果就是错误的

define command{
        command_name check_nrpe
        command_line /usr/local/nagios/libexec/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

    很明显,需要修改。
    然后说service部分,/etc/nagios/objects/localhost.cfg中定义新的service

define service{
        use                local-service
        host_name            lvs191,lvs203,189
        service_description         nrpe_disk
        check_command             check_nrpe!check_/
        notifications_enabled         0
        }

    这里,check_command后面的“check_nrpe!check_/”,前面的“check_nrpe”是在commands.cfg文件中定义的,“check_/”是客户端191和189的/etc/nagios/nrpe.cfg中定义的内容。
    改好之后,启动nagios即可。就等着结果吧。
    每次启动nagios,你新添加的服务项,是一个时间段之后才会第一次扫描,一般是nagios启动的2分钟之后才扫描,以后每多长时间扫描一次,是取决于“use  local-service”的“local-service”中定义的时间的。
    当然,在localhost.cfg中我添加了5个默认的服务

##################################################################
######## The nrpe plugin
##################################################################
define service{
        use         local-service
        host_name         lvs191,lvs203,189
        service_description         nrpe_disk
        check_command         check_nrpe!check_/
        notifications_enabled         0
        }

define service{
        use         local-service
        host_name         lvs191,lvs203,189
        service_description         nrpe_users
        check_command         check_nrpe!check_users
        notifications_enabled         0
        }

define service{
        use         local-service
        host_name         lvs191,lvs203,189
        service_description         nrpe_load
        check_command         check_nrpe!check_load
        notifications_enabled         0
        }

define service{
        use         local-service
        host_name         lvs191,lvs203,189
        service_description         nrpe_zombie_procs
        check_command         check_nrpe!check_zombie_procs
        notifications_enabled         0
        }
define service{
        use         local-service
        host_name         lvs191,lvs203,189
        service_description         nrpe_total_procs
        check_command         check_nrpe!check_total_procs
        notifications_enabled         0
        }

    抽个图看看。193是我的everest linux桌面,没有装nrpe,只使用了nagios的几个简单监控http、ssh、ping。