zabbix自动发现url以及对http返回状态码监控实现

目的:

批量监控业务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仪表板配置:
zabbix自动发现url以及对http返回状态码监控实现_第1张图片
先创建一个模板
7、设置自动发现规则,键值为发现url的keys
zabbix自动发现url以及对http返回状态码监控实现_第2张图片
8、设置监控原型,键值为httpcode的keys,后面括号里是发现的url列表的前缀说明,如图:
zabbix自动发现url以及对http返回状态码监控实现_第3张图片

zabbix自动发现url以及对http返回状态码监控实现_第4张图片
9、设置触发器类型:
zabbix自动发现url以及对http返回状态码监控实现_第5张图片
10、设置图形原型:
zabbix自动发现url以及对http返回状态码监控实现_第6张图片
11、到此为止全部完成,等待看图
zabbix自动发现url以及对http返回状态码监控实现_第7张图片

希望能帮上大家!温暖在此祝大家工作顺利!

你可能感兴趣的:(监控,zabbix)