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

扩展

http 请求方法以及返回状态码的类型和含义

服务器状态码

在这里插入图片描述

1200 OK表示从客户端发来的请求在服务器端被正常处理了。

2204 No Content 该状态码代表服务器接收的请求已成功处理,但在返回的响应报文中不含实体的主体部分。

3206 Partial Content 该状态码表示客户端进行了范围请求,而服务器成功执行了这部分的GET请求。

4301 Moved Permanently 永久性重定向。该状态码表示请求的资源已被分配了新的URL,以后应使用资源现在所指的URL。

5302 Found 临时性重定向。该状态码表示请求的资源已被分配了新的URL ,希望用户(本次)能使用新的URL访问。

6303 See Other 该状态码表示由于请求对应的资源存在着另一个URL,应使用GET方法定向获取请求的资源。

7304 Not Modified 该状态码表示客户端发送附带条件的请求时,服务端允许请求访问资源。

8307 Temporary Redirect 临时重定向。不会从POST变成GET。

9400 Bad Request 表示请求报文中存在语法错误。

10401 Unauthorized 表示发送的请求需要有通过HTTP认证(BASIC、DIGEST认证)的认证信息。

11403 Forbidden 表示对请求资源的访问被服务器拒绝了。

12404 Not Found 服务器上没有请求的资源。

13500 Internal Server Error 表明服务器端在执行请求时发生了错误。

14503 Service Unavailable 表明服务器暂时维护等,无法处理请求。

目的:

批量监控业务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就可以实现了。
systemctl restart zabbix-agent
6、zabbix仪表板配置:
在这里插入图片描述
先创建一个模板
7、设置自动发现规则,键值为发现url的keys
在这里插入图片描述
8、设置监控原型,键值为httpcode的keys,后面括号里是发现的url列表的前缀说明,如图:
在这里插入图片描述
在这里插入图片描述
9、设置触发器类型:
在这里插入图片描述
10、设置图形原型:
在这里插入图片描述
11、到此为止全部完成,等待看图

在这里插入图片描述

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值