Nagios的插件介绍

运维 系统运维
Nagios的插件介绍:Nagios是一个用来监视系统和网络的开源应用软件,它通常运行于Liunx或Unix操作系统下。Nagios的功能非常强大,它可以监控服务和主机,但是他自身并不包括这部分功能的代码,所有的监控、检测功能都是有插件来完成的。本文讲述的是Nagios的插件介绍。

  Nagios插件介绍:

  如果想给Nagios增加一个自己的插件,请访问:Nagios插件项目官方网站、Nagios插件开发的官方指南。

  一、插件概览

  作为Nagios插件的脚本或执行程序必须(至少)要做两件事:

  退出时给出几种可能的返回值中的一个;

  至少要给出一条输出内容到标准输出设备(STDOUT)。

  对Nagios来说,插件里面做什么并不重要。自制插件可以是做TCP端口状态检测,运行某个数据库查询,检查磁盘空闲空间,或其他需要检测的内容。这取决于你想检测什么东西,这完全由你自己决定。

  二、返回值

  Nagios用插件的返回值来生成主机或服务的状态。下表里列出了合法的返回值以及对应的服务或主机状态。

插件返回值 服务状态 主机状态
0 正常(OK) 运行(UP)
1 告警(WARNING) 运行(UP)或宕机(DOWN)/不可达(UNREACHABLE)*
2 紧急(CRITICAL) 宕机(DOWN)/不可达(UNREACHABLE)
3 未知(UNKNOWN) 宕机(DOWN)/不可达(UNREACHABLE)

  注意:如果使能use_aggressive_host_checking选项,返回值1将使主机状态要么是宕机(DOWN)要么是不可达(UNREACHABLE)。其他情况下,返回值1将使主机状态是运行(UP)。

  三、特定插件输出

  最小情况下,插件要返回一行文本输出。自Nagios 3版本起,插件可以返回多行输出文本。插件可以返回性能数据以让外部应用来做后序处理。输出文本的基本格式如下:

  1. TEXT OUTPUT | OPTIONAL PERFDATA  
  2. LONG TEXT LINE 1  
  3. LONG TEXT LINE 2   
  4. ...   
  5. LONG TEXT LINE N | PERFDATA LINE 2  
  6. PERFDATA LINE 3   
  7. ...   
  8. PERFDATA LINE N  

 

  性能数据(用下划线示意的部分)是可选的,如果插件输出文本里有性能数据,必须用管道符(|)把性能数据与其他数据分开,额外的大段输出行(用文字删除符示意的部分)同样也是可选的。

  四、插件输出样例

  下面看一下插件输出的样例...

  案例1:只有一行文本输出(不带性能数据)

  假定插件的输出文本是这样:

  1.   DISK OK - free space: / 3326 MB (56%);  
  2.  

  如果插件执行的是一个服务检测,整行输出都会保存在$SERVICEOUTPUT$宏里。

  案例2:一行输出带性能数据

  插件的输出文本中带有性能数据可给外部应用来处理。性能数据要用管道符(|)分隔开,象是这样:

  1.   DISK OK - free space: / 3326 MB (56%); | /=2643MB;5948;5958;0;5968  
  2.  

  如果插件执行的是一个服务检测,分隔符左侧的部分将保存在$SERVICEOUTPUT$宏里并且右侧(用下划线示意)的部分将保存在$SERVICEPERFDATA$宏里面。

  案例3:多行输出(正文和性能数据都有)

  插件可以输出多行文本,并且带有正文输出和性能数据,象是这样:

  1.   DISK OK - free space: / 3326 MB (56%); | /=2643MB;5948;5958;0;5968  
  2.  
  3.   / 15272 MB (77%);  
  4.  
  5.   /boot 68 MB (69%);  
  6.  
  7.   /home 69357 MB (27%);  
  8.  
  9.   /var/log 819 MB (84%); | /boot=68MB;88;93;0;98  
  10.  
  11.   /home=69357MB;253404;253409;0;253414  
  12.  
  13.   /var/log=818MB;970;975;0;980  
  14.  

  如果插件执行的是一个服务检测,第一行分隔符左侧的部分将保存在$SERVICEOUTPUT$宏里,带有下划线标识的部分(带空格)将保存在$SERVICEPERFDATA$宏里,带删除符标识的部分(不带换行符)的部分将保存在$LONGSERVICEOUTPUT$宏里(以上的下划线和删除符只是为标记文本段而用的,实际文本中不带有符号格式--译者注)。

  每个宏的最终结果是这样的:

内容
$SERVICEOUTPUT$ DISK OK - free space: / 3326 MB (56%);
$SERVICEPERFDATA$ /=2643MB;5948;5958;0;5968./boot=68MB;88;93;0;98./home=69357MB;253404;253409;0;253414./var/log=818MB;970;975;0;980
$LONGSERVICEOUTPUT$ / 15272 MB (77%);\n/boot 68 MB (69%);\n/var/log 819 MB (84%);

  利用多行输出结果的机制,可以采取多种方式来返回性能数据:

  无论什么情况都没有性能数据;

  只返回一行性能数据;

  只是在后序的行内返回性能数据(第一行不用的管道分隔符右侧不填内容);

  利用全部的输出位置来带出性能数据。

  (看起来第一行右侧部分有点"多余",真的可以不用,但其实这是作者为软件向下兼容低版本使用的插件而特意这么做的,很有必要这么做,看一下源程序就明白了。--译者注)

  五、插件输出长度限制

  Nagios只处理插件返回的前4KB数据内容。这样是为了防止插件返回一个上兆或上千兆的数据块给Nagios处理。这个4K的限制很容易修改,如果你想改,可以编辑一下源代码里的MAX_PLUGIN_OUTPUT_LENGTH宏定义,在源程序包的include/nagios.h.in文件里,重编译一下Nagios就可以了,其他地方不用动!

  六、例子

  如果想找点例子来学习开发插件,推荐去下载Nagios插件项目官方的软件包,插件代码使用多种语言(象C、Perl和SHELL脚本等)写成插件。

  Nagios的插件就讲述到这里了。

【编辑推荐】

Nagios的插件的使用

nagios的快速启动选项

启动与停止Nagios

责任编辑:zhaolei 来源: itnms
相关推荐

2011-03-21 09:17:06

Nagios

2011-03-22 10:48:28

Nagios监控

2011-03-21 10:42:44

Nagios插件

2011-03-23 13:29:43

配置Nagios系统

2011-03-28 11:20:11

Nagios 插件

2011-04-06 16:02:26

Nagios插件

2011-03-22 13:00:49

Nagios

2011-03-22 14:16:17

Nagios安装

2011-03-25 17:06:55

Nagios插件plugins

2011-04-01 15:24:12

CactiNagios

2013-01-09 10:20:26

jQueryFlotjQuery插件

2011-03-22 15:17:13

Nagios监控

2011-03-21 15:35:01

Nagiosnagios-plug安装

2011-03-24 13:18:34

Nagios监控mysql

2009-12-15 11:28:34

.NET Framew

2010-06-09 17:07:56

Nagios pnp

2011-03-21 09:17:06

Nagios

2011-03-23 13:44:23

配置Nagios系统

2010-01-06 15:18:51

Json插件

2011-04-01 15:42:13

CactiNagios
点赞
收藏

51CTO技术栈公众号