如何讓nagios在晚上和早上不發送訊息來發送所有剩餘的錯誤

如何讓nagios在晚上和早上不發送訊息來發送所有剩餘的錯誤

我讓 Nagios 檢查服務狀態並發送有關服務狀態的 SMS 訊息。

有些問題晚上不重要,寧願晚上不發。

define timeperiod{
    timeperiod_name non_work
    alias       Non work hours
    sunday      00:00-24:00
    monday      00:00-09:00,18:00-24:00
    tuesday     00:00-09:00,18:00-24:00
    wednesday   00:00-09:00,18:00-24:00
    thursday    00:00-09:00,18:00-24:00
    friday      00:00-09:00,18:00-24:00
    saturday    00:00-24:00
}

然而,早上我希望所有的問題,而不僅僅是新的問題都會被發送。我該如何配置呢?

還是nagios沒有這個功能?

答案1

有些問題在晚上並不重要

正如您所建議的,Nagios 允許您配置時間段,然後將其應用於檢查、通知、通知群組和個人使用者。當然,如果您指定要進行檢查但沒有發送通知,那麼您將不會在電子郵件中看到問題但您可以隨時在 Nagios 網頁中查看完整的警報歷史記錄。為什麼不安排一個 cron 作業在早上第一件事就是透過電子郵件向您發送隔夜警報?例如

0 8 * * * wget -O /tmp/nagios.html -i /home/user/nagioslist; mail [email protected] </tmp/nagios.html

其中 /home/user/nagioslist 包含類似以下內容:

http://example.com/nagios/cgi-bin/summary.cgi?report=1&displaytype=1
   &timeperiod=last24hours&hostgroup=all&servicegroup=all&host=all&alerttypes=3
   &statetypes=2&hoststates=7&servicestates=120&limit=1000

(這將顯示過去 24 小時內檢測到的最多 1000 個硬狀態)

OTOH,您可以設定一個不同的通知腳本來執行您想要推遲的通知,並將它們放入隊列中以便稍後發送(例如使用“at”)。

或者,您可以將MTA 設定為僅在特定時間間隔處理其外發郵件- 結合不同的電子郵件地址/不同的主題,然後您可以根據收件人/主題/一天中的時間有效地優先/推遲郵件。

答案2

我不確定 nagios 是否預設不這樣做。您只需要反轉通知時間段,使其僅包括工作時間而不是非工作時間。

測試這一點很容易:只需定義一個預設失敗的檢查,相應設定的通知時間段,從當前時間後幾分鐘開始,看看您是否僅在該時間段內收到訊息。

如果這不起作用,您可以嘗試使用升級方案,在 escalation_period 聲明的幫助下,在夜間發送郵件並在工作時間段發送簡訊。

相關內容