时间 2013-01-30
版权 GPL
作者 itnihao
邮箱 admin#itnihao
博客 https://www.itnihao.com
如需重新发行,请注明以上信息,谢谢合作
需求:
现在有大量url需要监控,形式如http://itnihao.blog.51cto.com ,要求url状态不为200即报警。
需求详细分析:
大量的url,且url经常变化,现在监控用的是zabbix,如果手动添加模板,会造成大量重复工作,
造成人力财力的浪费,造成休息时间的浪费,得不尝失,如果利用脚本+mail,无法图形呈现
解决方案:
zabbix有discovery功能,利用此功能,即可轻松解决此问题
#########egrep -v '(^#|^$)' /etc/zabbix/zabbix_agentd.conf########## ##此处省略N多信息, Include=/etc/zabbix/zabbix_agentd.conf.d/ #配置文件路径 UnsafeUserParameters=1 #自定义key
###########自动发现脚本编写
########################cat /etc/zabbix/scripts/web_site_code_status##############
#!/bin/bash
# function:monitor web site code status from zabbix
# License: GPL
# mail:admin#itnihao.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 "\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" 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]