目的:
批量监控业务url的返回码,通过返回码的监控来判断业务的好坏。
解决方案:
使用zabbix的discovery功能来实现监控。
1、安装zabbix,跳过
2、通过脚本实现:
cd /usr/local/zabbix/etc/zabbix_scripts.d/
vim web_site_code_status.sh
#!/bin/bash
source /etc/profile >/dev/null 2>&1
WEB_SITE_discovery () {
WEB_SITE=($(grep -v "^#" /usr/local/zabbix/etc/zabbix_script.d/WEBURL.txt))
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 () {
#下面注释的是也可以使用域名+端口号
# host=$(echo "$1"|awk -F "/" '{print $3}')
# port=$(echo "$1"|awk -F "/" '{print $3}'|awk -F':' '{print $2}')
# if [[ -z $port ]]
# then
# ntlocal="127.0.0.1"
# else
# ntlocal="127.0.0.1:$port"
# fi
# http_uri=$(echo "$1"|awk -F "/" '{for(i=4;i<=NF;i++) printf "/" $i;printf "\n"}')
# /usr/bin/curl -H "Host:$host" -o /dev/null -s -w %{http_code} $ntlocal${http_uri}
/usr/bin/curl -I "$1" 2> /dev/null | grep 'HTTP' | awk '{print $2}'
}
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
3、创建url列表:vim WEBURL.txt
http://www.baidu.com
www.df.com
www.sdfdsfa.com
www.sdfsd.cn
注意:这里也可以在后面加端口号
4、在zabbix_agentd.conf中添加相关的key
Include=/data/usr/local/zabbix/etc/zabbix_agentd.conf.d/*
UnsafeUserParameters=1
UserParameter=web.site.discovery,/data/usr/local/zabbix/scripts/web_site_code_status.sh web_site_discovery
UserParameter=web.site.code[*],/data/usr/local/zabbix/scripts/web_site_code_status.sh web_site_code $1
或者:
在zabbix_agentd.conf.d目录下创建文件,web_site_discovery.conf
UserParameter=web.site.discovery,/usr/local/zabbix/etc/zabbix_script.d/web_site_code_status web_site_discovery
UserParameter=web.site.code[*],/usr/local/zabbix/etc/zabbix_script.d/web_site_code_status web_site_code $1
5、重启agent就可以实现了。
6、zabbix仪表板配置:
先创建一个模板
7、设置自动发现规则,键值为发现url的keys
8、设置监控原型,键值为httpcode的keys,后面括号里是发现的url列表的前缀说明,如图:
9、设置触发器类型:
10、设置图形原型:
11、到此为止全部完成,等待看图
希望能帮上大家!温暖在此祝大家工作顺利!