shell脚本发送钉钉告警通知案例一则 —— 筑梦之路

实现原理

将要发送的消息内容保存到json文件中,通过curl命令请求钉钉机器人接口。

脚本示例

cat /opt/disk_usage_check.sh 

#!/bin/bash

# 设置警告阈值
THRESHOLD=80

#
CURRENT_TIME=$(date +"%Y-%m-%d %H:%M:%S")
# 获取主机名和IP
HOSTNAME=$(hostname)
IP=$(hostname -I)

# 筛选需要检查的磁盘并进行检查
df -lPh | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
  used=$(echo $output | awk '{print $1}' | cut -d'%' -f1)
  partition=$(echo $output | awk '{print $2}')

  if (( used >= THRESHOLD )); then
    # 构建payload
    PAYLOAD=$(cat <<-EOF
{       
"msgtype": "markdown",
"markdown": {
"title":"Linux服务器磁盘空间告警",
"text":"
##### Linux服务器磁盘空间告警 \n
>  #####  【服务器:   $HOSTNAME】 的磁盘空间超过阀值 : $THRESHOLD%   \n
>  #####  【服务器IP】 : $IP  \n
>  #####  【告警时间】 : $CURRENT_TIME  \n
>  #####  【磁盘空间占用高的分区】: $partition  已使用 $used% \n
>  #####   该分区具体df -PTh信息如下:  \n
>  #####   $(df -lPTh | head -n 1)  \n
>  #####   $(df -lPTh| grep $partition)  \n
"
}
}
EOF
    )

    # 发送告警 (自行替换钉钉Webhook机器人的URL)
    curl -H "Content-Type: application/json" -X POST -d "$PAYLOAD"  https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXXXX
    echo $PAYLOAD
  fi
done

做个记录

你可能感兴趣的:(linux系统运维,钉钉,linux,shell)