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 "线上服务异常!!!" [email protected] < /tmp/error.log
#        rm -f /tmp/error.log
#fi

四、效果

Shell调用钉钉机器人实现网站服务巡检脚本_第1张图片

你可能感兴趣的:(Shell调用钉钉机器人实现网站服务巡检脚本)