Shell调用钉钉机器人实现网站服务巡检脚本

一、场景

公司已经部署多个生产网站,需要监控这些网站能否正常访问,不会出现404或者500类的错误返回。一旦出现类似错误及时告知相关负责人。

二、实现

使用curl命令获取网站的返回码并判断是否200,然后调用钉钉机器人的webhook通知群内相关负责人
curl命令:http://www.ruanyifeng.com/blog/2019/09/curl-reference.html
钉钉机器人:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq

三、脚本

#! /bin/bash 
# set -xeuo pipefail

date=`date '+%Y-%m-%d %H:%M:%S'`
# 定义服务字典
declare -A dic
dic=(
[https://admin.testy.com]="vue-saas"
[https://doctor.testy.com]="vue-doctor"
[https://xzzyy.testy.com/internetHospitalWs/doc.html]="internetHospitalWs"
)

# 钉钉机器人提醒
function alarmdingding(){
        conTent=$(echo ${date} 服务异常报警!返回码:$1,服务名:$2,网址:$3。@139xxxx9458)
        apiurl="https://oapi.dingtalk.com/robot/send?access_token=b0xxxxxxxxxxxxx6"
        /bin/curl ${apiurl} -X POST -H "Content-Type: application/json" -d '{"msgtype": "text","text": {"content": '${conTent}'}, "at": {"atMobiles": ["139xxxx9458"],"isAtAll": false}}'
}

# 服务检查
for i in ${!dic[*]}
do
        k=`curl -I -s ${i} | grep 'HTTP/1.1'| awk '{print $2}'`
        if [[ ${k} -ne 200 ]];then
                alarmdingding ${k} ${dic[${i}]} ${i}
        fi
done

# 邮件提醒
#if [ -e /tmp/error.log ];then
#        mail -s "线上服务异常!!!" 122xxxx40@qq.com < /tmp/error.log
#        rm -f /tmp/error.log
#fi

四、效果

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值