benjamin @Wiki 第9節 主動監視與被動監視(2)


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

被動監視



談到這個主題,令人想到我們已前學英文時,常常提到的主動詞與被動詞。但是一點關系也沒有就是了。
為了實現被動的監視,nagios必須要有一個管道來接收,從外頭進來的回報,用來確定該服務是正常的被執行的。這個管道就是我們之前所提到過的nagioscmd。
這個流程圖如下所示

外部來的監視回報->nagios的監視介面->nagios的狀態檔案裡記錄

然後這個狀態檔就會被web的cgi的程式所讀取,然後在畫面上被表示出來。

這個時候會出現的問題點,就是如果從外面送進來的資料,如果nagios不認識的話,也沒有意義,所以要先定義好一定的格式,讓彼此都可以認識,所以外頭來的監視回報,不管是監視什麼的回報,都需要符合下列的類型。

然後nagios收到回報之後,才能夠判斷那一個服務,或是那一台主機現在是ok的。所以,在nagios裡面,事先對這一個服務或是主機,進行定義,是有必要的。

新鮮度檢查


即然是nagios被動的等待資訊的進來,nagios也不甘於只是等待,nagios所要採取的行動,就是主動的去檢查,是否進來的資訊,是最新的,即時的。

如果資訊太舊,那就代表已經很久的時間沒有新的回報進來了,這個時候,nagios就可以很合理的對於該監視項目的安危提出合理的懷疑。而對於相關人士發出警告。

為了實現這一個邏輯,在nagios裡有一個設定的選項,叫做…… 這個項目用來設定資訊過期的時間。也就是說超過這一個時間,資訊如果沒有被更新,那nagios就應該要產生合理的懷疑,將狀態報知相關人員。

分散式架構


被動模式是一個在nagios本體程式裡提供的模組,使用的方法很廣泛,可以使用的情況就交給各位讀者的想像力去發揮,
在多台主機同時監視之時,也可以使用這個工能,此時擔任主控的機器,需要將各地來的資料,收集起來在一個畫面上顯示,不需要真正的去監視各台server,這一台機器如果要實現這一個「資訊的集散中心」的腳色,就必須要利用這一個功能。
比方說在名居屋的公司裡有1000台機器,在北海道裡也有1000台機器,在東京的總部,要如何確認這2000台機器的狀況,這個時候比較合理的作法,就是在名古屋的機房裡,分別設置幾台監視用的機器,而名古屋的相關人員,可以利用這幾台機器來監視其他的主機與服務,北海道也是一樣的作法。而東京的總部,則只要設置一台nagios,這一台nagios定期的接受從外地來的監視回報即可。

在職務上,東京的人員即使發現了名古屋的機器有問題了,到頭來還是要聯絡名古屋的人解決。

addon

為了解決網路的阻隔,已便能順利的將監視的結果回傳回去,nagios提供了…這一個addon。

設定上的調整


首先,在nagios的主要設定檔裡,存在了2個accept_passive_service_checks的選項,我們必須要先將它設為1,這樣一來,其他的設定才會生效。

Format: accept_passive_service_checks=<0/1>
Example: accept_passive_service_checks=1

Format: accept_passive_host_checks=<0/1>
Example: accept_passive_host_checks=1



基本上,所有的nagios的服務,都是可以進行主動的檢查以及進行被動的被告知的。這兩者原則上是使用先進先出的方式。

所謂的先進先出,就是指當nagios的主動檢查,得到一個ok的結果,但是過沒多久,從外頭進來了一個回報,說是該服務不ok。此時nagios沒有像人類一樣複雜的思考,不會想去判斷:到底那一個是對的?nagios所採取的方式很簡單,就是接納最新的消息,不管這消息是自已採訪來的,或是被別人告知的。

這些選項都是可以在設定時被調整。我們可以將服務設定為只接受主動,或只接受被動。換句話說,我們可以將任何一個接受端關起來,不接受任何外頭來的訊息。

在服務及主機裡,主要有兩個選項,來調整主被動。
分別是:

  • passive_checks_enabled [0/1]

以及

  • active_checks_enabled [0/1]

對於每個選項,1與0是可以被指定的,1代表開啟。0則代表關閉。




我們來看一下一個範例:


一個服務的設定範例
設定檔案

cgi畫面上的調整



我們在設定選項中的調整,需要重新啟動nagios才會生效。這樣子一來有時候會不太方便,所以,在cgi的介面上,也提供我們可以透過該介面,來進行設定的工能。


這一個cgi的名稱是: