您的位置:首页 > 移动开发 > IOS开发

nagios 监控平台搭建

2014-01-26 08:59 429 查看
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"
<Directory "/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
</Directory>

Alias /nagios "/usr/local/nagios/share"
<Directory "/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
</Directory>

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 *****\n\nNotificationType: $NOTIFICATIONTYPE$\nHost:
$HOSTNAME$\nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time:
$LONGDATETIME$\n" | /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 <config_file> <mode>
运行方法:nrpe -c NRPE配置文件路径 运行模式

Options:
可用选项

-n = Do not use SSL
不使用SSL方式,一般都使用SSL。

<config_file> = Name of config file to use
指定NRPE配置文件路径,这个NRPE主配置文件就是nrpe.cfg。

<mode> = 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 <host> [-n] [-u] [-p <port>] [-t <timeout>] [-c <command>]
使用方式:check_nrpe -H 主机名 -p NRPE端口 -c NRPE命令名

Options:
选项:

<host> = 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 <percent_free>% -c <percent_free>%
check_swap -w 剩余空间% -c 剩余空间%

check_swap [-av] -w <bytes_free> -c <bytes_free>
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  nagios nrpe