第2節 設定服務

「第2節 設定服務」の編集履歴(バックアップ)一覧はこちら

第2節 設定服務」(2005/12/21 (水) 08:04:12) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

<p class="MsoNormal"><b><span style="font-family: PMingLiU;" lang="ZH-TW"><br> 繼承的概念:</span></b></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang="ZH-TW"><br> 進行了上述的解示之後,接下來我們進入第一個詳細的設定項目。服務。</span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">如果服務是一個物件的話,那將會是如下面的</span><span style="font-family: PMingLiU;" lang="EN-US">uml</span><span style="font-family: PMingLiU;" lang= "ZH-TW">所示的:</span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">這一個物件可以產生很多的實例,以</span><span style= "font-family: PMingLiU;" lang="EN-US">uml</span><span style= "font-family: PMingLiU;" lang= "ZH-TW">來表示的話,將會是如下圖所示:<br></span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">這物件也能夠使用繼承的概念:</span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">如下圖所示:</span></p> <p class="MsoNormal"><img src="http://www.okjp.net/book/00001.jpg" alt= ""><br></p> <p class="MsoNormal"><br></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">繼承的概念在物件導向的程式設計裡是一個非常基要的概念,如同字義所示,繼承是指從父物件繼承了一些特性,然後在子物件裡可以對這些父的特性作修改,或是發展一些新的特性。</span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">更簡單的說,就是把各個服務的特性作個整理,將共同的部份抽出來統一成一個檔案,以便將來修改時可以不用同樣的東西改很多次。</span></p> <p class="MsoNormal">以 上的圖告訴我們,有一個服務,位於ip:192.168.3.69的位置,它需要每天的九點到十六點的這一段時間,以check_http這一個命令來進 行監視。而另外一個服務,位於ip192.168.3.80的位置。除了ip的地址不同之外,其他的需求都是相同的(相同的監視時間,相同的監視命令)<br> </p> <p class="MsoNormal"> 而使用了繼承之後,我們只需要定義好一個服務,然後讓另外一個服務繼承它。這個時候,我們只需要在另外一個服務上進行修改,而不需要作重覆性的定義命令,及監視的時間,就可以輕鬆的完成另外一個服務的定義。<br> </p> <p class="MsoNormal"><br></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">使用繼承的好處在於設定檔的設定很簡單,而且容易修改。設定檔案也可以變得簡單易懂。<br> </span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW"><b>設定檔的整體概念:</b><br></span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang="ZH-TW">nagios 的deamon啟動之時,會將設定給給讀取進來。至於會讀取那一些設定檔,則是在NAGIOS.CFG這一個檔案裡所定義。也就是說,nagios先讀取 NAGIOS.CFG,然後發現裡頭所記載的設定檔名稱,然後在一個一個的將這些名稱上所指定的設定檔,一一的讀進來。<br> </span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">nagios的設定檔我們下章才會談到,但是為了在進行設定之前有一個完整的概念,我們先打開這一個檔案,在開頭的位置,有著一堆以</span><span style="font-family: PMingLiU;" lang="ZH-TW">cfg_file開頭的文字。</span><span style= "font-family: PMingLiU;" lang="ZH-TW">比方說,在我的</span><span style= "font-family: PMingLiU;" lang= "ZH-TW">NAGIOS.CFG設定裡,就有著如下方所示的文字:</span></p> <blockquote> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW"><b><span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/contactgroups.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/contacts.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">#cfg_file=/usr/local/nagios/etc/dependencies.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">#cfg_file=/usr/local/nagios/etc/escalations.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/hostgroups.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/hosts.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/services.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/timeperiods.cfg</span></b><br> </span></p> </blockquote> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">在這裡的</span><span style="font-family: PMingLiU;" lang= "ZH-TW">cfg_file後方所緊接著的,就是設定檔的名稱。你可以將所有的設定檔寫在唯一一個檔案裡,也可以依照設定檔的內容不同,使用複數的檔案來作分類。和所有的linux的習慣一樣,#開頭的代表是註釋,不會被nagios的程式所讀進去。<br> </span></p> <p class="MsoNormal"> nagios啟動時,就會依照這裡所定義的次序,一個一個的將設定檔裡的內容給讀取進來。<br> </p> <p class="MsoNormal"> <b>設定時的測式:<br></b>由於設定nagios時需要設定很多的部份。如果你是像我一樣,分成一個一個的檔案分別作設定時,各檔案之間的統合性,比方說在<span style="font-family: PMingLiU;" lang="ZH-TW"><b><span style= "color: rgb(51, 102, 102);">timeperiods.cfg</span></b></span>檔案裡定義了一個名為workhour的timeperiod, 然後將這個名為workhour 的物件,放在<span style= "font-family: PMingLiU;" lang="ZH-TW"><b><span style= "color: rgb(51, 102, 102);">services.cfg</span></b></span>的 檔案裡來使用,這種彼此關連的設定方式,其實對於程式員來說,是非常習以為常的。比方說寫了一個car的物件,然後這個car物件在travel的 method裡被使用。但是程式員寫程式時,可以借由編譯器,也就是所謂的compiler來幫忙檢查錯誤,所以在複雜的邏輯都可以被容易的開發出來。<br> </p> <p class="MsoNormal">nagios 雖然沒有所謂的compiler,但是它有提供一個選項(-v),來讓我們測式我們所定義的設定檔群,是否彼此之間都是正確沒有錯誤的。即使在怎麼小心的 人,有時候也會犯一些錯誤,比方說定義了相同名字的物件,或是將文字拼錯,等等的問題。所以這個功能可以說是非常的需要,非常的實用。</p> <p class="MsoNormal"><br> 這一個命令選項是以如下的方式來被執行:<br></p> <p class="MsoNormal"><b><span style= "color: rgb(51, 204, 0);">/usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg</span></b><br></p> <p class="MsoNormal"> 後方一定是跟者nagios.cfg所在的位置,因為就好像我們之前所說的,nagios是先讀進<b><span style="color: rgb(51, 204, 0);">nagios.cfg</span></b>之後,在依照<b><span style="color: rgb(51, 204, 0);">nagios.cfg</span></b>裡頭所指示的,一行一行的讀進來的緣故。<br> </p> <p class="MsoNormal">開始設定service<br></p>
<p class="MsoNormal"><b><span style="font-family: PMingLiU;" lang="ZH-TW"><br> 繼承的概念:</span></b></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang="ZH-TW"><br> 進行了上述的解示之後,接下來我們進入第一個詳細的設定項目。服務。</span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">如果服務是一個物件的話,那將會是如下面的</span><span style="font-family: PMingLiU;" lang="EN-US">uml</span><span style="font-family: PMingLiU;" lang= "ZH-TW">所示的:</span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">這一個物件可以產生很多的實例,以</span><span style= "font-family: PMingLiU;" lang="EN-US">uml</span><span style= "font-family: PMingLiU;" lang= "ZH-TW">來表示的話,將會是如下圖所示:<br></span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">這物件也能夠使用繼承的概念:</span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">如下圖所示:</span></p> <p class="MsoNormal"><img src="http://www.okjp.net/book/00001.jpg" alt= ""><br></p> <p class="MsoNormal"><br></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">繼承的概念在物件導向的程式設計裡是一個非常基要的概念,如同字義所示,繼承是指從父物件繼承了一些特性,然後在子物件裡可以對這些父的特性作修改,或是發展一些新的特性。</span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">更簡單的說,就是把各個服務的特性作個整理,將共同的部份抽出來統一成一個檔案,以便將來修改時可以不用同樣的東西改很多次。</span></p> <p class="MsoNormal">以 上的圖告訴我們,有一個服務,位於ip:192.168.3.69的位置,它需要每天的九點到十六點的這一段時間,以check_http這一個命令來進 行監視。而另外一個服務,位於ip192.168.3.80的位置。除了ip的地址不同之外,其他的需求都是相同的(相同的監視時間,相同的監視命令)<br> </p> <p class="MsoNormal"> 而使用了繼承之後,我們只需要定義好一個服務,然後讓另外一個服務繼承它。這個時候,我們只需要在另外一個服務上進行修改,而不需要作重覆性的定義命令,及監視的時間,就可以輕鬆的完成另外一個服務的定義。<br> </p> <p class="MsoNormal"><br></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">使用繼承的好處在於設定檔的設定很簡單,而且容易修改。設定檔案也可以變得簡單易懂。<br> </span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW"><b>設定檔的整體概念:</b><br></span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang="ZH-TW">nagios 的deamon啟動之時,會將設定給給讀取進來。至於會讀取那一些設定檔,則是在NAGIOS.CFG這一個檔案裡所定義。也就是說,nagios先讀取 NAGIOS.CFG,然後發現裡頭所記載的設定檔名稱,然後在一個一個的將這些名稱上所指定的設定檔,一一的讀進來。<br> </span></p> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">nagios的設定檔我們下章才會談到,但是為了在進行設定之前有一個完整的概念,我們先打開這一個檔案,在開頭的位置,有著一堆以</span><span style="font-family: PMingLiU;" lang="ZH-TW">cfg_file開頭的文字。</span><span style= "font-family: PMingLiU;" lang="ZH-TW">比方說,在我的</span><span style= "font-family: PMingLiU;" lang= "ZH-TW">NAGIOS.CFG設定裡,就有著如下方所示的文字:</span></p> <blockquote> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW"><b><span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/contactgroups.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/contacts.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">#cfg_file=/usr/local/nagios/etc/dependencies.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">#cfg_file=/usr/local/nagios/etc/escalations.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/hostgroups.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/hosts.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/services.cfg</span><br style="color: rgb(51, 102, 102);"> <span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/timeperiods.cfg</span></b><br> </span></p> </blockquote> <p class="MsoNormal"><span style="font-family: PMingLiU;" lang= "ZH-TW">在這裡的</span><span style="font-family: PMingLiU;" lang= "ZH-TW">cfg_file後方所緊接著的,就是設定檔的名稱。你可以將所有的設定檔寫在唯一一個檔案裡,也可以依照設定檔的內容不同,使用複數的檔案來作分類。和所有的linux的習慣一樣,#開頭的代表是註釋,不會被nagios的程式所讀進去。<br> </span></p> <p class="MsoNormal"> nagios啟動時,就會依照這裡所定義的次序,一個一個的將設定檔裡的內容給讀取進來。<br> </p> <p class="MsoNormal"> 我們這裡是將各項目分類成不同的檔案,比方說,<span style= "font-family: PMingLiU;" lang="ZH-TW"><b><span style= "color: rgb(51, 102, 102);">services.cfg</span></b></span>就是用來定義服務,<span style="font-family: PMingLiU;" lang="ZH-TW"><b><span style= "color: rgb(51, 102, 102);">hosts.cfg</span></b></span>就是用來定義主機。這樣的定義可以讓我們作一個初步的分類,而且想要修改那一個項目,打開該項目所存在的檔案,馬上就可以找到要修改的位置。<br> 如果你是一位忙碌的網管,這種分類方式在面對有上百台機需要管理時,是相當管用的。但是對於初學者,如果你覺得每個檔案都要進行設定很麻煩,想要將這些東西全部寫在一個檔案裡,也是個可行的方法。<br> 就好像我們在寫程式一樣,在實現某個邏輯時,將程式的內容,寫成由分成很多個含式來處理,各含式都有名確的定義。也可以只用一個含式來處理,雖然這樣一來 此function有可能會有很多程式碼,但是如果你想要實現的邏輯是相當的簡單的話,什麼物件導向,設計模式的理論都變得有點多餘,寫成一個含式是最快 最簡單的。<br></p> <p class="MsoNormal"> 在接下來我們要進行的說明裡,你可以用一個檔案來包括,也可以分成很多個檔案。這些檔案具有一些特性。<br> ●註釋是用 # 來開頭<br> 也就是你如果想要寫註釋,或是想把一行的設定先隱藏起來時,你可以用這個方法。但是有一些需要注意的點。<br> 好的例子:<br></p> <p class="MsoNormal">#host_name win1<br> 不好的例子:<br> # host_name win1<br> 如果之間出現空隔,nagios會出現錯誤訊息。<br></p> <p class="MsoNormal">Error: Invalid service object directive '#'.<br></p> <p class="MsoNormal">●空檔案是ok的。<br></p> <p class="MsoNormal">比方說你在nagios.cfg裡<br> <span style="font-family: PMingLiU;" lang="ZH-TW"><b><span style= "color: rgb(51, 102, 102);">cfg_file=/usr/local/nagios/etc/contactgroups.cfg</span></b></span><br> </p> <p class="MsoNormal">設定了這樣的一行。<br> 但是你一時間又沒有想要對<span style="font-family: PMingLiU;" lang= "ZH-TW"><b><span style= "color: rgb(51, 102, 102);">contactgroups.cfg</span></b></span>裡頭的內容來作定義。此時你可以讓這個檔案空白。nagios不會出錯。<br> </p> <p class="MsoNormal"> 這些檔案的定義方式,可以以下列的模板來表示:<br></p> <p class="MsoNormal">define 物件名{<br></p> <p class="MsoNormal">屬性 屬性值<br></p> <p class="MsoNormal">}</p> <p class="MsoNormal"><br> 這裡的屬性與屬性值之間的區隔,是一個空白字元。也就是你的鍵盤上的一個space鍵。</p> <p class="MsoNormal"> 為什麼不用xml?或許有人會有這種建議。的確,用xml的話或許比較容易理解,不過對於寫程式的人來說,屬 性的後面,隔了一個空白就是屬性值,這種程式比解析xml來得容易至少100倍以上。不過現在現成的xml parser相當多,所以將來的版本會被那個熱心的工程師,加上xml設定檔的支援也說不定。<br> </p> <p class="MsoNormal"> <b>設定時的測式:<br></b>由於設定nagios時需要設定很多的部份。如果你是像我一樣,分成一個一個的檔案分別作設定時,各檔案之間的統合性,比方說在<span style="font-family: PMingLiU;" lang="ZH-TW"><b><span style= "color: rgb(51, 102, 102);">timeperiods.cfg</span></b></span>檔案裡定義了一個名為workhour的timeperiod,然後將這個名為workhour 的物件,放在<span style="font-family: PMingLiU;" lang= "ZH-TW"><b><span style= "color: rgb(51, 102, 102);">services.cfg</span></b></span>的 檔案裡來使用,這種彼此關連的設定方式,其實對於程式員來說,是非常習以為常的。比方說寫了一個car的物件,然後這個car物件在travel的 method裡被使用。但是程式員寫程式時,可以借由編譯器,也就是所謂的compiler來幫忙檢查錯誤,所以在複雜的邏輯都可以被容易的開發出來。<br> </p> <p class="MsoNormal">nagios 雖然沒有所謂的compiler,但是它有提供一個選項(-v),來讓我們測式我們所定義的設定檔群,是否彼此之間都是正確沒有錯誤的。即使在怎麼小心的 人,有時候也會犯一些錯誤,比方說定義了相同名字的物件,或是將文字拼錯,等等的問題。所以這個功能可以說是非常的需要,非常的實用。</p> <p class="MsoNormal"><br> 這一個命令選項是以如下的方式來被執行:<br></p> <p class="MsoNormal"><b><span style= "color: rgb(51, 204, 0);">/usr/local/nagios/bin/nagios-v/usr/local/nagios/etc/nagios.cfg</span></b><br> </p> <p class="MsoNormal"> 後方一定是跟者nagios.cfg所在的位置,因為就好像我們之前所說的,nagios是先讀進<b><span style="color: rgb(51, 204, 0);">nagios.cfg</span></b>之後,在依照<b><span style="color: rgb(51, 204, 0);">nagios.cfg</span></b>裡頭所指示的,一行一行的讀進來的緣故。<br> </p> <p class="MsoNormal">開始設定service<br></p>

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。