Linux下Nagios的安裝與配置(1)
一、Nagios簡介
Nagios是一款開源的電腦系統和網路監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換器路由器等網路設定,印表機等。在系統或服務狀態異常時發出郵件或簡訊警示第一時間通知網站營運人員,在狀態恢複後發出正常的郵件或簡訊通知。
Nagios原名為NetSaint,由Ethan Galstad開發並維護至今。NAGIOS是一個縮寫形式: "Nagios Ain't Gonna Insist On Sainthood" Sainthood 翻譯為聖徒,而"Agios"是"saint"的希臘表示方法。Nagios被開發在Linux下使用,但在Unix下也工作得非常好。
主要功能
- 網路服務監控SMTP、POP3、HTTP、NNTP、ICMP、SNMP、FTP、SSH)
- 主機資源監控CPU load、disk usage、system logs),也包括Windows主機使用NSClient++ plugin)
- 可以指定自己編寫的Plugin通過網路收集資料來監控任何情況溫度、警告……)
- 可以通過配置Nagios遠程執行外掛程式遠程執行指令碼
- 遠程監控支援SSH或SSL加通道方式進行監控
- 簡單的plugin設計允許使用者很容易的開發自己需要的檢查服務,支援很多開發語言shell scripts、C++、Perl、ruby、Python、PHP、C#等)
- 包含很多圖形化資料PluginsNagiosgraph、Nagiosgrapher、PNP4Nagios等)
- 可並行服務檢查
- 能夠定義網路主機的層次,允許逐級檢查,就是從父主機開始向下檢查
- 當服務或主機出現問題時發出通告,可通過email, pager, sms 或任意使用者自訂的plugin進行通知
- 能夠自訂事件處理機制重新啟用出問題的服務或主機
- 自動日誌迴圈
- 支援冗餘監控
- 包括Web介面可以查看當前網路狀態,通知,問題曆史,記錄檔等
二、Nagios工作原理
Nagios的功能是監控服務和主機,但是他自身並不包括這部分功能,所有的監控、檢測功能都是通過各種外掛程式來完成的。
啟動Nagios後,它會周期性的自動調用外掛程式去檢測伺服器狀態,同時Nagios會維持一個隊列,所有外掛程式返回來的狀態資訊都進入隊列,Nagios每次都從隊首開始讀取資訊,並進行處理後,把狀態結果通過web顯示出來。
Nagios提供了許多外掛程式,利用這些外掛程式可以方便的監控很多服務狀態。安裝完成後,在nagios主目錄下的/libexec裡放有nagios內建的可以使用的所有外掛程式,如,check_disk是檢查磁碟空間的外掛程式,check_load是檢查CPU負載的,等等。每一個外掛程式可以通過運行./check_xxx –h 來查看其使用方法和功能。
Nagios可以識別4種狀態返回資訊,即 0(OK)表示狀態正常/綠色、1(WARNING)表示出現警告/黃色、2(CRITICAL)表示出現非常嚴重的錯誤/紅色、3(UNKNOWN)表示未知錯誤/深黃色。Nagios根據外掛程式返回來的值,來判斷監控對象的狀態,並通過web顯示出來,以供管理員及時發現故障。
四種監控狀態
再說警示功能,如果監控系統發現問題不能警示那就沒有意義了,所以警示也是nagios很重要的功能之一。但是,同樣的,Nagios 自身也沒有警示部分的代碼,甚至沒有外掛程式,而是交給使用者或者其他相關開源項目組去完成的。
Nagios 安裝,是指基本平台,也就是Nagios軟體包的安裝。它是監控體系的架構,也是所有監控的基礎。
開啟Nagios官方的文檔,會發現Nagios基本上沒有什麼依賴包,只要求系統是Linux或者其他Nagios支援的系統。不過如果你沒有安裝apachehttp服務),那麼你就沒有那麼直觀的介面來查看監控資訊了,所以apache姑且算是一個前提條件。關於apache的安裝,網上有很多,照著安裝就是了。安裝之後要檢查一下是否可以正常工作。
知道Nagios 是如何通過外掛程式來管理伺服器對象後,現在開始研究它是如何管理遠端伺服器對象的。Nagios 系統提供了一個外掛程式NRPE。Nagios 通過周期性的運行它來獲得遠端伺服器的各種狀態資訊。它們之間的關係如所示:
Nagios 通過NRPE 來遠端管理服務
1. Nagios 執行安裝在它裡面的check_nrpe 外掛程式,並告訴check_nrpe 去檢測哪些服務。
2. 通過SSL,check_nrpe 串連遠端機子上的NRPE daemon
3. NRPE 運行本地的各種外掛程式去檢測本地的服務和狀態(check_disk,..etc)
4. 最後,NRPE 把檢測的結果傳給主機端的check_nrpe,check_nrpe 再把結果送到Nagios狀態隊列中。
5. Nagios 依次讀取隊列中的資訊,再把結果顯示出來。
三、實驗環境
| Host Name |
OS |
IP |
Software |
| Nagios-Server |
CentOS release 6.3 (Final) |
192.168.1.108 |
Apache、Php、Nagios、nagios-plugins |
| Nagios-Linux |
CentOS release 5.8 (Final) |
192.168.1.111 |
nagios-plugins、nrpe |
| Nagios-Windows |
Windows XP |
192.168.1.113 |
NSClient++ |
Server 安裝了nagios軟體,對監控的資料做處理,並且提供web介面查看和管理。當然也可以對本機自身的資訊進行監控。
Client 安裝了NRPE等用戶端,根據監控機的請求執行監控,然後將結果回傳給監控機。
防火牆已關閉/iptables: Firewall is not running.
SELINUX=disabled
四、實驗目標
五、Nagios服務端安裝
5.1 基礎支援套件:gcc glibc glibc-common gd gd-devel xinetd openssl-devel
# rpm -q gcc glibc glibc-common gd gd-devel xinetd openssl-devel
如果系統中沒有這些套件,使用yum 安裝
# yum install -y gcc glibc glibc-common gd gd-devel xinetd openssl-devel
5.2 建立nagios使用者和使用者組
- # useradd -s /sbin/nologin nagios
- # mkdir /usr/local/nagios
- # chown -R nagios.nagios /usr/local/nagios
查看nagios 目錄的許可權
# ll -d /usr/local/nagios/