自动化运维之监控篇---利用zabbix自动发现功能实现批量web url监控                            2013-01-30 14:32:23    

标签:zabbix discovery web 监控


原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://itnihao.blog.51cto.com/1741976/1129725            

                   


自动化运维之监控篇---利用zabbix自动发现功能实现批量web url监控

版本V1.0

时间2013-01-30

版权GPL

作者itnihao

邮箱 itnihao@qq.com

博客 http://itnihao.blog.51cto.com

如需重新发行,请注明以上信息,谢谢合作


需求:

    现在有大量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-09source /etc/bashrc >/dev/null 2>&1source /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 "\t\t{ \n"       printf "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$i]}\"},\n"               else                       printf  "\t\t{ \n"                       printf  "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$num]}\"}]}\n"       fi}}web_site_code () {/usr/bin/curl -o /dev/null -s -w %{http_code} http://$1}case "$1" inweb_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.comwww.baidu.comwww.sina.com.cn

测试:

zabbix_get -s 127.0.0.1 -k web.site.discovery

zabbix  web url_zabbix    url

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

此时返回状态为200

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

接下来是web的添加

zabbix  web url_zabbix    url_02




zabbix  web url_zabbix    url_03


zabbix  web url_zabbix    url_04


zabbix  web url_zabbix    url_05


zabbix  web url_zabbix    url_06


zabbix  web url_zabbix    url_07



zabbix  web url_zabbix    url_08



zabbix  web url_zabbix    url_09

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

zabbix  web url_zabbix    url_10


zabbix  web url_zabbix    url_11

利用以上方法,哪怕是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个文档,另外附模板文件。

欢迎交流。