狀態類型
介紹
受監視的服務和主機的當前狀態由兩個組件確定:
服務或主機的狀態(例如,“確定”,“警告”,“啟動”,“關閉”等)
塔伊類型狀態的服務或主機處于
Nagios Core中有兩種狀態類型-軟狀態和硬狀態。這些狀態類型是監視邏輯的重要組成部分,因為它們用于確定何時執行事件處理程序以及何時最初發出通知。
本文檔介紹了SOFT和HARD狀態之間的差異,它們如何發生以及何時發生。
服務和主機檢查重試
為了防止由于暫時性問題引起的誤報,Nagios Core允許您定義在服務或主機被視為“實際”問題之前應被(重新)檢查多少次。這由主機和服務定義中的max_check_attempts選項控制。了解主機和服務如何(重新)檢查以確定是否存在真正的問題,對于了解狀態類型的工作方式非常重要。
軟狀態
在以下情況下會發生軟狀態:
當服務或主機檢查導致狀態為非正常或非UP,并且尚未(重新)檢查服務檢查由服務或主機定義中的max_check_attempts偽指令指定的次數時。這稱為軟錯誤。
服務或主機從軟錯誤中恢復時。這被認為是軟恢復。
當主機或服務經歷SOFT狀態更改時,會發生以下情況:
記錄SOFT狀態。
執行事件處理程序以處理SOFT狀態。
僅當在主配置文件中啟用了log_service_retries或log_host_retries選項時,才會記錄SOFT狀態。
在軟狀態期間真正發生的唯一重要事情是事件處理程序的執行。如果您想嘗試在問題變為HARD狀態之前主動解決問題,則使用事件處理程序可能特別有用。執行事件處理程序時,$ HOSTSTATETYPE $或$ SERVICESTATETYPE $宏的值將為“ SOFT ”,這使您的事件處理程序腳本知道何時應采取糾正措施。有關事件處理程序的更多信息,請參見此處。
硬邦
在以下情況下,主機和服務會發生硬狀態:
當主機或服務檢查結果為非UP或OK狀態,并且已經(重新)檢查了主機或服務定義中max_check_attempts選項指定的次數。這是一個硬錯誤狀態。
當主機或服務從一種硬錯誤狀態轉換為另一種錯誤狀態時(例如,從“警告”變為“嚴重”)。
當服務檢查導致狀態不正常,并且其對應的主機為DOWN或UNREACHABLE。
主機或服務從硬錯誤狀態恢復時。這被認為是硬恢復。
當一個被動的主機檢查被接收。除非啟用了passive_host_checks_are_soft選項,否則將被動主機檢查視為HARD 。
主機或服務遇到HARD狀態更改時,會發生以下情況:
記錄HARD狀態。
執行事件處理程序以處理HARD狀態。
向主機通知主機或服務問題或恢復。
執行事件處理程序時 ,$ HOSTSTATETYPE $或$ SERVICESTATETYPE $宏的值將為“ HARD ”,這使事件處理程序腳本知道何時應采取糾正措施。有關事件處理程序的更多信息,請參見此處。
例
這是一個有關如何確定狀態類型,何時發生狀態更改以及何時發送事件處理程序和通知的示例。下表顯示了一段時間內對服務的連續檢查。該服務的max_check_attempts值為3。
| 時間 | 檢查號碼 | 州 | 狀態類型 | 狀態變更 | 筆記 |
|---|---|---|---|---|---|
| 0 | 1個 | 好 | 硬 | 沒有 | 服務的初始狀態 |
| 1個 | 1個 | 危急 | 柔軟的 | 是 | 首次檢測到非OK狀態。事件處理程序執行。 |
| 2 | 2 | 警告 | 柔軟的 | 是 | 服務繼續處于非OK狀態。事件處理程序執行。 |
| 3 | 3 | 危急 | 硬 | 是 | 已達到最大檢查嘗試次數,因此服務進入HARD狀態。執行事件處理程序,并發出問題通知。發生這種情況后,立即將檢查編號重置為1。 |
| 4 | 3 | 警告 | 硬 | 是 | 服務更改為“硬警告”狀態。執行事件處理程序,并發出問題通知。 |
| 5 | 3 | 警告 | 硬 | 沒有 | 服務穩定在HARD問題狀態。根據服務的通知間隔是多少,可能會發送另一個通知。 |
| 6 | 1個 | 好 | 硬 | 是 | 服務經歷了硬恢復。執行事件處理程序,并發送恢復通知。 |
| 7 | 1個 | 好 | 硬 | 沒有 | 服務還是可以的。 |
| 8 | 1個 | 未知 | 柔軟的 | 是 | 檢測到服務已更改為SOFT non-OK狀態。事件處理程序執行。 |
| 9 | 2 | 好 | 柔軟的 | 是 | 服務經歷了軟恢復。事件處理程序將執行,但不會發送通知,因為這不是“真正的”問題。發生這種情況后,狀態類型設置為HARD,并且將檢查編號立即重置為1。 |
| 10 | 1個 | 好 | 硬 | 沒有 | 服務穩定在OK狀態。 |
Nagios Core中文使用教程
推薦文章: