nagios簡介
nagios是十分受歡迎的、開源且免費的計算機及網絡系統監控軟體。nagios是“nagios ain‘t gonna insist on sainthood”的縮寫。它最早是在1999年以“netsaint”釋出。nagios主要應用在linux和unix平台環境下的監控,但通過插件,也可以監控ms windows系統的主機。nagios在linuxcon 2010 poll并選為最受歡迎的it運維工具。它被infoworld在2009年評為最佳開源軟體,同時也是該年度的sourceforge社群的系統管理工具最佳選擇。nagios也被很多知名企業所采用,包括aol,dhl,at&t,歐萊雅,德州儀器,siemens com cz,時代華納有線,yahoo等。
nagios的特征包括:
l 監控網絡服務(smtp、pop3、http、nntp、ping等);
l 監控主機資源(處理器負荷、磁盤使用率等);
l 并行服務檢查機制;
l 具備定義網絡分層結構的能力,用”parent”主機定義來表達網絡主機間的關系,這種關系可被用來發現和明晰主機當機或不可達狀态,提供裝置組網拓撲展示能力;
l 當服務或主機問題産生與解決時将告警發送給聯系人(通過email、短信、使用者定義方式);
l 具備定義事件句柄功能,它可以在主機或服務的事件發生時擷取更多問題定位;
l 簡單地插件設計使得使用者可以友善地擴充自己服務的檢測方法;
l 自動的日志輪轉;
l 可以支援并實作對主機的備援監控;
l 可選的web界面用于檢視目前的網絡狀态、通知和故障曆史、日志檔案等;
二次開發
nagios的功能是監控服務和主機,但是他自身并不包括這部分功能,所有的監控、檢測功能都是通過各種插件來完成的。啟動 nagios後,它會周期性的自動調用插件去檢測伺服器狀态,同時 nagios 會維持一個隊列,所有插件傳回來的狀态資訊都進入隊列,nagios每次都從隊首開始讀取資訊,并進行處理後,把狀态結果通過 web 顯示出來。
<b>nagios plug-in</b><b>機制</b>
nagios daemon通過加載一些官方的或其它自開發的插件(plug-in),能夠實作對諸如伺服器、網絡、應用甚至房間溫度和濕度等的監控。nagios core作為nagios daemon的核心,負責對這些插件的結果進行處理(諸如統計、轉儲、人工或自動響應處理等)。是以nagios core即為nagios的事件池的核心。在nagios core内部,它為每一種加載的插件都會配置設定獨立的工作緩沖區(即以objecttype作為區分),以存放相應插件所産生的事件資訊。每一個獨立運作的nagios daemon可以有自己的名稱以便叢集nagios環境下的互相差別,即從更大的層面來區分這些工作緩沖區。
nagios插件通常是通過指令行方式監控主機或服務工作狀态的腳本,由nagios進行按需調用,并把執行結果傳回給nagios。nagios正是根據這些傳回值來判斷是否“采取某種行動”(如運作事件句柄(event handlers),發送通知等)。下圖展示了插件相對于nagios程序和被監控對象間的關系:
為了管理插件,nagios 每次在查詢一個服務的狀态時,産生一個子程序,并且它使用來自該指令的輸出和退出代碼來确定具體的狀态。
下面提供了一個 python 示例腳本,用于檢查 unix® 平均負載。它假定 2.0 以上的級别表示警告狀态,而 5.0 以上的級别表示危險狀态。這些值都采用了寫死的方式,并且始終使用最近一分鐘的平均負載。
<b>nagios add-on</b><b>機制</b>
nagios支援以add-on方式擴充監控資訊處理能力。nagios采集到的監控資訊都被看做事件,事件接收者對感興趣的事件注冊,事件發生時nagios的事件機制會将事件發送到事件接收者。nagios的add-on就是事件接收者。add-on通過将自身注冊到感興趣的事件上,可以實時的從nagios接收到事件,并作出相應處理。
nagios add-on工作原理圖:
<b>nagios</b><b>監控效果:</b>