Nagios的插件介绍
创始人
2024-07-23 15:31:44
0

  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

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...