Chinaunix首页 | 论坛 | 博客
  • 博客访问: 388976
  • 博文数量: 28
  • 博客积分: 3055
  • 博客等级: 中校
  • 技术积分: 310
  • 用 户 组: 普通用户
  • 注册时间: 2006-12-15 14:04
文章分类

全部博文(28)

文章存档

2009年(2)

2008年(2)

2007年(21)

2006年(3)

我的朋友

分类: LINUX

2007-08-15 15:10:18

Nagios监控的侧重点在“此时”服务是否正常,是一个瞬时状态。通过对这个状态的监控和告警,管理员可以第一时间对主机或者服务的故障做处理。但是我们往往也非常关心主机的性能以及服务的响应时间等情况,这些情况是一个持续的变化曲线,并非一个实时的值,如果通过查看日志数据来分析的话,既繁琐有抽象,所以,我们希望Nagios可以帮我们做这份工作,然后将报表提交给我们,这样就非常方便了。这就是我今天要介绍的Nagios的相关开源项目——PNP()。

PNP是一个小巧的开源软件包,它是基于PHP和PERL,利用rrdtool将Nagios采集的数据绘制成图表。如果你要安装PNP,那么准备工作有如下3项:
1、整合Apache和PHP(本文使用版本:Apache 2.2.3  PHP 5.1.6)
2、安装rrdtools (本文使用版本:RRDTools 1.2.23)
3、安装Perl (本文使用版本: Perl5 )
关于这3项工作的方法,网络上有很多精彩的文章介绍,我就不多说了,下面介绍一下PNP的工作原理,顺便将安装配置的内容也描述如下。

要介绍PNP工作原理,首先要说明一下Nagios提供的数据接口,也就是PNP的数据来源。在前面的文章中,我提到过,在定义host或service中都有一个定义项,名为process_perf_data,其值可以定义为0或1,其作用是是否启用Nagios的数据输出功能。如果你将此项赋值为1,那么Nagios就会将收集的数据写入到某个文件中,以备提取。所以,如果你想让Nagios将数据输出的话,首先要将Nagios的主配置文件nagios.cfg中相关的配置修改:

process_performance_data=1

service_perfdata_command=process-service-perfdata  #默认此句被注释掉了


如果想要对某个监控对象做数据图表,则需在所对应的host或者service定义中(一般写在hosts.cfg或者services.cfg文件中),包含如下的定义:

process_perf_data 1


这样,Nagios就会调用相应的命令来输出数据了。Nagios的command定义中默认有一项“process-service-perfdata”,该命令声明了Nagios输出哪些值到输出的文件中。不过其定义相对简单,PNP提供了一个perl脚本,更详尽的定义了一个输出数据的方法。如果要使用PNP的话,我们需要在command的定义中,将“process-service-perfdata”命令对应的执行命令行的内容替换成该脚本:

define command{

command_name process-service-perfdata

command_line /usr/local/nagios/libexec/process_perfdata.pl

}


这样设置了之后,Nagios就会利用PNP提供的脚本进行相关的工作了。

细心的看管大概已经发现了,刚刚定义命令时用到的脚本“process_perfdata.pl”现在还不存在。我们现在就来安装,也就PNP的软件包(本文用的版本是pnp-0.3.3.tar.gz)。安装方法很简单,过程也很顺利(我的系统安装时选择了开发工具,谢天谢地!)

./configure --with-rrdtool=/usr/local/rrdtool/bin/rrdtool --with-perfdata-dir=/usr/local/nagios/share/perfdata/

make all

make install


安装结束之后,再去检查一下Nagios的插件目录(libexec),就会发现多了一个名为“process_perfdata.pl”的脚本。

ok,现在执行一下Nagios配置检查命令

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


如果没有什么错误,那么我们重新启动Nagios。

/etc/init.d/nagios restart


验收一下成果,在浏览器的地址栏中输入:


如果可以看到图表,那就恭喜啦!贴上我的图表给大家看看。


阅读(17131) | 评论(15) | 转发(2) |
给主人留下些什么吧!~~

chinaunix网友2008-11-07 16:12:16

Initalising Using /usr/local/nagios/share/perfdata// RRDTool /usr/bin/rrdtool found. RRDTool /usr/bin/rrdtool is executable PHP Function proc_open is enabled PHP Function fpassthru is enabled PHP Function xml_parser_create is enabled PHP zlib Support found. PHP GD Support found. RRD Base Directory /usr/local/nagios/share/perfdata// found. Hostname localhost is set. Directory /usr/local/nagios/share/perfdata//localhost found. Service Description Current_Load i

chinaunix网友2008-11-07 10:53:38

我想问一下,process_performance_data=1这个是全局定义的还是对每一个监控项都要定义? Blog作者的回复: 这个值是全局定义,每个监控项也需要单独设置一个“ process_perf_data 1 ” ,两者目前还是缺一不可的。 在templates.cfg中默认process_perf_data=1的,并且在每个service定义中都调用了这个模板,还需要再单独指定吗?

fine1022008-03-07 15:45:23

好文章,以後常來看看

chinaunix网友2008-01-02 16:52:17

我想问一下,process_performance_data=1这个是全局定义的还是对每一个监控项都要定义?