1. 监控需求
客户侧有很多平台需要定期授权,授权后管理后台才可正常登录,为避免授权到期,现撰写脚本自动化监控平台授权到期时间,在到期前15天钉钉或其他媒介提醒。
2. 监控方案
2.1 收集平台信息
梳理需要监控的平台地址信息,包含平台名称、地址、到期时间三个字段。
cat /mnt/paltform_monitor/expiry_list.txt
xx支付平台,https://192.168.91.1:8068,2026-3-1
xx交易平台,https://1.2.3.4:809,2025-10-21
xx管理平台,https://5.6.7.8:2500,2025-11-7
2.2 撰写监控脚本
cat /mnt/paltform_monitor/paltform_monitor.sh
#!/bin/bash
# 监控平台登录过期时间,提前15天告警【自定义时间】
EXPIRY_FILE="/mnt/paltform_monitor/expiry_list.txt"
LOG_FILE="/var/log/expiry_monitor.log"
CURRENT_TS=$(date +%s)
WARNING_DAYS=15
#定义钉钉告警函数
prod_dingding_push(){
MESSAGE=$1
prod_webhook_url="https://oapi.dingtalk.com/robot/send?access_token=88888888888888888888888888888888888888888"
curl -H "Content-Type: application/json" -d '{"msgtype": "text","text": {"content": " '"$MESSAGE"' @13888888888"},'at': {'atMobiles': ['13888888888'],'isAtAll': false} }' $prod_webhook_url
}
while IFS=',' read -r NAME URL EXPIRY_DATE; do
EXPIRY_TS=$(date -d "$EXPIRY_DATE" +%s 2>/dev/null) || continue
DAYS_LEFT=$(( (EXPIRY_TS - CURRENT_TS) / 86400 ))
if [ $DAYS_LEFT -le $WARNING_DAYS ] && [ $DAYS_LEFT -ge 0 ]; then
prod_dingding_push "【平台授权到期告警】:$NAME 授权将在 $DAYS_LEFT 天后过期!【地址$URL】"
echo "[$(date)] Alert: $NAME $URL expires in $DAYS_LEFT days." >> $LOG_FILE
fi
done < $EXPIRY_FILE
2.3 配置定时任务
根据业务需求设置告警推送时间,本文设置每天上午10点执行一次脚本。
00 10 * * * /bin/bash /mnt/paltform_monitor/paltform_monitor.sh > /dev/null 2>&1