初學(xué) Nagios

一、Nagios簡介

Nagios是一款開源的電腦系統(tǒng)和網(wǎng)絡(luò)監(jiān)視工具,能有效監(jiān)控Windows、Linux和Unix的主機(jī)狀態(tài),交換機(jī)路由器等網(wǎng)絡(luò)設(shè)置,打印機(jī)等。在系統(tǒng)或服務(wù)狀態(tài)異常時發(fā)出郵件或短信報警第一時間通知網(wǎng)站運(yùn)維人員,在狀態(tài)恢復(fù)后發(fā)出正常的郵件或短信通知。

Nagios原名為NetSaint,由Ethan Galstad開發(fā)并維護(hù)至今。NAGIOS是一個縮寫形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻譯為圣徒,而"Agios"是"saint"的希臘表示方法。Nagios被開發(fā)在Linux下使用,但在Unix下也工作得非常好。

主要功能

1.網(wǎng)絡(luò)服務(wù)監(jiān)控(SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
3.主機(jī)資源監(jiān)控(CPU load、disk usage、system logs),也包括Windows主機(jī)(使用NSClient++ plugin)
3.可以指定自己編寫的Plugin通過網(wǎng)絡(luò)收集數(shù)據(jù)來監(jiān)控任何情況(溫度、警告……)
4.可以通過配置Nagios遠(yuǎn)程執(zhí)行插件遠(yuǎn)程執(zhí)行腳本
5.遠(yuǎn)程監(jiān)控支持SSH或SSL加通道方式進(jìn)行監(jiān)控
6.簡單的plugin設(shè)計允許用戶很容易的開發(fā)自己需要的檢查服務(wù),支持很多
開發(fā)語言(shell scripts、C++、Perl、ruby、Python、PHP、C#等)
7.包含很多圖形化數(shù)據(jù)Plugins(Nagiosgraph、Nagiosgrapher、
PNP4Nagios等)
8.可并行服務(wù)檢查
9.能夠定義網(wǎng)絡(luò)主機(jī)的層次,允許逐級檢查,就是從父主機(jī)開始向下檢查
10.當(dāng)服務(wù)或主機(jī)出現(xiàn)問題時發(fā)出通告,可通過email, pager, sms 或任意用
戶自定義的plugin進(jìn)行通知
11.能夠自定義事件處理機(jī)制重新激活出問題的服務(wù)或主機(jī)
12.自動日志循環(huán)
13.支持冗余監(jiān)控
14.包括Web界面可以查看當(dāng)前網(wǎng)絡(luò)狀態(tài),通知,問題歷史,日志文件等

二、Nagios工作原理

Nagios的功能是監(jiān)控服務(wù)和主機(jī),但是他自身并不包括這部分功能,所有的監(jiān)控、檢測功能都是通過各種插件來完成的。

啟動Nagios后,它會周期性的自動調(diào)用插件去檢測服務(wù)器狀態(tài),同時Nagios會維持一個隊列,所有插件返回來的狀態(tài)信息都進(jìn)入隊列,Nagios每次都從隊首開始讀取信息,并進(jìn)行處理后,把狀態(tài)結(jié)果通過web顯示出來。

Nagios提供了許多插件,利用這些插件可以方便的監(jiān)控很多服務(wù)狀態(tài)。安裝完成后,在nagios主目錄下的/libexec里放有nagios自帶的可以使用的所有插件,如,check_disk是檢查磁盤空間的插件,check_load是檢查CPU負(fù)載的,等等。每一個插件可以通過運(yùn)行./check_xxx –h 來查看其使用方法和功能。

Nagios可以識別4種狀態(tài)返回信息,即 0(OK)表示狀態(tài)正常/綠色、1(WARNING)表示出現(xiàn)警告/黃色、2(CRITICAL)表示出現(xiàn)非常嚴(yán)重的錯誤/紅色、3(UNKNOWN)表示未知錯誤/深黃色。Nagios根據(jù)插件返回來的值,來判斷監(jiān)控對象的狀態(tài),并通過web顯示出來,以供管理員及時發(fā)現(xiàn)故障。
四種監(jiān)控狀態(tài)

image.png

再說報警功能,如果監(jiān)控系統(tǒng)發(fā)現(xiàn)問題不能報警那就沒有意義了,所以報警也是nagios很重要的功能之一。但是,同樣的,Nagios 自身也沒有報警部分的代碼,甚至沒有插件,而是交給用戶或者其他相關(guān)開源項目組去完成的。

Nagios 安裝,是指基本平臺,也就是Nagios軟件包的安裝。它是監(jiān)控體系的框架,也是所有監(jiān)控的基礎(chǔ)。

打開Nagios官方的文檔,會發(fā)現(xiàn)Nagios基本上沒有什么依賴包,只要求系統(tǒng)是Linux或者其他Nagios支持的系統(tǒng)。不過如果你沒有安裝apache(http服務(wù)),那么你就沒有那么直觀的界面來查看監(jiān)控信息了,所以apache姑且算是一個前提條件。關(guān)于apache的安裝,網(wǎng)上有很多,照著安裝就是了。安裝之后要檢查一下是否可以正常工作。

知道Nagios 是如何通過插件來管理服務(wù)器對象后,現(xiàn)在開始研究它是如何管理遠(yuǎn)端服務(wù)器對象的。Nagios 系統(tǒng)提供了一個插件NRPE。Nagios 通過周期性的運(yùn)行它來獲得遠(yuǎn)端服務(wù)器的各種狀態(tài)信息。它們之間的關(guān)系如下圖所示:


image.png

Nagios 通過NRPE 來遠(yuǎn)端管理服務(wù)

1.Nagios 執(zhí)行安裝在它里面的check_nrpe 插件,并告訴check_nrpe 去檢測哪些服務(wù)。

2.通過SSL,check_nrpe 連接遠(yuǎn)端機(jī)子上的NRPE daemon

3.NRPE 運(yùn)行本地的各種插件去檢測本地的服務(wù)和狀態(tài)(check_disk,..etc)

4.最后,NRPE 把檢測的結(jié)果傳給主機(jī)端的check_nrpe,check_nrpe 再把結(jié)果送到Nagios狀態(tài)隊列中。

5.Nagios 依次讀取隊列中的信息,再把結(jié)果顯示出來。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容