定时检测接口是否正常飞书告警脚本

2023-10-27

第一版

支持多个接口地址,循环检测,定时每分钟执行一次脚本

告警效果
在这里插入图片描述
脚本
飞书机器人创建忽略跳过,各大协作平台大同小异拿出机器人hook地址

#!/bin/bash
URL_LIST=('https://gatewaxxxxxxxxxxxxxxxxxx' 'https://sandbox-gatexxxxxxxxxxxxxxxxxx')

for URL in ${URL_LIST[*]}; do
    FAIL_COUNT=0                #设置一个变量来统计访问失败次数

    for ((i=1;i<=3;i++)); do
        HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $URL)    #超时时间是3if [ $HTTP_CODE -eq 200 ]; then
            echo "`date +\%Y-\%m-\%d-\%H:\%M:\%S`: $URL OK"      #访问正常打印ok并记录时间
            break
        else
            echo "$URL retry $FAIL_COUNT"
            let FAIL_COUNT++            #如果不ok的话就执行计数加一
        fi
    done

    if [ $FAIL_COUNT -eq 3 ]; then              #如果FAIL_COUNT=3,就发出告警
        echo "Warning: $URL Access failure!"      #打印错误的接口地址
        error_msg="API异常警告:Access_failure!,ERROR异常地址:$URL"     #飞书机器人的告警内容
        msg_body="{\"msg_type\":\"text\",\"content\":{\"text\":\"$error_msg\"}}"     #告警消息体格式
        WEBHOOK_URL="https://open.feishu.cn/open-apis/bot/v2/hook/bd445c52-75xxxxxxxxxx"   #飞书机器人hook地址
        req_msg=$(curl -X POST -H "Content-Type: application/json" -d $msg_body $WEBHOOK_URL)   #post请求

        echo "触发报警:" $req_msg
    fi
done

定时任务crontab -e

*/1 * * * * sh /data/api_url.sh >> /data/apiurl.log

第二版

第一版不够美观,并且目前所有告警都在这一个群没有分散,所以基本所有人都是屏蔽群消息的,基于第一版改进美化并实现艾特人员

告警效果
在这里插入图片描述

脚本
怎么获取飞书用户id,查看飞书开放平台的开发文档:点击跳转到飞书文档

#!/bin/bash
URL_LIST=('https://gateway.hkeasyspeed.com/webapi/boxxxxxxxxx' 'https://sandbox-gateway.hkeasyspeed.com/webapxxxxxxxxxxx')
 
for URL in ${URL_LIST[*]}; do
    FAIL_COUNT=0                #设置一个变量来统计访问失败次数
 
    for ((i=1;i<=3;i++)); do
        HTTP_CODE=$(curl -o /dev/null --connect-timeout 3 -s -w "%{http_code}" $URL)    #超时时间是3if [ $HTTP_CODE -eq 200 ]; then
            echo "`date +\%Y-\%m-\%d-\%H:\%M:\%S`: $URL OK"      #访问正常打印ok
            break
        else
            echo "$URL retry $FAIL_COUNT"
            let FAIL_COUNT++            #如果不ok的话就执行计数加一
        fi
    done
 
    if [ $FAIL_COUNT -eq 3 ]; then              #如果FAIL_COUNT=3,就发出告警
        echo "Warning: $URL Access failure!"
        error_msg="$URL"
        WEBHOOK_URL="https://open.feishu.cn/open-apis/bot/v2/hook/bd445c52-7xxxxxxxxxxxx"
        req_msg=$( \
        curl -X POST \
          $WEBHOOK_URL \
          -H 'Content-Type: application/json' \
          -d '{
                "msg_type": "post",
                "content": {
                        "post": {
                                "zh_cn": {
                                        "title": "API\t接口异常",
                                        "content": [
                                                [{
                                                        "tag": "text",
                                                        "text": "地址链接: "
                                                },
                                                {
                                                        "tag": "a",
                                                        "text": "请查看",
                                                        "href": "'$error_msg'"
                                                },
                                                {
                                                        "tag": "at",
                                                        "user_id": "ou_600253ef90xxxxxxxxxxxx"    #@所有人的话直接使用"user_id": "all"
                                                }
                                                ]
                                        ]
                                }
                        }
                }
        }') 

        echo "触发报警:" $req_msg
    fi
done
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

定时检测接口是否正常飞书告警脚本 的相关文章

  • DC综合脚本中文详细解释

    script for Design Compiler DC综合编译脚本 language TCL 语言说明 Usage 使用说明 1 make sure the lib in the current directory 确保设计库在正确的文
  • php+redis实现对200w用户的即时推送服务

    欢迎加入 新群号码 99640845 怎么实现对200w用户的即时推送 这个推送可以理解为调用第三方的接口 push sms之类的东西 当时先写了一个demo 直接读取DB然后单个推送 结果 可想而知 于是设计一套基于redis php多进
  • Shell 编程:探索 Shell 的基本概念与用法

    目录 Shell 简介 Shell 脚本 Shell 脚本运行 Shell 变量 1 创建变量和赋值 2 引用变量 3 修改变量的值 4 只读变量 5 删除变量 6 环境变量 Shell 字符串操作 1 拼接字符串 2 字符串长度 3 字符
  • subversion强制写log的windows 和linux hooks脚本

    windows code echo offsetlocalset REPOS 1set TXN 2rem check that logmessage contains at least 10 characterssvnlook log RE
  • Zookeeper集群设置一键启动/一键停止脚本

    学习目标 设置一键启动 Zookeeper 脚本 设置一键停止 Zookeeper 脚本 设置一键启动 Zookeeper 脚本 进入目录 cd export servers zookeeper 3 4 5 cdh5 14 0 bin 编写
  • Visual Stdio调试IDAPython脚本

    1 安装VS插件PTVS 这一步与第2步中安装版本应该一致 否则最后调试时会连不上 https github com Microsoft PTVS 2 安装python模块PTVSD pip install ptvsd 3 写如下代码ptv
  • Apikit 自学日记:API 异常监控-创建 API 监控

    如何在apikit中 创建 API 监控呢 创建并开启监控API 一 手动创建监控API Eolink API 网络监控平台支持从 Eolink API Management API管理产品 中导入API信息 或者手动创建监控API 进入A
  • Windows 10快速在指定目录打开命令行

    一 我们在想要到达的目录上按住shift键并点击鼠标右键 看到了吗 这时候在弹出菜单里多了一个选项 就是 在此处打开命令窗口 我们点开看一下 二 不过有时候我们需要以管理员的权限来打开命令行 这时候我们需要自行添加一个脚本 方便操作 你可以
  • php爬虫教程(五)提高爬虫抓取效率

    之前有一次抓取x浪图片库的时候200w图片跑了一整天的时间 后来采取多进程抓取提高了很高的效率 多进程的实现可以参考这个方法 http blog csdn net u014017080 article details 46925725 主进
  • shell 脚本中总是会忘记的一些语法总结!!!!

    一 cmd gt file 2 gt 1 与 cmd 2 gt 1 gt file 区别 1 cmd gt file 2 gt 1 的意思是标准输出和标准错误输出都定向到 file 等价于 cmd gt file 或 cmd gt file
  • Inno Setup 制作安装程序[支持静默安装.NET环境]

    1 贴源码 脚本由 Inno Setup 脚本向导 生成 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档 define MyAppName TestSet define MyAppVersion 1 0 define My
  • Nmap扫描原理与用法

    Nmap扫描原理与用法 2012年6月16日 1 Nmap介绍 Nmap扫描原理与用法PDF 下载地址 Nmap是一款开源免费的网络发现 Network Discovery 和安全审计 Security Auditing 工具 软件名字Nm
  • 通用网关接口(摘录)

    维基百科 自由的百科全书 通用网关接口 Common Gateway Interface CGI 是一种重要的互联网技术 可以让一个客户端 从网页浏览器向执行在 Web 服务器 上的程序 请求数据 CGI 描述了客户端和这个程序之间传输数据
  • 利用CSS调整图片大小

    通常 我们可以给图片 img 设置一个CSS属性 定义其高度和宽度 但有时候 我们只希望控制图片的最大可见大小 这样的操作 一般有两种办法 1 直接使用CSS属性值 2 使用JavaScript动态设置CSS值 一 固定大小 一般 为了限制
  • shell脚本中的几个括号总结(小括号/大括号/花括号)

    转自 http www cnblogs com hanyan225 archive 2011 10 06 2199652 html Shell的强大是毋庸置疑的 方便了我们也迷惑了我们 比如这些杂七杂八的括号 一向自认聪明的我也傻傻分不清了
  • 去除快捷方式箭头BAT脚本

    去除快捷方式箭头BAT脚本 1 脚本功能 去除window电脑桌面图标右下角的快捷方式小箭头 对于强迫症患者绝对是福音 总之清除了之后非常的舒畅 2 脚本内容 echo off color 2 reg delete HKCR lnkfile
  • 5 分钟快速掌握 OKR 管理法 - OKR 实施篇

    上文 5 分钟快速掌握 OKR 管理法 OKR 理论篇 我们讲到 OKR 的价值和意义 这次重点介绍 OKR 如何实施落地 真正为企业发展发挥作用 怎么制定目标 一个合理的目标需要符合三个原则 第一 与战略目标一致 对公司长期发展有价值 第
  • abc300.com站点被注入脚本

    在进行abc300 com的页面SEO时发现 所有页面受到注入攻击 全部asp页最后被添加一页 弄了1个多小时 大部份页面被清除 目前已经获得www hulijie com的ftp 222 33 63 206 用户名admin 密码尚需分析
  • HTC-VIVE手柄使用代码

    using UnityEngine using System Collections 检测手柄功能的脚本 这个脚本挂到手柄上 controler right 和controler left 上 public class ButtonTouc
  • 将指定文件夹中的图片文件复制到另一个文件夹,并按照自然数递增的命名规则重命名的程序

    文件目录结构 C data photos 1 2 3 4 5 6 7 8 photos new 1 2 3 4 5 6 7

随机推荐

  • 嵌入式(有名管道和无名管道)(进程间通讯)

    进程间通信 IPC InterProcess Communication 概念 就是进程和进程之间交换信息 常用通信方式 无名管道 pipe 有名管道 fifo 信号 signal 共享内存 mmap 套接字 socket 过时的IPC通信
  • 写论文注意事项

    文献检索 搜索引擎的高级功能 搜索引擎主要www google com和scholar google com www baidu com则仅在检索中文时稍好点 英文很差 用处不大 我们常用的google侧重于网页的检索 Scholar则主要
  • Linus Torvalds接受来自微软的Linux Hyper-V升级

    导读 微软最近推送了一些变更 旨在改进即将发布的 Linux 内核 6 6 版本对 Hyper V 的支持 这些改进包括在 Hyper V 上支持 AMD SEV SNP guest 和 Intel TDX guest 除了这两项 还有其他
  • TIM_TimeBaseInitStruct 和TIM_TimeBaseStructInit

    TIM TimeBaseInit的简介 brief Initializes the TIMx Time Base Unit peripheral according to the specified parameters in the TI
  • C与C++混合编程

    一 C与C 混合编程的原理 首先 我先了解一下编译的过程 分为四步 预处理 预处理用于将所有的 include头文件以及宏定义替换成其真正的内容 编译 将经过预处理之后的程序转换成特定汇编代码 assembly code 的过程 汇编 汇编
  • libero soc 11.9 modelsim仿真

    只是记录一个仿真过程 首先建立一个工程 简单的分频程序 点击图片处新建一个testbench 定义testbench名字随意 由于用的16M时钟 所以62 5ns ok 写testbench 双击下图位置开始仿真 双击以后modelsim会
  • Android、Flutter为不同的CPU架构包打包APK(v7a、v8a、x86)

    默认情况下 Android和Flutter打包出来的Apk都是包含了所有架构的 这样打出来的apk体积相对于单架构的apk有点大 这时 我们就需要分别打出不同的架构包 架构 一般来说 x86代表32位CPU x64 或者叫x86 64 代表
  • 全国职业技能大赛云计算--高职组赛题卷①(容器云)

    全国职业技能大赛云计算 高职组赛题卷 容器云 第二场次题目 容器云平台部署与运维 任务1 Docker CE及私有仓库安装任务 5分 任务2 基于容器的web应用系统部署任务 15分 任务3 基于容器的持续集成部署任务 15分 任务4 Ku
  • python图像处理-形状提取和识别1(基于Hough的形状提取)

    python图像处理 形状提取和识别1 基于Hough的形状提取 本系列一个分为两大部分 一个是形状提取 一个是形状识别 1 形状提取中 基于Hough函数法进行直线提取和圆形提取 还有即基于颜色的形状提取 这里扩展了一个小程序 识别一张棋
  • vs2010复制粘贴

    void CjiantiebanDlg OnBnClickedButton1 TODO 在此添加控件通知处理程序代码 复制 CString str GetDlgItem IDC EDIT1 gt GetWindowText str HGLO
  • ubantu配置运行orb-slam2小记

    虚拟环境 参考这篇即可 sudo apt install virtualenv sudo apt install virtualenvwrapper 配置 mkdir HOME virtualenvs export WORKON HOME
  • MySQL数据库的命令行语句

    1 命令行连接数据库的方法 本地连接 必须管理员身份打开cmd窗口 win R输入cmd后 shift ctrl enter mysql u 用户名 p 用户名 CaoQian 密码 cq2227558856 2 显示所有数据库 图中是四个
  • 进制转换(二进制、八进制、十进制、十六进制之间的转换)

    进制转换 1 1 二进制与十进制之间的转换 十进制转二进制 方法为 十进制数除2取余法 即十进制数除2 余数为权位上的数 得到的商值继续除 直到商为0为止 二进制转十进制 方法为 把二进制数按权展开 相加即得十进制数 1 2 二进制与八进制
  • visibility 与 overflow

    display 3 属性描述 设置或获取对象是否及如何显示 版本变更 是 语法模板 display none inline block list item inline block table inline table table capt
  • 如何高效的进行版本管理,版本管理的方法

    如何进行高效的版本管理 版本管理的方法 云效Projects版本管理为不同的产品线 模块建立版本 对集成版本进行相关活动的管理 在Projects版本管理中规划发布内容 可以关联需求 任务 缺陷 立即体验 开启版本管理 项目管理员和项目拥有
  • 【Hyper-v 管理器虚拟机配置内网外网固定ip】

    1 Default Switch Hyper v默认虚拟网卡 无法设置固定ip Hyper V自带一个不能删除的Default Switch虚拟交换机 虚拟机使用该网络可以自动获取IP直接上网 但这个网络的网关地址每次重启后都会改变 所以你
  • 原生Servlet与Spring Controller性能比较

    在实际项目工作 有同事提出 Java原生的Servlet性能 响应速度与并发数 要比封装过的Spring Controller高 基于这点 楼主用Apache的ab工具 对两个简单的应用做1000并发压力测试 查看两者的响应速度与并发数 平
  • 元旦过后

    今天是13号了 自从元旦过后 就一直没有做什么事情 觉得好空虚啊 一心只盼望着过年放假回家 哎 感觉熬日子啊 本来就觉得日子过得好快 却还不懂得珍惜 不能这样了哈 在回家之前先做点有用的事情吧 讲一个小故事吧 一天 有一个姑娘去买红薯 本来
  • 解决video标签播放m3u8格式视频失败问题

    前言 什么是m3u8 效果 效果地址 m3u8视频切换 效果图片 解决方法 采用video js插件 引入 引入videoJS插件样式文件 引入videoJS插件JS文件 引入videoJS插件播放m3u8格式视频的HLS功能 HTML代码
  • 定时检测接口是否正常飞书告警脚本

    第一版 支持多个接口地址 循环检测 定时每分钟执行一次脚本 告警效果 脚本 飞书机器人创建忽略跳过 各大协作平台大同小异拿出机器人hook地址 bin bash URL LIST https gatewaxxxxxxxxxxxxxxxxxx