benjamin @Wiki 第5節 設定時間細節

※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

關於時間(timeperiod )的設定


在其他的設定檔案裡,有一個timeperiod 的關鍵字,然後在這後面跟著一個名稱:
timeperiod 24x7
這個關鍵字的後面跟著 24x7,事實上是一個已經定義好的物件。如果要將上頭的文字用中文來作表示,應該是會像:

使用timeperiod物件名稱  名為24x7的物件

在nagios裡我們需要定義監視的時間。基本上,時間的模式也可以說是一個物件,所以它也具有物件的特性。

定義時間的語法如下所示:


define timeperiod {
 timeperiod_name 24x7 #名稱
 alias 24 Hours A Day, 7 Days A Week #別名
 sunday 00:00-24:00 #星期,時間帶
 monday 00:00-24:00
 tuesday 00:00-24:00
 wednesday 00:00-24:00
 thursday 00:00-24:00
 friday 00:00-24:00
 saturday 00:00-24:00
}

timeperiod 的代表 timeperiod_name


在以上這一個範例裡,我們定義了一個timeperiod 的物件,這個物件的名稱叫做24x7,也就是7天,每天24個小時的意思,這裡的 timeperiod_name 是用來識別每一個timeperiod 的判斷條件,就好像是資料庫裡每一個表格所具有的primary key一樣,具有唯一性,如果不小心使用了重覆的名字,那在啟動nagios之時,會出現錯誤的訊息。

當我們在其他的設定檔裡,要使用這裡所定義的timeperiod 物件之時,所以用的名稱就是這個timeperiod_name。

timeperiod的別名


相對於主鍵所具有的唯一性,別名就比較沒有限制,別名的目的是為了讓這個timeperiod物件的內容,更容易被人所了解。

時間帶


接在別名下方的,是這個timeperiod的主要內容,它的格式大致上是前面是星期,然後後面跟著是時間。
sunday 00:00-24:00
後面的時間,如果是不連續的情況,可以用豆點區隔,作多個時間段的定義。
monday 00:00-09:00,17:00-24:00

範例


以下分別列出幾個範例

  • No Time Is A Good Time
下列這個定義檔,定義時間帶的部份沒有寫出來,表示沒有任何一個時間是需要工作的時間。這個定義檔有什麼用?嗯,比方說,你想要暫時停止某一個監視時,只要簡單的將該監視所使用的timeperiod 指定為 none (timeperiod_name所定義的名稱),就可以輕鬆達成目的,而不需要真的把該監視從設定檔中拿掉。

define timeperiod {
 timeperiod_name none
 alias No Time Is A Good Time
}

  • Non-Work Hours
下列的定義檔,定義了一個名為nonworkhours的timeperiod 物件,故名思義,這個時間區間主要在於非工作時段,也就是通常你人不在辦公室的時間。

define timeperiod {
 timeperiod_name nonworkhours
 alias Non-Work Hours
 sunday 00:00-24:00
 monday 00:00-09:00,17:00-24:00
 tuesday 00:00-09:00,17:00-24:00
 wednesday 00:00-09:00,17:00-24:00
 thursday 00:00-09:00,17:00-24:00
 friday 00:00-09:00,17:00-24:00
 saturday 00:00-24:00
}


  • "Normal" Working Hours
下列的定義檔,定義了一個名為workhours的timeperiod 物件,故名思義,這個時間區間主要在工作時段,也就是大多數的人會在公司的時間。當然有些特定假日會出現在以下所定義的時間帶裡面,此時必須要針對需要,實際的來作調整。

define timeperiod {
 timeperiod_name workhours
 alias "Normal" Working Hours
 monday 09:00-17:00
 tuesday 09:00-17:00
 wednesday 09:00-17:00
 thursday 09:00-17:00
 friday 09:00-17:00
}

當一切都設定好之後,我們就可以執行下面這一個名令:
 /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg

來檢查是否設定正確無誤。
此時,我們所定義的物件,應該會出現在檢查結果的輸出裡:

Checking time periods...
       Checked 4 time periods.
如果沒有出現錯誤的信息,那就是表示你的設定是ok了。
如果出現了錯誤信息:比方我故意將某個字拼錯,將monday給拼成了monkey,此時 ,nagios就會告訴我,我在第28行的地方打入的monkey它無法辯識。我就可以依照nagios的指示,來作調整。

Error: Invalid timeperiod object directive 'monkey'.
Error: Could not add object property in file '/usr/local/nagios/etc/timeperiods. cfg' on line 28.


可能有些比較細心的人會問,如果將星期的排列順序顛倒,或是這些定義的排列是否有一定的順序,其實你如果好奇的話,可以試著改改看,在用nagios -v 設定檔的命令加以測式。

不過我已經作過這樣子的測式了。nagios沒有送出錯誤的訊息。其實,nagios在讀取設定檔時,雖然是一行一行的由下往下讀下來,但是只要行頭的關鍵字是它所認識的,這些關鍵字的排列順序,是完全自由的。