標籤:設定檔 程式 local 檢測 資訊
運行Nagios的基本操作7.1. 驗證設定檔的正確性
每次修改過你的設定檔,你應該運行一次檢測程式來驗證配置的正確性。在運行你的Nagios程式之前這是很重要的,否則的話會導致Nagios服務因配置的錯誤而關閉。
為驗證你配置,運行Nagios帶命令列參數 -v,象這樣:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
如果你確實忘記了一些重要的資料或是錯誤地配置了,Nagios將會給出一個警示或是一個錯誤資訊,其中會給出錯誤的位置。錯誤資訊通常會列印出錯誤配置的檔案中的那一行。在錯誤時,Nagios通常是在預檢查出有問題列印出問題的源設定檔行後退回到命令列狀態。這使得Nagios不會因一個錯誤而落入需要驗證一個因錯誤而嵌套的配置迴圈錯誤之中。警示資訊可通常是被忽略的,因為一般那些只是建議性的並非必須的。
一旦你已經驗證了你設定檔並修改過你的錯誤,就可以繼續下去,啟動或重啟Nagios服務了。
7.2. 啟動與停止Nagios
有多於一種方式來啟動、停止和重啟動Nagios,這裡在有更通常做的方式...
提示
650) this.width=650;" src="http://192.168.1.254/pub/images/tip.gif" alt="tip.gif" />
在你啟動或重啟動你的Nagios程式之前,你總是要確保你驗證你的設定檔已經通過。
7.2.1. 啟動Nagios
初始化指令碼:最簡單的啟動Nagios守護進程的方式是使用初始化指令碼,象這樣:
/etc/rc.d/init.d/nagios start
手工方式:你可以手動地啟動Nagios守護進程,用命令參數-d,象這樣:
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
7.2.2. 重啟動Nagios
當你修改了設定檔並想使之生效的話,重啟動或重載入動作是必須的。
初始化指令碼:最簡單地重啟動Nagios守護進程的方式是使用初始化指令碼,象這樣:
/etc/rc.d/init.d/nagios reload
Web介面方式:你可以利用WEB介面,通過點擊“進程資訊”的超連結頁面裡的“重啟動Nagios進程”來重啟動Nagios,見圖
650) this.width=650;" src="http://192.168.1.254/pub/images/stoprestart.png" alt="stoprestart.png" />
手工方式:你可以手動地發一個SIGHUP訊號,象這樣:
kill -HUP <nagios_pid>
7.2.3. 停止Nagios
初始化指令碼:最簡單地停止Nagios守護進程的方式是通過初始化指令碼,象這樣:
/etc/rc.d/init.d/nagios stop
Web介面方式:你可以利用WEB介面,通過點擊“進程資訊”的超連結頁面裡的“關閉Nagios進程”來停止Nagios,見圖
650) this.width=650;" src="http://192.168.1.254/pub/images/stoprestart.png" alt="stoprestart.png" />
手工方式:你可以手動發一個SIGTERM訊號,象這樣:
kill <nagios_pid>
7.3. 快速啟動選項7.3.1. 介紹
只有很少幾件事可以減少Nagios的啟動或重啟總時間。加速啟動方法包括有移除些負擔還包括加快設定檔處理過程。
利用這些技術在如下一種或幾種情況時特別有效:
大型安裝配置
複雜地配置(過度地利用模板特性)
需要進行頻繁重啟動的安裝模式
7.3.2. 背景
每次Nagios啟動和重啟時,在它著手進行監控工作之前必須要處理設定檔。啟動過程中的配置處理包括如下幾步:
讀入設定檔
解析模板定義
重粘連("Recombobulating")對象(是我想到的應做各種工作)
複製對象定義
繼承對象屬性
對象定義排序
驗證對象關聯關係的完整性
驗證迴路
和其他...
當有很大的或是很複雜的設定檔要處理時有幾步非常消耗時間的。有沒有加快這些的辦法?當然有!
7.3.3. 評估啟動時間
在做讓啟動速度更快的事情之前,需要看看可能性有多少和是否有必要涉足此事。這個比較容易-只是用-s命令列開關啟動Nagios以取得計時和調度資訊。
下面是個輸出範例(做過精減,只是顯示了有關部分),在這個例子中,假定Nagios配置為對25個主機和超過10,000個服務進行監控。
/usr/local/nagios/bin/nagios -s /usr/local/nagios/etc/nagios.cfgNagios 3.0-prealphaCopyright (c) 1999-2007 Ethan Galstad (http://www.nagios.org)Last Modified: 01-27-2007License: GPLTiming information on object configuration processing is listedbelow. You can use this information to see if precaching yourobject configuration would be useful.Object Config Source: Config files (uncached)OBJECT CONFIG PROCESSING TIMES (* = Potential for precache savings with -u option)----------------------------------Read: 0.486780 secResolve: 0.004106 sec *Recomb Contactgroups: 0.000077 sec *Recomb Hostgroups: 0.000172 sec *Dup Services: 0.028801 sec *Recomb Servicegroups: 0.010358 sec *Duplicate: 5.666932 sec *Inherit: 0.003770 sec *Recomb Contacts: 0.030085 sec *Sort: 2.648863 sec *Register: 2.654628 secFree: 0.021347 sec ============TOTAL: 11.555925 sec * = 8.393170 sec (72.63%) estimated savingsTiming information on configuration verification is listed below.CONFIG VERIFICATION TIMES (* = Potential for speedup with -x option)----------------------------------Object Relationships: 1.400807 secCircular Paths: 54.676622 sec *Misc: 0.006924 sec ============TOTAL: 56.084353 sec * = 54.676622 sec (97.5%) estimated savings
OK,看看發生了什麼。先看匯總資訊,大概有11.6秒用於處理設定檔有56秒來驗證配置。這意味著每次用這個配置啟動或重啟Nagios時,它大約會有68秒來做啟動事項而不會做任何監控的事情!如果是在定製配置Nagios過程中也是不可容忍的。
那麼怎麼辦?看一下輸出內容,如果運用了最佳化選項,Nagios將可以在配置讀取過程節省大約8.4秒而在驗證過程可節省63秒。
哇!從68秒到只有5秒?!是的!看看下面是怎麼做到的。
7.3.4. 預緩衝對象配置
Nagios可在解析設定檔過程中做些加速,特別是當配置中使用了模板來做繼承等的時候。為降低Nagios解析設定檔的處理時間可用Nagios預先處理與預緩衝設定檔的功能。
當用-p命令參數來運行Nagios時,Nagios將讀入設定檔,處理後將配置結果寫入預快取檔案(由主設定檔中precached_object_file域指定檔案位置)。該預緩衝設定檔將包含了預先處理後的資訊將使Nagios處理設定檔更容易和快捷。必須把-p參數選項與-v或-s命令參數一起使用,如下例。注意要做預緩衝設定檔之前配置應是已被驗證過的。
/usr/local/nagios/bin/nagios -pv /usr/local/nagios/etc/nagios.cfg
預緩衝設定檔有大小明顯地比原有設定檔大。這是正常的由設計初衷決定的。
650) this.width=650;" src="http://192.168.1.254/pub/images/fast-startup1.png" alt="fast-startup1.png" />
一旦預緩衝對象設定檔建立,可以啟動Nagios時帶上-u命令列選項以讓它使用預緩衝設定檔而不是設定檔本身。
/usr/local/nagios/bin/nagios -ud /usr/local/nagios/etc/nagios.cfg
重要
650) this.width=650;" src="http://192.168.1.254/pub/images/important.gif" alt="important.gif" />
如果更改了設定檔,必須在Nagios重啟動前要重新驗證和重建預緩衝設定檔。如果沒有重構建預緩衝設定檔,Nagios將使用舊配置運行因為是由舊配置產生的預快取檔案,而不是用新的原始設定檔。
650) this.width=650;" src="http://192.168.1.254/pub/images/fast-startup2.png" alt="fast-startup2.png" />
7.3.5. 跳過迴路檢測
第二步(也是最耗時)部分是對配置中的迴路進行檢測。在上面例子中這一步幾乎用去了1分鐘來驗證配置驗證。
什麼時迴路檢測和為什麼要做這麼長時間?迴路檢測邏輯是為了確保在你的主機、主機依賴、服務和服務依賴等對象之間不存在任何的迴圈路徑。如果在配置中有迴圈路徑,Nagios將會因死結而停止。用時較長原因是由於沒有使用較高效的演算法。歡迎提供更高效發現迴路的演算法。提示:這意味著EMail給我有關Nagios論文的電腦科學系研究生將有機會得到些回贈代碼。:-)
如果你想在Nagios為啟動時跳過迴路檢測,可以在命令列回加上-x參數,象這樣:
/usr/local/nagios/bin/nagios -xd /usr/local/nagios/etc/nagios.cfg
重要
650) this.width=650;" src="http://192.168.1.254/pub/images/important.gif" alt="important.gif" />
當要在啟動和重啟前跳過迴路檢測之前,驗證設定檔的正確性是非常非常重要的!沒有這麼做將有可能導致Nagios邏輯上的死結。你已被我提醒過了啊!
7.3.6. 聯合起來使用
按照下面步驟將會使用預緩衝設定檔並且跳過迴路檢測以充分加速啟動。
1、驗證設定檔並產生預緩衝設定檔,用如下命令:
/usr/local/nagios/bin/nagios -vp /usr/local/nagios/etc/nagios.cfg
2、如果Nagios正在運行,停掉它;
3、啟動Nagios,讓其使用預緩衝設定檔而且跳過迴路檢測:
/usr/local/nagios/bin/nagios -uxd /usr/local/nagios/etc/nagios.cfg
4、當更改了原始設定檔時,需要重啟動Nagios並修改現有內容,重新回到步驟1去驗證配置並重構預緩衝設定檔。一旦做好了,就可以通過Web介面來重啟Nagios或是在系統中發個SIGHUP訊號,如果沒有重構預緩衝設定檔,Nagios將用舊配置運行,因為它首先會讀入緩衝設定檔而不是源設定檔;
5、就這麼多!祝你可以加快啟動過程。
本文出自 “月光疾風” 部落格,請務必保留此出處http://skykws8023.blog.51cto.com/4514277/1581633
運行Nagios的基本操作-快速啟動選項