zoukankan      html  css  js  c++  java
  • zabbix自动发现功能实现批量web url监控

     

    现在有大量url需要监控,形式如http://itnihao.blog.51cto.com ,要求url状态不为200即报警。

      需求详细分析:

      大量的url,且url经常变化,现在监控用的是zabbix,如果手动添加模板,会造成大量重复工作,造成人力财力的浪费,造成休息时间的浪费,得不尝失,如果利用脚本+mail,无法图形呈现

      解决方案:

      zabbix有discovery功能,利用此功能,即可轻松解决此问题

      zabbix客户端配置

      #########cat /etc/zabbix/zabbix_agentd.conf|grep -v "^#"|grep -v "^$"##########

      ##此处省略N多信息,

      Include=/etc/zabbix/zabbix_agentd.conf.d/ #配置文件路径

      UnsafeUserParameters=1 #自定义key

      ###########自动发现脚本编写

      ########################cat /etc/zabbix/scripts/web_site_code_status##############

      #!/bin/bash

      # function:monitor tcp connect status from zabbix

      # License: GPL

      # mail:itnihao@qq.com

      # version:1.0 date:2012-12-09

      source /etc/bashrc >/dev/null 2>&1

      source /etc/profile >/dev/null 2>&1

      #/usr/bin/curl -o /dev/null -s -w %{http_code} http://$1/

      WEB_SITE_discovery () {

      WEB_SITE=($(cat WEB1.txt|grep -v "^#"))

      printf '{n'

      printf 't"data":[n'

      for((i=0;i<${#WEB_SITE[@]};++i))

      {

      num=$(echo $((${#WEB_SITE[@]}-1)))

      if [ "$i" != ${num} ];

      then

      printf "tt{ n"

      printf "ttt"{#SITENAME}":"${WEB_SITE[$i]}"},n"

      else

      printf "tt{ n"

      printf "ttt"{#SITENAME}":"${WEB_SITE[$num]}"}]}n"

      fi

      }

      }

      web_site_code () {

      /usr/bin/curl -o /dev/null -s -w %{http_code} http://$1

      }

      case "$1" in

      web_site_discovery)

      WEB_SITE_discovery

      ;;

      web_site_code)

      web_site_code $2

      ;;

      *)

      echo "Usage:$0 {web_site_discovery|web_site_code [URL]}"

      ;;

      esac

      客户端配置文件

      #########cat /etc/zabbix/zabbix_agentd.conf.d/web_site_discovery.conf ###########

      UserParameter=web.site.discovery,/etc/zabbix/scripts/web_site_code_status web_site_discovery

      UserParameter=web.site.code[*],/etc/zabbix/scripts/web_site_code_status web_site_code $1

      域名如下

      ######### cat /etc/zabbix/scripts/WEB.txt###########

      www.qq.com

      www.baidu.com

      www.sina.com.cn

      测试:

      zabbix_get -s 127.0.0.1 -k web.site.discovery

      zabbix_get -s 127.0.0.1 -k web.site.code[www.qq.com]

      此时返回状态为200

      至此,脚本,客户端配置文件OK



      接下来是web的添加

      报警级别的设置:3个报警级别

      利用以上方法,哪怕是1000个url监控,也是分分钟的事情

      总结:工欲善其事,必先利其器

      参考文档:https://www.zabbix.com/documentation/2.0/manual/discovery/low_level_discovery

      此外,还可以参考我写的文档:http://code.google.com/p/auto-task-pe/downloads/list zabbix自动发现监控http端口.pdf 如遇到问题,请先仔细阅读这2个文档,另外附模板文件。

  • 相关阅读:
    Response生成注册验证码实现例子02
    Mysql 自增字段起始值auto_increment的修改方法
    elite核心库的加载方式及自动加载类库
    elite核心类库之事件类
    wamp速度缓慢的解决办法
    Dwzdialog中批量提交的问题处理
    PHP中缀表达式与逆波兰式的计算(用于工资项目等四则计算)
    PHP工资计算之逆波兰式
    elite核心类库之模板类
    PHP soap访问接口出错汇总及解决办法
  • 原文地址:https://www.cnblogs.com/tianfen/p/9272689.html
Copyright © 2011-2022 走看看