benjamin @Wiki 第2節 巨集的使用


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

在nagios裡頭,有很多事先定義好的變數名稱,我們利用這些變數名稱,來與nagios作溝通。

這些變數的最主要目的,就是用來作溝通。比方說我們寫程式的時後,寫了十隻程式,第一隻程式執行的結果,要來第二隻程式知道,有很多方法可以達成,最簡單的方式,就是生成一個檔案,這個檔案可以讓第二隻程式來讀取。

這個巨集的運用,也是類似這樣子的觀念。為了要使資訊能夠傳遞,nagios的本體裡定義了很多的巨集。這些巨集都是以2個$記號給包了起來。舉例來說:

$SERVICESTATETYPE$ 

這一個巨集,就是用來傳遞該服務,或是該主機目前所處在的狀態,是soft狀態,或是hard狀態。


當nagios的核心,對一個服務進行檢查,確認了該服務的狀態之後,這個狀態的資訊,只有nagios才知道。如果其他的元件,想要知道該服務是處於什麼狀態,以變針對該狀態作出對應時,nagios會針對它們的需要,將這些資訊傳給它們。而巨集就是用來代表這些資訊。

有點抽像,舉個例子來說:
我們在checkcommand的檔案裡定義了一個命令,這個命令,需要我們傳入主機的位置,主機目前的狀態。


此時我們可以這麼寫:

define check_XXX{
$HOST$
}

接下來,我們列出一些我們經常會使用的巨集。

為什麼是巨集


因為在nagios裡,監視是分成很多個服務或主機的。所以每個主機或是服務裡,都有同樣的變數。nagios使用巨集,以便適用於各個定義項目。

利用巨集來與nagios溝通:


同樣地,我們要與每個設定好的服務作溝通之時,也要透過巨集。
比方說,我們要將設定值,透過cgi介面傳給nagios,希望nagios能夠為我們動態的改變該服務或是主機的設定值。此時,也需要利用該巨集。




我們在定義命令

需要將這一個資訊傳達給它們。