奇忠诚 发表于 2019-1-13 10:08:43

nagios监控脚本编写

  公司开发的app,有发送短信功能。
  有时候发现短信有几分钟延迟,发现短信队列,达到了1万。
  需要紧急处理。
  每次都是用户反馈,这个不太好。
  

  所以写了一个shell脚本,监控短信队列条数。
  公司开发了一个接口,可以直接看到短信队列条数的条数。
  访问接口,命令如下
  curl http://xx.xxx.com/inform/waitSendInformCount
  返回值如下,最后的0表示短信队列条数
  {"code":0,"msg":"成功","data":0}
  所以直接提取最后一个数字就可以了
  命令如下:
  curl http://xx.xxx.com/inform/waitSendInformCount | cut -d ":" -f 4 | cut -d "}" -f 1
  

  编辑脚本
  check_sms_queue.sh
  内容如下:
  

  #!/bin/bash
  #
  if [ "$1" = "-w" ] && [ "$2" -gt "0" ] && [ "$3" = "-c" ] && [ "$4" -gt "0" ]; then
  a=`curl http://xx.xxx.com/inform/waitSendInformCount | cut -d ":" -f 4 | cut -d "}" -f 1`
  if [ "$a" -ge "$4" ]; then
      echo "sms_queue: CRITICAL Total: $a - concurrent_count |USED=$a;200;500;;"
      $(exit 2)
  elif [ "$a" -ge "$2" ]; then
      echo "sms_queue: WARNING Total: $a - concurrent_count|USED=$a;200;500;;"
      $(exit 1)
  else
      echo "sms_queue: OK Total: $a- concurrent_count|USED=$a;200;500;;"
      $(exit 0)
  fi
  else
  echo "check_sms_queue"
  echo ""
  echo "Usage:"
  echo "check_sms_queue -w-c "
  echo ""
  echo "Copyright (C) 2014 http://www.xx.com/"
  exit
  fi
  

  

  效果如下:

http://s3.运维网.com/wyfs02/M01/72/4D/wKiom1Xf_payHl-PAABPg0UZ3OU348.jpg
  

  本来以为不会有图形显示的,点击之后,居然有。
  因为参考链接,有一段话提到
  nagios会将"|"之后的内容作为性能数据输出 。如可输出给pnp4nagios
http://s3.运维网.com/wyfs02/M01/72/4D/wKiom1XgAITz9mF7AAIF-rJY8u8947.jpg
  

  所以说,这段脚本,可以作为模板,编写其他的应用监控。
  红色加粗部分,是我修改的地方,这样改动起来比较方便,一键替换就好了。
  以前看的那些文章写的,太复杂了。总感觉写一个自定义监控脚本,比登天还难。
  后来看到一些简单的,写了一个。发现没有图形画,蛋疼。
  怎么就没有,又简单,又有图形画的呢?今天,终于被发现了。
  有一种 断剑重铸之日 其势归来之时 的感觉。
  

本文参考
http://www.ahlinux.com/shell/23218.html





页: [1]
查看完整版本: nagios监控脚本编写