快速啟動選項
介紹
您可以采取一些措施來減少Nagios Core啟動(或重新啟動)所需的時間。這些加速涉及減輕處理配置文件所涉及的一些負擔。
從Nagios Core 4開始,不再需要本頁描述的大多數手動優化。現在,配置處理和驗證大大加快了。您仍然可以使用-s選項(請參見下文)來衡量啟動時間,以驗證是否確實如此。
當您具有以下一種或多種情況時,使用這些技術特別有用:
大型配置
復雜的配置(大量使用模板功能)
需要重新啟動頻率要求的安裝
背景
每當Nagios Core啟動/重新啟動時,它都必須處理您的配置文件,然后才能進行監視業務。此配置啟動過程涉及許多步驟:
讀取配置文件
解決模板定義
“重組”您的對象(我指的是發生的各種類型的工作)
復制對象定義
繼承對象屬性
排序對象定義
驗證對象關系完整性
檢查圓形路徑
和更多…
當您具有大型或復雜的配置時,其中一些步驟可能會非常耗時。有沒有辦法加快任何這些步驟?是!
評估啟動時間
在著手使事情變得更快之前,我們需要查看有什么可能,以及是否應該煩惱整個事情。這很容易做-只需使用-s命令行開關啟動nagios 即可獲取時序和調度信息。
輸出示例(縮寫為僅顯示相關部分)如下所示。對于此示例,我使用的是Nagios Core配置,該配置已定義25個主機,并且服務超過10,000個。
/ usr / local / nagios / bin / nagios -s /usr/local/nagios/etc/nagios.cfg
…
列出了有關對象配置處理的時間信息
下面。您可以使用此信息來查看是否預先緩存了
對象配置將很有用。
對象配置源:配置文件(未緩存)
對象配置處理時間(* =使用-u選項可以節省預緩存的時間)
讀取:0.486780秒
分辨:0.004106秒*
Recomb聯系人組:0.000077秒*
Recomb主機組:0.000172秒*
重復服務:0.028801秒*
Recomb服務組:0.010358秒*
重復:5.666632秒*
繼承:0.003770秒*
矩形觸點:0.030085秒*
排序:2.648863秒*
注冊:2.654628秒
釋放:0.021347秒
總計:11.555925秒* =估計節省8.393170秒(72.63%)
?
下面列出了有關配置驗證的時間信息。
配置驗證時間(* =使用-x選項加速的可能性)
對象關系:1.400807秒
循環路徑:54.676622秒*
其他:0.006924秒
總計:56.084353秒* = 54.676622秒(97.5%)的估計節省
好吧,讓我們看看發生了什么。查看總數,大約花費了11.6秒來處理配置文件,另外花費了56秒來驗證配置。這意味著每次我使用此配置啟動或重新啟動Nagios Core時,將需要近68秒的啟動工作才能監視任何內容!如果我必須半定期重新啟動Nagios Core,那是不可接受的。
我該怎么辦?再看一下輸出,您會發現Nagios Core估計我可以節省大約8.4秒的配置處理時間,并節省54.7驗證時間。總的來說,Nagios Core認為,如果進行一些優化,我可以節省63秒的正常啟動時間。
從68秒縮短到5秒。繼續閱讀一些有用的提示。
預緩存對象配置

Nagios Core可能會花費大量時間來解析您的配置文件,尤其是在使用諸如繼承等模板功能的情況下。為了減少解析配置所花費的時間,您可以對Nagios Core進行預處理并預先緩存您的配置文件,以備將來使用。
使用-p命令行選項運行nagios時,Nagios Core將讀取配置文件,對其進行處理,然后將其保存到預緩存的對象配置文件(由precached_object_file指令指定)中。此預緩存的配置文件將包含經過預處理的配置條目,這些條目將使Nagios Core在將來更容易/更快地處理。
您必須將-p命令行選項與-v或-s命令行選項一起使用,如下所示。這樣可以確保在創建預緩存的文件之前驗證您的配置。
/ usr / local / nagios / bin / nagios -pv /usr/local/nagios/etc/nagios.cfg
預緩存的配置文件的大小很可能會大大大于對象配置文件的大小總和。這是正常現象,是設計使然。
一旦創建了預緩存的對象配置文件,您就可以啟動Nagios Core,并通過-u命令行選項告訴它使用預緩存的配置文件而不是對象配置文件。
/ usr / local / nagios / bin / nagios -ud /usr/local/nagios/etc/nagios.cfg
如果您修改配置文件,則在重新啟動Nagios Core之前,您將需要重新驗證并重新緩存配置文件。如果您不重新生成預緩存的目標文件,Nagios Core將繼續使用您的舊配置,因為它現在是從預緩存的文件而不是源配置文件中讀取的。
跳過循環路徑測試

配置啟動階段的第二個(也是最耗時的)部分是循環路徑檢查。在上面的示例中,花了將近一分鐘的時間來執行此配置驗證步驟。
什么是循環路徑檢查,為什么要花這么長時間?循環修補程序檢查旨在確保您不在主機,主機依賴項或服務依賴項定義中定義任何循環路徑。如果配置文件中存在循環路徑,則Nagios Core可能會陷入僵局。花費這么長時間檢查的最可能原因是我沒有使用有效的算法。一種更有效的檢測圓形路徑的算法將受到人們的歡迎。提示:這意味著所有向我發送有關在Nagios Core上完成論文的電子郵件的CompSci研究生都可以貢獻一些代碼。
如果要在Nagios啟動時跳過循環路徑檢查,可以添加-x命令行選項,如下所示:
/ usr / local / nagios / bin / nagios -xd /usr/local/nagios/etc/nagios.cfg
跳過循環路徑檢查時,在啟動/重新啟動Nagios之前驗證配置非常重要。否則,可能會導致Nagios邏輯陷入僵局。你被警告了。
放在一起
如果要利用預緩存配置和跳過循環路徑檢查中可能的加速效果,請執行以下步驟。
驗證配置并使用以下命令創建預緩存文件:
/ usr / local / nagios / bin / nagios -vp /usr/local/nagios/etc/nagios.cfg
如果Nagios當前正在運行,請停止它。
像這樣啟動Nagios,以使用預緩存的配置文件并跳過循環路徑檢查:
/ usr / local / nagios / bin / nagios -uxd /usr/local/nagios/etc/nagios.cfg
當您將來修改原始配置文件并需要重新啟動Nagios進行更改時,請重復步驟1以重新驗證您的配置并重新生成緩存的配置文件。完成后,您可以通過Web界面或發送SIGHUP信號重新啟動Nagios。如果您不重新生成預緩存的目標文件,Nagios將繼續使用您的舊配置,因為它現在是從預緩存的文件而不是源配置文件中讀取的。
而已!享受提高的啟動速度。
Nagios Core中文使用教程
推薦文章: