服務和主機結果的新鮮度檢查
介紹
Nagios Core支持一項功能,可對主機和服務檢查的結果進行“新鮮”檢查。新鮮度檢查的目的是確保外部應用程序定期被動地提供主機和服務檢查。
當您要確保被動檢查收到的次數盡可能多時,新鮮度檢查很有用。這在分布式和故障轉移監視環境中非常有用。
新鮮度檢查如何工作?
Nagios Core會為啟用了新鮮度檢查的所有主機服務定期檢查結果的新鮮度。
計算每個主機或服務的新鮮度閾值。
對于每個主機/服務,將其最后檢查結果的期限與新鮮度閾值進行比較。
如果最后檢查結果的壽命大于新鮮度閾值,則將檢查結果視為“陳舊”。
如果檢查結果陳舊,Nagios Core將通過執行主機或服務定義中指定的命令來強制對主機或服務進行主動檢查。
提示:即使在程序范圍內或特定于主機或服務的基礎上禁用了活動檢查,也會執行活動檢查。
例如,如果您一項服務的新鮮度閾值為60,則Nagios Core將在該服務的最后檢查結果早于60秒之前將其視為過時的。
啟用新鮮度檢查
這是啟用新鮮度檢查所需的操作…
使用check_service_freshness和check_host_freshness指令在程序范圍內啟用新鮮度檢查。
使用service_freshness_check_interval和host_freshness_check_interval選項告訴Nagios Core應多久檢查一次服務和主機結果的新鮮度。
通過將主機和服務定義中的check_freshness選項設置為1來啟用特定于主機和服務的新鮮度檢查。
通過在主機和服務定義中設置freshness_threshold選項來配置新鮮度閾值。
在主機或服務定義中配置check_command選項,以反映有效的命令,當檢測到該主機或服務為過時時,該命令應用于主動檢查主機或服務。
當Nagios Core確定何時可以檢查主機或服務的新鮮度時,將使用主機和服務定義中的check_period選項,因此請確保將其設置為有效的時間段。
提示:如果您未指定特定于主機或服務的Fresh_threshold值(或將其設置為零),則Nagios Core將根據您監視特定主機或服務的頻率自動自動計算閾值。建議您明確指定新鮮度閾值,而不要讓Nagios Core為您選擇一個閾值。
例
可能需要更新檢查的一項服務示例可能是報告每晚備份作業狀態的服務。也許您有一個外部腳本,一旦備份完成,該腳本便將備份作業的結果提交給Nagios Core。在這種情況下,該服務的所有檢查/結果均由外部應用程序使用被動檢查提供。為了確保每天都報告備份作業的狀態,您可能要啟用該服務的新鮮度檢查。如果外部腳本未提交備份作業的結果,則可以通過執行以下操作使Nagios Core偽造關鍵結果。
服務的定義如下所示(省略了一些必需的選項):
定義服務{
host_name備份服務器
service_description ArcServe備份作業
active_checks_enabled 0; 未啟用主動檢查
Passive_checks_enabled 1; 啟用被動檢查(這是報告結果的方式)
check_freshness 1
fresh_threshold 93600; 閾值26小時,因為備份可能不會總是同時完成
check_command no-backup-report; 僅當服務結果為“陳舊”時才運行此命令
其他選擇…
}
請注意,已禁用該服務的活動檢查。這是因為該服務的結果僅由外部應用程序使用被動檢查得出。新鮮度檢查已啟用,新鮮度閾值已設置為26小時。這比24小時要長一點,因為備份作業有時每天都運行較晚(取決于要備份的數據量,存在的網絡流量等)。在沒有備份報告只有在服務的結果被確定為陳舊的執行命令。no-backup-report命令的定義如下所示:
定義命令{
command_name無備份報告
“ command_line / usr / local / nagios / libexec / check_dummy 2”重要:未報告備份作業的結果!
}
如果Nagios Core檢測到服務結果已過時,它將運行no-backup-report命令作為活動服務檢查。這將導致執行check_dummy插件,從而將嚴重狀態返回給Nagios Core。然后,該服務將進入嚴重狀態(如果尚不存在),則可能會有人通知該問題。
Nagios Core中文使用教程