nagios搭建配置

一、需要的软件包

1、nagios-3.2.3.tar.gz  nagios主监控包

tar -zxvf nagios-3.2.3.tar.gz

cd nagios-3.2.3

./configure --prefix=/usr/local/nagios

make all

make install

命令对主程序,cgi及html进行安装

make install-init

命令在/etc/rc.d/init.d/目录中安装启动脚本

make install-commandmode

命令来安装和配置外部命令对Nagios主路径操作的权限。(这里所谓的外部命令主要是指Apache服务通过CGI来对

Nagios的进行的操作。用户将通过Web以执行CGI程序脚本的方式来对Nagios的检测结果进行读取和调用。)

make install-config

命令在/usr/local/nagios/etc/下安装nagios配置文件示例模版

chkconfig --add nagios on 开机启动nagios

chkconfig --level 35 nagios on

useradd nagios

创建nagios用户

chown -R  nagios.nagios /usr/local/nagios

权限设置

nagios-plugins-1.4.15.tar.gz 监控插件

2、tar -zxvf nagios-plugins-1.4.15.tar.gz

cd nagios-plugins-1.4.15

./configure --prefix=/usr/local/nagios

make && make install

nagios-cn-3.2.3.tar.bz2  汉化包

tar -jxvf nagios-cn-3.2.3.tar.bz2

cd nagios-cn-3.2.3

./configure

make && make install

3、httpd-2.2.14.tar.gz 安装apache

tar -zxvf httpd-2.2.14.tar.gz

cd httpd-2.2.14

./configure --prefix=/usr/local/apache

make

make install

4、php-5.4.0.tar.gz 安装php

tar -zxvf php-5.4.0.tar.gz

cd php-5.4.0

./configure --prefix=/usr/local/php --with-apxs2=/usr/local/aache/bin/apxs(apache可以调用php)

make

make install

二、修改apache配置文件

1、修改:

User  nagios

Group nagios

修改为:

DirectoryIndex index.html index.php

增加:

AddType application/x-httpd-php .php

设置apache授权访问在配置文件最后添加:

#setting for nagios

ScriptAlias /nagios/cgi-bin "/usr/local/nagios/sbin"

AuthType   Basic

Options    ExecCGI

AllowOverride AuthConfig

Order allow,deny

Allow from all

AuthName "Welcome to user nagios"

AuthUserFile  /usr/local/apache/conf/htpasswd

Require  valid-user



Alias /nagios  "/usr/local/nagios/share"

AuthType   Basic

Options    ExecCGI

AllowOverride AuthConfig

Order allow,deny

Allow from all

AuthName "Welcome to user nagios"

AuthUserFile  /usr/local/apache/conf/htpasswd

Require  valid-user



2、创建验证文件

/usr/local/apache/bin/htasswd -c /usr/local/apache/conf/htpasswd nagiosadmin

注意-c 为创建文件用,nagiosadmin为所创建的用户,下次使用该命令创建用户,不能用-c这样会覆盖之前的用户

chown -R nagios.nagios /usr/local/apache

权限设置,不然验证不通过

启动nagios:

service nagios start

启动apache

/usr/local/apache/bin/httpd -k start

浏览器访问 http://ip/nagios/ 要求输入用户名密码,显示nagios监控界面恭喜你基本安装成功

三、nagios 配置文件分析

1、/usr/local/nagios/nagios/etc/nagios.cfg  nagios的主配置文件

cfg_file=/usr/local/nagios/etc/objects/commands.cfg       定义nagios命令的配置文件

cfg_file=/usr/local/nagios/etc/objects/contacts.cfg       定义联系人、联系人组模版的配置文件

cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg    定义时间段的模版配置文件

cfg_file=/usr/local/nagios/etc/objects/templates.cfg      定义主机和服务的一个模版配置文件

cfg_file=/usr/local/nagios/etc/objects/windows.cfg        定义windons主机的模版配置文件

cfg_dir=/usr/local/nagios/etc/nagiosconf在主配置文件中可以通过这条命令指定,nagios配置文件目录nagiosconf这

个目录可以按类型嵌套目录,nagios执行中寻找这个目录中后缀为.cfg的所有文件



2、cgi.cfg 控制CGI访问的配置文件

use_authentication=1

设定启用身份验证。

authorized_for_system_information=nagiosadmin

设定系统信息的授权用户。

authorized_for_configuration_information=nagiosadmin

设定配置信息的授权用户。

authorized_for_system_commands=nagiosadmin

设定系统命令的授权用户。

authorized_for_all_services=nagiosadmin

设定全部监测服务的授权用户。

authorized_for_all_hosts=nagiosadmin

设定全部被监测主机的授权用户。

authorized_for_all_service_commands=nagiosadmin

设定全部监测服务命令的授权用户。

authorized_for_all_host_commands=nagiosadmin

设定全部主机命令的授权用户。

3、resource.cfg  资源文件,主要是定义命令所在地,以便其他配置文件引用



3、object目录,存放很多模版配置文件,被其他配置文件引用

nagios中的配置文件是这样一个逻辑应用结构:

当一个任务被触发要有这样的工作,任务可以是主机或服务,这个任务什么时候被检查(需要timeperiods.cfg模版定义),

检查这个任务的命令是什么(需要commands.cfg模版定义),报警什么时候发送(由timeperiods.cfg模版定义),联系人是

谁(由contact.cfg模版定义)

templates.cfg 文件分析

define contact{

       name                            generic-contact       name用来定义一个类名,应为这是个difine contact段所以这是个联系人类名,可被contact引用引用    

       service_notification_period     24x7                  服务故障通知时间

       host_notification_period        24x7                  主句故障通知时间

       service_notification_options    w,u,c,r,f,s           服务报警触发参数

       host_notification_options       d,u,r,f,s             主机报警触发参数

       service_notification_commands   notify-service-by-email   服务报警通知方式

       host_notification_commands      notify-host-by-email      主机报警通知方式

       register                        0                      用来说明它是个类

       }

看这个配置文件“24x7”这是一个时间段名,是在timeeriods.cfg 定义。  notify-host-by-email命令是在commadns.cfg定义,涉及到了模版配置文件的引用

define host{

       name                            generic-host         命名一个主机类 generic-host可被应用

       notifications_enabled           1                    设定启用主机事件通知

       event_handler_enabled           1                    设定启用主机事件处理程

flap_detection_enabled          1                    设定启用状态抖动监测

       failure_prediction_enabled      1                    设定启用故障预测

       process_perf_data               1                    设定启用进程性能数据记录

       retain_status_information       1                    设定启用状态信息保存功能

       retain_nonstatus_information    1                    设定启用非状态信息保存功能

       notification_period             24x7                 设定事件通知的工作时间段

       register                        0              

       }

define host{

       name                            linux-server         定义了一个linux主机类

       use                             generic-host         通过use引用之前定义过的类

       check_period                    24x7                 服务的检查时间

       check_interval                  5                    检查间隔5分

       retry_interval                  1                    主机失败检查重试时间间隔

       max_check_attempts              10                   主机失败最大重检次数

       check_command                   check-host-alive     检查命令在commands.cfg中定义

       notification_period             workhours            发送报警的时间





       notification_interval           120                  主机未回复重发报警的时间间隔120分

       notification_options            d,u,r                触发参数

       contact_groups                  admins               联系人

       register                        0                    类

       }

define service{

       name                            generic-service        

       active_checks_enabled           1                      

       passive_checks_enabled          1                      

       parallelize_check               1                      

       obsess_over_service             1                      

       check_freshness                 0                      

       notifications_enabled           1                      

       event_handler_enabled           1                      

       flap_detection_enabled          1                      

       failure_prediction_enabled      1                      

       process_perf_data               1                      

       retain_status_information       1                      

       retain_nonstatus_information    1                      

       is_volatile                     0                      

       check_period                    24x7                    

       max_check_attempts              3                      

       normal_check_interval           10                    

       retry_check_interval            2                      

       contact_groups                  admins                  

       notification_options            w,u,c,r                

       notification_interval           60                    

       notification_period             24x7                    

        register                        0                    

       }



此为定义一个服务基本类,就是说基本上服务检查需要指定的内容,若有特殊需要可以在此基础上引用重定义,如下工作,一个监测工

作就是一个服务。服务定义段就是要定义Nagios将进行什么样的监测工作的配置段。而且服务当中也能够定义服务的类,并且类也能继承类,

运用比较灵活。



define service{

       name                            local-service          

       use                             generic-service       通过use引用generic-service类  

       max_check_attempts              4                      

       normal_check_interval           5                    重定义后覆盖generic-service 中的定义                

       retry_check_interval            1                      

       register                        0                      

       }

这里的服务并不是指被监测主机上运行的服务,而是指Nagios所进行的“各种不同功能的监测



contact.cfg文件分析



define contact{

       contact_name                    nagiosadmin           定义一个联系人        

       use                             generic-contact       引用templates.cfg模版中的generic-contact类  

       alias                           Nagios Admin          联系人描述

       email                           nagios@localhost      联系人邮件地址

       }

define contactgroup{

       contactgroup_name       admins                        定义一个联系人组

       alias                   Nagios Administrators         描述

       members                 nagiosadmin                   组成员,组成员必须是define contact{}段定义的,成员之间用逗号隔开



      }



timeperiods.cfg 文件分析



define timeperiod{

       timeperiod_name 24x7                                  timeperiod_name 定义时间段名,这个时间段名可被引用

       alias           24 Hours A Day, 7 Days A Week         时间段描述

       sunday          00:00-24:00                          

       monday          00:00-24:00

       tuesday         00:00-24:00

       wednesday       00:00-24:00

       thursday        00:00-24:00

       friday          00:00-24:00

       saturday        00:00-24:00

       }





# 'workhours' timeperiod definition

define timeperiod{

       timeperiod_name workhours

       alias           Normal Work Hours

       monday          09:00-17:00

       tuesday         09:00-17:00

       wednesday       09:00-17:00

       thursday        09:00-17:00

       friday          09:00-17:00

       }



commamnds.cfg 文件分析

define command{

       command_name    notify-host-by-email

       command_line    /usr/bin/printf "%b" "***** Nagios ***** NotificationType: $NOTIFICATIONTYPE$ Host:

$HOSTNAME$ State: $HOSTSTATE$ Address: $HOSTADDRESS$ Info: $HOSTOUTPUT$ Date/Time:

$LONGDATETIME$ " | /bin/mail -s "** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ **" $CONTACTEMAIL$

       }

define command{

       command_name    check-host-alive

       command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5

       }

通过define关键字command来表示一个命令定义段,定义内用在两个大括号内,并且一个属性必须占一行。如果要定义多个命令的话要写多个

define command {}段

commnad_name  来命令一个命令名,在服务的定义当中,只能引用在commands.cfg中定义过的命令名

通过command_line来定义该命令的所使用到的插件程序以及参数配置格式,也可使用系统程序或自己安装的程序,

如notify-host-by-email

命令的定义它通过command_line 调用了/usr/bin/printf;、/bin/mial 命令,后面是它们的参数

如check-host-alive

命令的定义它通过command_line 调用了$USER1$下的check_ping 命令,而$USER1$其实是个目录在resource.cfg配置文件中定义了nagios的

资源在哪里,



resource.cfg配置文件:

$USER1$=/usr/local/nagios/libexec



localhost.cfg 具体应用实例配置分析

define host{

       use                     linux-server        引用linux-server类          





       host_name               localhost           被监控主机名,报警时会提示,根据业务定

       alias                   localhost           描述主机应用

       address                 127.0.0.1           主机ip

       }

define hostgroup{

       hostgroup_name  linux-servers

       alias           Linux Servers

       members         localhost    

       }



define service{

       use                             local-service     引用locak-server类    

       host_name                       localhost        

       service_description             Root Partition

       check_command                   check_local_disk!20%!10%!/

       }

重点说check_command      check_local_disk!20%!10%!/

在命令配置文件中check_local_disk命令的command_line行是这样

command_line   $USER1$/check_disk -w $ARG1$ -c $ARG2$ -p $ARG3$

对比之下我们知道check_local_disk 就相当于$USER1$/check_disk -w  -c  -p 那么

20%这个参数就是$ARG1$的实际值

10%这个参数就是$ARG2$的实际值

/这个参数就是$ARG3$的实际值

多个参数之间用!!隔开

至于check_disk 这个命令的用法可以执行check_disk --help 来查看,其他命令也一样,举例来说:

check_local_disk!20%!10%!/

-p选项指定要监控的分区为/

-w选项触发warn报警当/空间小于20%

-c选项触发crit报警当/空间小于10%



配置文件终于说完了,不知是否啰嗦了,我觉得啰嗦点没关系如果大家能更好的理解,说的不对的地方大家指正这里先谢谢了!



四、nrpe包的安装

1、nagios监控主程序可以理解为一个监控平台,Nagios监测服务只能是本地系统监测以及对远程主机的连通性监测。为了使Nagios

的监测服务器能够远程对被监测主机系统上的信息进行获取,比如远程系统上的进程数、磁盘空间使用状况、所运行的服务等等

这些必须要登录远程主机系统上才能了解的信息的话,就必须要依靠NRPE这个核心扩展插件程序,NRPE作为中间的代理程序,扮

演着一手接受着Nagios监测服务器发来的请求,另一手在远程主机系统上获取指定的信息的中间人角色。

如以上提到的实现Nagios对远程系统的监测,那么首先必须要在被监测的远程主机上除了安装Nagios-plugins插件程序之外还

必须安装 NRPE核心扩展插件程序,并将NRPE在被监测的远程主机系统上以守护进程的方式运行起来,开放指定的NRPE监听端口

监听着Nagios监测服务器发送过来的所有监测请求。另外,在Nagios监测服务器上,在必须要安装Nagios-plugins插件程序和

NRPE核心扩展插件程序。唯一不同的是,Nagios监测服务器不需要将NRPE作为守护进程运行着,因为它本身一般不需要被别人

监测着而是去监测别人,对Nagios监测服务器而言,它只需要使用到Nagio-plugins插件程序和NRPE扩展插件程序就足够了。

在被监控主机上安装Nagios-plugins插件程序

首先要添加用户useradd nagios 这是必须的

tar -zxvf nagios-plugins-1.4.15.tar.gz

cd nagios-plugins-1.4.15

./configure --prefix=/usr/local/nagios

make && make install

chown -R nagios.nagios /usr/local/nagios

安装nrpe包

tar -zxvf nrpe-2.13.tar.gz

cd nrpe-2.13

./configure

make all

make install-plugin  安装nrpe插件程序

make isntall-daemon  安装nrpe守护程序

make install-daemon-config  安装nrpe守护进程配置文件



2、vi /usr/local/nagios/etc/nrpe.cfg

pid_file=/var/run/nrpe.pid

设定NRPE运行的PID文件,这个默认就设定好了,不用更改。

server_port=5666

这个是NRPE守护进程占用的系统端口。

#server_address=0.0.0.0

server_address=192.168.1.9

设定系统监听NRPE的网络接口。一般设定具体的IP地址,如果要多个网卡的话就用逗号“,”来分隔多个IP地址。如果要监听系统

全部的网络接口的话,可以使用“0.0.0.0”这个表示全部网络接口的特殊地址,但是不可以用通配符“*”。

nrpe_user=nagios

nrpe_group=nagios

设定NRPE的宿主用户。

allowed_hosts=192.168.1.12

这里是设定允许与本机进行NRPE交互的主机的IP地址,也就是Nagios监测服务器的地址,如果要指定多个Nagios服务器的话,那么用逗号“,”来分隔多个IP地址。



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_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1

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 150 -c 200

以上是NRPE默认就有的扩展插件命令,这是至关重要的地方了。当被监测主机运行NRPE守护进程的时候,同时就运行起来了这些在NRPE配置文件中定义的NRPE

扩展命令了。可以看出这些扩展命令都已经指定了好了命令名、插件路径以及选项参数了。格式如下:



         command[NRPE命令名]=插件路径/插件 选项1 参数1 选项2 参数2 ...



注意,如果要指定该被监测主机需要被监控的服务的话,就必须在这里都配置好NRPE命令并运行在NRPE守护进程里。这里没有配置的NRPE命令则Nagios监测服

务器是无法监控到的。



3、了解NRPE的执行程序的使用方式

/usr/local/nagios/bin/nrpe -h

-------------------------------------------------------

Usage: nrpe [-n] -c

运行方法:nrpe -c NRPE配置文件路径 运行模式



Options:

可用选项



   -n           = Do not use SSL

   不使用SSL方式,一般都使用SSL。



= Name of config file to use

   指定NRPE配置文件路径,这个NRPE主配置文件就是nrpe.cfg。



        = One of the following two operating modes:

   指定NRPE的运行方式,一共有2种可用的NRPE运行方式:



   -i           =     Run as a service under inetd or xinetd

   以超级守护进程inetd或xinetd方式运行NRPE,要通过这种方式运行的话还要安装和配置xinetd,一般不用。



   -d           =     Run as a standalone daemon

   以独立守护进程方式运行NRPE,一般常用这种运行方式。



4、运行NRPE守护进程

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d

-c 指定配置文件

-d 以独立守护进程方式运行nrpe

检查是否启动

ps aux | grep nrpe

netstat -anlp | grep nrpe

5、将NRPE运行添加加入系统启动脚本中

echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.d/rc.local

到此,被监控主机要做的工作已经完成了。



五、在监控主机上安装nrpe程序

tar -zxvf nrpe-2.13.tar.gz

cd nrpe-2.13

./configure

make all

安装NRPE扩展插件程序

make install-plugin

Nagios只要拥有NRPE的扩展插件功能就可以了,所以在Nagios监测服务器安装NRPE工作到这步就可以了。接下来要

做的就是在Nagios监测服务器上配置NRPE的扩展插件命令,使得Nagios监测服务器能够定义nrpe命令,从而可以定

义出“远程系统监测服务”。

在监控主机上配置NRPE的服务

1.查看新扩展插件check_nrpe的使用方法

/usr/local/nagios/libexec/check_nrpe -h|less

-------------------------------------------------------

Usage: check_nrpe -H [-n] [-u] [-p ] [-t ] [-c ]

使用方式:check_nrpe -H 主机名 -p NRPE端口 -c NRPE命令名



Options:

选项:



     = The address of the host running the NRPE daemon

主机,运行着NRPE守护进程的远程被监测主机名,并且该主机名必须在host里定义过。



[port]      = The port on which the daemon is running (default=5666)

端口,被监测的远程主机上运行NRPE的端口,默认是5666,如果是默认就不用指定。



[command]   = The name of the command that the remote daemon should run

命令,这些命令名必须是被监测主机上NRPE守护进程运行着的。

-------------------------------------------------------



2.在command.cfg命令定义文件中添加NRPE命令。

vi /usr/local/nagios/etc/commands.cfg

-------------------------------------------------------

# NRPE Command

添加NRPE功能命令。



define command(

  command_name   nrpe

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

  }

-------------------------------------------------------

这里要说明几点:

(1)这里定义的命令名就叫作nrpe。

(2)$USER1$/check_nrpe会通过引用resource.cfg获得/usr/local/nagios/libexec/check_nrpe这个绝对路径。

(3)-H $HOSTADDRESS$ 用来获得指定被监测主机的IP地址,$HOSTADDRESS$变量会通过定义主机名查找到host段中的IP地址。

(4)-c $ARG1$ 用来指定被监测主机上NRPE守护进程运行着的NRPE命令名。



3.添加NRPE监控服务

-------------------------------------------------------

#Define Remote Current Users

定义监测远程系统当前登录用户数量服务。

define service{

        use                              remote-service

        host_name                        KCentOS5A

        service_description              Current Users On Remote System

        check_command                    nrpe!check_users

        }



#Define Remote System Loads

定义监测远程系统当前负载服务。

define service{

        use                              remote-service

        host_name                        KCentOS5A

        service_description              Current System Loads

        check_command                    nrpe!check_load

        }



#Define Remote Zombie Processes

定义监测远程系统僵尸进程数服务。

define service{

        use                              remote-service

        host_name                        KCentOS5A

        service_description              Zombie Processes On Remote System

        check_command                    nrpe!check_zombie_procs

        }



#Define Remote System Total Processes

定义监测远程系统进程总数服务。

define service{

        use                              remote-service

        host_name                        KCentOS5A

        service_description              Total Processes On Remote System

        check_command                    nrpe!check_total_procs

        }

-------------------------------------------------------

再强调一遍:

(1)这里check_command后面的nrpe是commands.cfg里定义的命令名。

(2)而nrpe命令名后用感叹号“!”分隔的是NRPE命令名,这些NRPE命令是在远端被监测主机上nrpe.cfg中command后方括号“[]”

中定义的命令名,并且被远程NRPE守护进程运行着。



3.在修改配置并确认完毕后,重新启动Nagios主程序。

service nagios restart

Running configuration check...done

Stopping nagios: done.

Starting nagios: done.

这里特别提醒一点: 如果配置文件当中不小心出现偏差的话,那么Nagios程序将启动失败,而且通过service nagios restart

这种方式的话,还可能不会出现配置文件出错的任何提示信息,即使在日志中也不会记录,就是单单地告诉你不能启动,这样

会给排查错误带来巨大的困扰。如果发生了配置文件错误而导致Nagios启动失败的话,那么请不要使用service nagios restart/start

这样的方式启动。而是使用命令的方式启动它:/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg 这个

命令来启动Nagios主程序,这样的方式下,如果Nagios配置错误的话,它还会提示出错信息,以方便于故障的排查。





六、定制个性化的NRPE远程监控服务:

默认情况下被检测主机上的NRPE配置文件nrpe.cfg中只给出了5条NRPE命令名,如下

-------------------------------------------------------

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_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1

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 150 -c 200

-------------------------------------------------------

其实在方括号“[]”里面写的才是真正的NRPE命令名,而其后的部分则是指定了所使用到的插件路径以及相应的选项和参数,也就

是说,命令名和其使用到的插件以及相应的选项和参数是在被监测端定义的,而Nagios主监测服务器上只要把被监控端上定义的

NRPE命令名拿过来再加入到服务定义中就可以了。



比如我要增加两个远程监测服务,分别是:

(1)监测远程主机上的sda1磁盘空间使用状况。

(2)监测远程主机上的swap交换分区使用状况。



1.首先要找到相应的插件,以及使用方法。

根据要求,找到check_disk和check_swap这两个插件。

首先看看check_disk的用法。

/usr/local/nagios/libexec/check_disk -h|less

-------------------------------------------------------

Usage: check_disk -w limit -c limit {-p path | -x device}

格式:check_disk -w 低限% -c 低限% -p 磁盘设备文件或则分区文件的绝对路径



Options:

选项



-w, --warning=PERCENT%

    设定告警通知百分比数,空间低于该百分比则发出告警通知。



-c, --critical=PERCENT%

    设定严重告警通知百分比数,空间低于该百分比则发出严重告警通知。



-p, --path=PATH, --partition=PARTITION

    指定磁盘设备文件或则分区文件的绝对路径。

-------------------------------------------------------



再来看看check_swap的用法。

/usr/local/nagios/libexec/check_swap -h|less

-------------------------------------------------------

Usage:check_swap [-av] -w % -c %

         check_swap -w 剩余空间% -c 剩余空间%



         check_swap [-av] -w -c

         check_swap -w 剩余字节数 -c 剩余字节数



Options:

选项



-w, --warning=INTEGER

    设定告警通知剩余字节数,剩余字节低于该值则发出告警通知,只可整数。



-w, --warning=PERCENT%%

    设定告警通知百分比数,剩余空间低于该百分比则发出告警通知,双百分号。



-c, --critical=INTEGER

    设定严重告警通知剩余字节数,剩余字节低于该值则发出严重告警通知,只可整数。



-c, --critical=PERCENT%%

    设定严重告警通知百分比数,剩余空间低于该百分比则发出严重告警通知,双百分号。

-------------------------------------------------------



2、在被监控主机上编辑nrpe.cfg配置文件:

vi /usr/local/nagios/etc/nrpe.cfg

-------------------------------------------------------

# Added NRPE Commands

下面两条是自己添加的NRPE命令名。



command[disk_observer]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/sda

设定监测/dev/sda块设备文件,空间小于20%产生告警,小于10%产生严重告警。



command[swap_observer]=/usr/local/nagios/libexec/check_swap -w 45%% -c 25%%

设定监测Swap交换分区,占用率大于55%则产生告警,大于75%则产生严重告警。

-------------------------------------------------------



3、重新启动被监控主机的NRPE守护进程:

killall nrpe

/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d



4、检查被监测主机的NRPE守护进程:

ps aux | grep nrpe

nagios    27504   0.0   0.3   4396   868   ?   Ss 03:35 0:00 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d



5、在Nagios监控服务器上首先确认NRPE的命令定义:

vi /usr/local/nagios/etc/commands.cfg

-------------------------------------------------------

define command{

        command_name nrpe

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

        }

-------------------------------------------------------



6.在Nagios监控服务器上然后按照NRPE命令定义来添加NRPE远程监控服务:

vi /usr/local/nagios/etc/localhost.cfg

-------------------------------------------------------

#Define Remote System Disk Using

定义监测远程系统磁盘使用状况。

define service{

        use                              remote-service

        host_name                        KCentOS5A

        service_description              Disk Using Of Remote System

        check_command                    nrpe!disk_observer

        }



#Define Remote System Swap Using

定义监测远程系统交换分区使用状况。

define service{

        use                              remote-service

        host_name                        KCentOS5A

        service_description              Swap Using Of Remote System

        check_command                    nrpe!swap_observer

        }

-------------------------------------------------------

7、重新启动Nagios监测服务器的监测程序:

service nagios restart

Running configuration check...done

Stopping nagios: .done.

Starting nagios: done.



8、查看Naigos服务运行状况:

ps aux | grep nagios

nagios     7367   0.0   0.3   22888    904 ?         Ssl   21:24    0:00 /usr/local/nagios/bin/nagios -d

/usr/local/nagios/etc/nagios.cfg

root       7376   0.0   0.2    3884    660 pts/2     R+    21:25    0:00 grep nagios