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:[email protected]

  # 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个文档,另外附模板文件。

猜你喜欢

转载自www.cnblogs.com/tianfen/p/9272689.html