監控狀態
nagios監控的狀態比較特殊,它包含兩種狀態共通定義。因此單獨拎出來講ios
兩種狀態
- 服務或主機的狀態(即OK,WARNING,UP,DOWN等)
- 服務或主機所在的狀態類型
狀態類型有兩種:SOFT 和 HARD
這些狀態類型是監視邏輯的關鍵部分,由於它們用於肯定什麼時候執行事件處理程序以及什麼時候最初發出通知。
本文檔介紹了SOFT和HARD狀態之間的差別,它們如何發生以及什麼時候發生。blog
服務和主機檢查重試
爲了防止因暫時性問題引發的誤報,Nagios Core容許您定義在服務或主機被視爲「實際」問題以前應被(從新)檢查多少次。這由主機和服務定義中的max_check_attempts選項控制。瞭解主機和服務如何(從新)檢查以肯定是否存在實際問題對於瞭解狀態類型的工做方式很是重要。事件
SOFT States
Soft states 發生在如下場景:文檔
- 當一個服務或者主機檢測結果是是non-ok non-up state ,而且檢測至今尚未達到max_check_attempts,這個就叫作SOFT state
- 當一個服務或者主機recovers從一個soft error, 這個就被認爲是一個soft 恢復。
如下事情會發生,當主機或者服務經歷了SOFT state變化時:io
- the SOFT state is logged
- event handlers are excuted to handle the SOFT state
僅當在主配置文件中啓用了log_service_retries或log_host_retries選項時,纔會記錄SOFT狀態。event
During SOFT state
當監控狀態處於SOFT狀態這段時間(畢竟有一個max_check_attempts)最最重要的是事情就是,event handlers的執行狀況了。使用event handlers多是特別有用,若是你想去嘗試或者主動去解決一個問題,在這個SOFT狀態變爲HARD狀態以前。$HOSTSTATETYPE$ or $SERVICESSTATETYPE$ macros 將會是SOFT值當event handlers被執行時,這個時候就容許你的Event handler腳本知道這個時候應該作正確的action.class
HARD States
如下場景將會發生HARD State:監控
- 相對於SOFT state,當host or serivce已是non-OK non-UP且檢測次數已經達到max_check_attempts選項值(host or service中定義的),此時就是HARD error state
- 當一個host or service 從hard error state狀態遷移到另外一個錯誤狀態時(如,WARNING to CRITICAL)
- 當一個service檢查狀態時non-ok而且它所在的host是DOWN or UNREACHABLE時
- 當一個host or service 從hard error state狀態恢復時。這個也叫作hard恢復。
- 當一個passive host check 接收到。被動host checks會被看作是HARD,除非passive_host_checks_are_soft 選項是開啓的
如下事情會發生,當主機或者服務經歷了HARD state變化時:配置
- The HARD state is logged.
- Event handlers are executed to handle the HARD state.
- Contacts are notified of the host or service problem or recovery
執行事件處理程序時,$ HOSTSTATETYPE $或$ SERVICESTATETYPE $宏的值將爲'HARD',這使您的事件處理程序腳本知道什麼時候應採起糾正措施。有關事件處理程序的更多信息,請參見此處。service
狀態變化分析示例