Monitoring
更智能的系統警報
我們有一個非常簡單的系統設置,當出現系統問題時我會收到簡訊。這沒什麼花哨的。我向我的日誌記錄類中的電話號碼發送一封電子郵件,以了解警報級別。它工作得很好,但它有一個主要缺陷:系統/站點中的一個小問題可能會變成數十條快速發送的簡訊。有時會不停地發簡訊,直到我登錄系統並解決問題。
因此,我正在尋找有關可以以更智能的方式處理警報的軟體或服務的指針。也許在 Y 分鐘內只向我發送 X 次警報的東西。我不是在尋找完整的監控套件。我們已經在內部處理了這個問題。我只想解決這個問題。
我為你創建了一個小的 bash 腳本:
#!/bin/bash COUNT_FILE="/tmp/count" TIME_FILE="/tmp/time" MAX_SEND=1 #max message TIME_INT=300 #time interval in second send () { ERROR_TYPE="_$1" MESSAGE=$2 [ -e ${TIME_FILE}${ERROR_TYPE} ] || touch ${TIME_FILE}${ERROR_TYPE} [ -e ${COUNT_FILE}${ERROR_TYPE} ] || echo 0 > ${COUNT_FILE}${ERROR_TYPE} if [ $(( $(date +%s) - $(date +%s -r ${TIME_FILE}${ERROR_TYPE}) )) -gt $TIME_INT ]; then COUNT=0 touch ${TIME_FILE}${ERROR_TYPE} else COUNT=`cat ${COUNT_FILE}${ERROR_TYPE}` fi if [ $COUNT -lt $MAX_SEND ]; then echo "$MESSAGE"; #real send message fi COUNT=$(($COUNT+1)) echo $COUNT > "${COUNT_FILE}${ERROR_TYPE}" } send "check_dns" "message"