這是MON配置的第二個也是最後一個階段。
顯示強制性服務的默認值 。請參閱下面的相應幫助主題,以獲取有關服務定義的更多幫助。 對於“ mail.alert” ,請確保已配置sendmail並在主機上啟動了“ sendmail”守護進程。
服務定義
- 服務 SERVICENAME
- 服務定義以關鍵字service開頭,後跟單詞即該服務的標籤。
服務的組成部分包括時間間隔,監視器以及一個或多個時間段定義,如下所示。
如果在名為“ dafault”的監視組中定義了“默認”服務名稱(請參見上文),則默認/默認定義將用於處理未知的mon陷阱。
- 間隔 的timeval
- 關鍵字間隔後跟一個時間值,指定觸發監視腳本的頻率。時間值定義為“ 30s”,“ 5m”,“ 1h”或“ 1d”,表示30秒,5分鐘,1小時或1天。數字部分可以是分數,例如“ 1.5h”或一個半小時。時間規範的這種格式將稱為timeval 。
- traptimeout 的timeval
- 此關鍵字採用與interval相同的時間指定參數,並使服務至少經常期望來自外部源的陷阱,否則將記錄失敗。這用於心跳式服務。
- trapduration 的timeval
- 如果收到陷阱,則陷阱被傳遞到的服務的狀態通常將保持不變。如果指定了trapduration ,則服務的狀態將在timeval指定的持續時間內保持失敗狀態,然後將其重置為“成功”。
- randskew timeval
- 而不是安排監視腳本在每個間隔開始時運行,而是通過正負randskew隨機調整interval參數指定的間隔 。偏斜值指定為interval參數:“ 30s”,“ 5m”等。例如,如果interval為1m, randskew為“ 5s”,則mon將在每55秒和65秒目的是在以相同的時間間隔計劃許多服務時,幫助在服務器上分配負載。
- monitor monitor-name [arg ...]
- 關鍵字Monitor後跟腳本名稱和參數指定了計時器到期時要運行的監視器。指定要發送到監視腳本的參數時,遵循類似Shell的引用約定。該腳本是從-s參數給定的目錄中調用的,隨後的所有單詞均作為監視程序的參數提供,其後是當前監視組所引用的組中的主機列表。如果監視行以“ ;;”結尾作為一個單獨的詞,在調用程序時,主機組不會附加到參數列表中。
- allow_empty_group
- 即使由於監視的主機而導致該監視的主機組為空, allow_empty_group選項也將允許調用監視器。禁用主機組中的所有主機後,默認行為是不調用監視器。
- 描述 descriptiontext
- 客戶端程序查詢以下描述的文本,並通過環境變量將其傳遞給警報和監視器。它應包含該服務的簡短說明,適合包含在電子郵件或網頁中。
- exclude_hosts 主機[主機...]
- 在exclude_hosts之後列出的所有主機將從服務檢查中排除。
- exclude_period periodspec
- 不要在periodspec標識的時間內運行計劃的監視器。
- 依賴 dependexpression
- Depend關鍵字用於指定依賴項表達式,在布爾意義上,該表達式的值為true或false。依賴關係是Perl的實際表達式,必須遵守所有語法規則。表達式在其自己的程序包空間中求值,以免意外地產生一些不需要的副作用。如果在評估表達式時發現語法錯誤,則會通過syslog記錄該錯誤。
在求值之前,對錶達式進行以下替換:看起來像“ group:service”的短語將替換為該指定服務的當前操作狀態的值。這些opstatus替換是遞歸計算的,因此,如果服務A依賴於服務B,並且服務B依賴於服務C,則服務A依賴於服務C。成功的操作狀態(評估為“ 1”)為“ STAT_OK”,“ STAT_COLDSTART” ”,“ STAT_WARMSTART”和“ STAT_UNKNOWN”。單詞“ SELF”(大寫)可用於該組(例如“ SELF:service”),是當前監視組的縮寫。
此功能可用於控制依賴於其他服務的服務的警報,例如,依賴於可ping通的計算機的SMTP測試。
- dep_behavior {a | m}
- 依賴圖的評估可以控制警報或監視調用的抑制。
警報抑制 。如果將此選項設置為“ a”,則在退出服務的監視器或接收到陷阱之後,將對依賴項表達式求值。僅在評估成功時才發送警報,這意味著依賴關係圖中的任何節點均未指示失敗。
監視抑制 。如果將其設置為“ m”,則將在將要運行該服務的監視器之前撤消依賴項表達式。如果評估成功,則將運行監視器。否則,監視器將不會運行,並且服務狀態將保持不變。
期間定義
使用句點來定義應該允許發送警報的條件。
- 期間 [標籤:] periodspec
- 句點將一個或多個警報和變量分組,這些變量和變量控制發生故障時警報發生的頻率。 period關鍵字有兩種形式。第一個參數是Patrick Ryan的Time :: Period Perl 5模塊中的周期規範。有關更多信息,請參見“ perldoc Time :: Period”。
第二種形式需要一個標籤,後跟一個週期說明,如上所述。該標籤是由字母字符或下劃線後跟零個或多個字母數字或下劃線並以冒號結尾的標籤。此格式允許具有相同期間定義的多個期間。一種用途是具有一個期間定義,該定義在特定時間段內不具有alertafter或everyevery參數,而在同一時間段內,另一個定義包含一組不包含那些參數的警報。
- alertevery的 的timeval
- alertevery關鍵字(在周期定義內)採用與interval變量相同的參數類型,並限制服務繼續失敗時發送警報的次數。例如,如果間隔為“ 1h”,則僅時段部分中的警報僅每小時觸發一次。如果在期間條目中省略alertevery關鍵字,則每次檢測到故障時都會發出警報。默認情況下,如果兩個連續故障的輸出發生變化,則警報間隔將被覆蓋。如果單詞“ summary”是最後一個參數,則在比較連續失敗的輸出時,僅考慮摘要輸出行。
- num之後的 警報
- num timeval之後 發出警報
- alertafter關鍵字(在句點部分)具有兩種形式:僅帶有“ num”參數,或者帶有“ num timeval”參數。在第一種形式中,僅在“ num”個連續失敗之後才調用警報。
在第二種形式中,自變量是一個正整數,後跟一個間隔,如上面的interval變量所述。如果指定了這些參數,則僅在該時間間隔內發生許多故障之後才調用該時間段的警報。例如,如果將alertafter的參數設置為“ 3 30m”,則如果在30分鐘內發生3次故障,則將調用警報。
- numalerts num
此變量告訴服務器在故障期間最多調用num個警報。警報計數器會定期保存,並在每次成功後重置。
- comp_alerts
如果指定了此選項,則僅在調用了相應的“關閉”警報時才調用upalerts。
- 警報 警報[arg ...]
- 一個期間可能包含多個警報,這些警報在服務失敗時觸發。用alert關鍵字指定一個警報,後跟一個可選的退出參數,以及與監視器定義解釋相同的參數,但不帶“ ;;”。例外。 exit參數採用exit = x或exit = xy的形式,其作用是僅在監視腳本的退出狀態落在exit參數範圍內時才調用警報。例如,如果警報行是alert exit = 10-20 mail.alert mis,則僅當監視程序的退出值在10到20之間時,才使用mis作為參數來調用mail-alert。此功能允許您觸發不同嚴重性級別的警報(例如可用磁盤空間從8%變為3%時)。
請參閱上面的ALERT PROGRAMS(警報程序)部分,以獲取將自動傳遞到警報程序的pramaeters列表。
- upalert 警報[arg ...]
- 警報是對警報的稱讚。當服務使狀態從失敗轉變為成功時,將調用upalert。 upalert腳本稱為提供與警報腳本相同的參數,並附加了-u參數,該參數僅用於使警報腳本知道其被稱為upalert。可以為每個期間定義指定多個upalerts。請注意,默認行為是,無論之前是否發送過任何“關閉”警報,都將發送upalert,因為upalert在狀態轉換時觸發。設置每個週期的comp_alerts選項,以將upalerts與“ down”警報配對。
- startupalert 警報[arg ...]
- 僅在mon服務器開始執行時才調用startupalert 。
- upalertafter 的timeval
- upalertafter參數被指定為遵循interval參數的語法的字符串(“ 30s”,“ 1m”等),並控制upalert的觸發。如果服務在關閉時間大於或等於此選項的值後重新啟動,則將調用upalert 。使用此選項可以防止由於“故障”(簡短中斷)而導致向上警報被調用。