Monitoring

更智能的系統警報

  • June 2, 2011

我們有一個非常簡單的系統設置,當出現系統問題時我會收到簡訊。這沒什麼花哨的。我向我的日誌記錄類中的電話號碼發送一封電子郵件,以了解警報級別。它工作得很好,但它有一個主要缺陷:系統/站點中的一個小問題可能會變成數十條快速發送的簡訊。有時會不停地發簡訊,直到我登錄系統並解決問題。

因此,我正在尋找有關可以以更智能的方式處理警報的軟體或服務的指針。也許在 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"

引用自:https://serverfault.com/questions/238028