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=$1prod_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; doEXPIRY_TS=$(date -d "$EXPIRY_DATE" +%s 2>/dev/null) || continueDAYS_LEFT=$(( (EXPIRY_TS - CURRENT_TS) / 86400 ))if [ $DAYS_LEFT -le $WARNING_DAYS ] && [ $DAYS_LEFT -ge 0 ]; thenprod_dingding_push "【平臺授權到期告警】:$NAME 授權將在 $DAYS_LEFT 天后過期!【地址$URL】"echo "[$(date)] Alert: $NAME $URL expires in $DAYS_LEFT days." >> $LOG_FILEfi
done < $EXPIRY_FILE
2.3 配置定時任務
根據業務需求設置告警推送時間,本文設置每天上午10點執行一次腳本。
00 10 * * * /bin/bash ?/mnt/paltform_monitor/paltform_monitor.sh > /dev/null 2>&1