易失性服務
介紹
Nagios Core能夠區分“正常”服務和“易失”服務。每個服務定義中的is_volatile選項允許您指定特定服務是否易失。對于大多數人而言,所有受監視服務中的大多數將是非易失性的(即“正常”)。但是,易失性服務在正確使用時可能非常有用。
它們有什么用?
易失性服務對于監控非常有用
每次檢查時自動重置為“ OK”狀態的事物
安全警報等事件,每次出現問題時都需要引起注意(而不僅僅是第一次)
易失性服務有何特別之處?
易失性服務在三個重要方面不同于“常規”服務。每次檢查它們處于硬性非正常狀態時,檢查都會返回非正常狀態(即未發生狀態更改)
這些事件通常僅在服務處于非OK狀態并且剛發生硬狀態更改時才發生。換句話說,它們僅在服務首次進入非OK狀態時發生。如果將來對服務的檢查導致相同的非OK狀態,則不會發生硬狀態更改,并且提到的事件均不會再次發生。
提示:如果僅對日志記錄感興趣,請考慮使用跟蹤選項。
兩個的力量
如果將易失性服務和被動服務檢查的功能結合在一起,則可以做一些非常有用的事情。這樣的示例包括處理SNMP陷阱,安全警報等。
舉個例子。假設您正在運行PortSentry,以檢測計算機上的端口掃描并自動對潛在的入侵者進行防火墻保護。如果要讓Nagios知道端口掃描,可以執行以下操作:
Nagios配置:
創建一個稱為“ 端口掃描”的服務定義,并將其與運行PortSentry的主機相關聯。
將服務定義中的max_check_attempts指令設置為1。這將告訴Nagios在報告非OK狀態時立即將服務強制進入硬狀態。
將服務定義中的active_checks_enabled偽指令設置為0。這可以防止Nagios主動檢查服務。
將服務定義中的passive_checks_enabled偽指令設置為1。這將啟用對服務的被動檢查。
在服務定義中將此is_volatile偽指令設置為1。
PortSentry配置:
編輯您的PortSentry配置文件(portsentry.conf),并為KILL_RUN_CMD指令定義命令,如下所示:
“
確保將host_name替換為與服務關聯的主機的簡稱。
端口掃描腳本:
在/ usr / local / nagios / libexec / eventhandlers目錄中創建一個名為commit_check_result的shell腳本。Shell腳本的內容應類似于以下內容。
#!/ bin / sh
#將命令寫入Nagios命令文件以引起
#處理服務檢查結果
echocmd =“ / bin / echo”
CommandFile =“ / usr / local / nagios / var / rw / nagios.cmd”
#獲取自UNIX時代以來的當前日期/時間(以秒為單位)
datetime =日期+%s
#創建命令行以添加到命令文件
cmdline =“ [$ datetime] PROCESS_SERVICE_CHECK_RESULT; $ 1; $ 2; $ 3; $ 4”
#將命令附加到命令文件的末尾
$ echocmd $ cmdline >> $ CommandFile
當PortSentry將來在計算機上檢測到端口掃描時會發生什么?
PortSentry將對主機進行防火墻(這是PortSentry軟件的功能)
PortSentry將執行submit_check_result Shell腳本并將被動檢查結果發送給Nagios
Nagios將讀取外部命令文件,并查看PortSentry提交的被動服務檢查
Nagios會將端口掃描服務置于嚴重的“關鍵”狀態,并將通知發送給聯系人
Nagios Core中文使用教程
推薦文章: