1. 程式人生 > >zabbix自動發現功能實現批量web url監控

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監控,也是分分鐘的事情

  總結:工欲善其事,必先利其器

  此外,還可以參考我寫的文件:http://code.google.com/p/auto-task-pe/downloads/list zabbix自動發現監控http埠.pdf 如遇到問題,請先仔細閱讀這2個文件,另外附模板檔案。