且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2022-05-11 00:22:49

需求:

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

需求详细分析:

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

解决方案:

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

zabbix客户端配置


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

  2. ##此处省略N多信息,

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

  4. UnsafeUserParameters=1                      #自定义key


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

  2. ########################cat /etc/zabbix/scripts/web_site_code_status##############

  3. #!/bin/bash

  4. # function:monitor tcp connect status from zabbix

  5. # License: GPL

  6. # mail:itnihao@qq.com

  7. # version:1.0 date:2012-12-09

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

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

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

  11. WEB_SITE_discovery () {

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

  13.        printf '{\n'

  14.        printf '\t"data":[\n'

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

  16. {

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

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

  19.                then

  20.        printf "\t\t{ \n"

  21.        printf "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$i]}\"},\n"

  22.                else

  23.                        printf  "\t\t{ \n"

  24.                        printf  "\t\t\t\"{#SITENAME}\":\"${WEB_SITE[$num]}\"}]}\n"

  25.        fi

  26. }

  27. }

  28. web_site_code () {

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

  30. }

  31. case "$1" in

  32. web_site_discovery)

  33. WEB_SITE_discovery

  34. ;;

  35. web_site_code)

  36. web_site_code $2

  37. ;;

  38. *)

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

  40. ;;

  41. esac

客户端配置文件


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

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

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

域名如下


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

  2. www.qq.com

  3. www.baidu.com

  4. www.sina.com.cn

测试:


  1. zabbix_get -s 127.0.0.1 -k web.site.discovery

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


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

此时返回状态为200

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

接下来是web的添加

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




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


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


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


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


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



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



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

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

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


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

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

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



本文转自it你好 51CTO博客,原文链接:http://blog.51cto.com/itnihao/1129725,如需转载请自行联系原作者