加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 数据采集、建站、AI开发硬件、专属主机、云硬盘!
当前位置: 首页 > 教程 > 正文

编写nagios插件

发布时间:2023-11-11 11:06:08 所属栏目:教程 来源:网络
导读:   Nagios最让人动心的地方就是可以随心所欲的编写自己想要检测的内容,他只需要几行简单的代码就可以为你检测到你想检测到的内容,只要根据nagios编写插件的原则来编写,这是很容易的。
  Nagios最让人动心的地方就是可以随心所欲的编写自己想要检测的内容,他只需要几行简单的代码就可以为你检测到你想检测到的内容,只要根据nagios编写插件的原则来编写,这是很容易的。
 
  Nagios首先需要一个状态码,熟悉nagios的人都知道nagios有四种状态码,分别为OK、WARNING、CRITICAL、UNKNOWN,所以编写插件首先要做到的就是返回状态码,返回状态码如何表示呢,nagios如何识别呢,其实很简单,nagios只要知道脚本退出是的状态就可以确定监控项的状态,下面是nagios返回的状态码与退出脚本时的状态的对照表
 
  OK
 
  0
 
  WARNING
 
  1
 
  CRITICAL
 
  2
 
  UNKNOWN
 
  3
 
  因为本人比较热衷于shell,所以我就介绍一下shell脚本的写法以及简单的示例。先贴出来一个比较简单的用于测试并发量的监控脚本吧。
 
  #!/bin/bash
 
  path=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
 
  export PATH
 
  #下面是返回状态码
 
  STATE_OK=0
 
  STATE_WARNING=1
 
  STATE_CRITICAL=2
 
  STATE_UNKNOWN=3
 
  #下面是统计有多少个ESTABLISHED状态的连接
 
  total=`netstat -n | awk '/^tcp/ {++S[$NF]}END {for(a in S) print a, S[a]}' |grep "ESTABLISHED" | awk '{print$NF}'`
 
  #下面是返回状态码和StatusInformation
 
  if [ $total -lt 100 ];then
 
  echo"TEST OK : The established status id $total"
 
  exit$STATE_OK
 
  elif [ $total -gt 100 -a $total -lt 200];then
 
  echo"TEST WARNING : The established status id $total"
 
  exit$STATE_WARNING
 
  elif [ $total -gt 201 ];then
 
  echo"TEST CRITICAL : The established status id $total"
 
  exit$STATE_CRITICAL
 
  else
 
  echo"UNKNOWN STATE"
 
  exit$STATE_UNKNOWN
 
  fi
 
  是不是很简单,echo输出的是在StatusInformation里显示的内容,exit是返回的状态码,这样一个简单的监控脚本就写出来了,这个脚本只适合在linux上使用,要向在其他平台上使用还需要借助其他的语言,这里就不多做介绍了,下面贴一下这个脚本检测的效果图。
 
 

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章