用nagios實現伺服器狀態監控
前言
Nagios是一款開源的電腦系統和網路監視工具,能有效監控Windows、Linux和Unix的主機狀態,交換機路由器等網路設定,印表機等。在系統或服務狀態異常時發出郵件或簡訊報警第一時間通知網站運維人員,在狀態恢復後發出正常的郵件或簡訊通知。
nagios可以提供以下服務
- 網路服務監控(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#等)
- 包含很多圖形化資料Plugins(Nagiosgraph、Nagiosgrapher、PNP4Nagios等)
- 可並行服務檢查
- 能夠定義網路主機的層次,允許逐級檢查,就是從父主機開始向下檢查
- 當服務或主機出現問題時發出通告,可通過email, pager, sms 或任意使用者自定義的plugin進行通知
- 能夠自定義事件處理機制重新激活出問題的服務或主機
- 自動日誌迴圈
- 支援冗餘監控
- 包括Web介面可以檢視當前網路狀態,通知,問題歷史,日誌檔案等
NRPE是監控軟體nagios的一個擴充套件,它被用於被監控的伺服器上,向nagios監控平臺提供該伺服器的一些本地的情況。例如,cpu負載、記憶體使用、硬
盤使用等等。NRPE可以稱為nagios的for linux 客戶端。
1. nagios執行安裝的check_nrpe外掛,並告訴check_nrpe去檢測哪些服務。
2. 通過SSL,check_nrpe連線到遠端主機上的nrpe daemon
3. NRPE執行本地的各種外掛去檢測本地的主機狀態和服務(check_disk,check_cpu)。
4. NRPE把檢測到的結果回傳給check_nrpe,check_nrpe再把結果送到nagios狀態佇列中
5. Nagios依次讀取佇列中的資訊,在把結果顯示出來。
Nagios監控工作原理如下圖,Nagios通過NRPE來獲取遠端主機各種資訊。
一 提前關閉SELinux
臨時關閉,即時生效,重啟失效
service iptables stop # 關閉防火牆
service iptables start # 開啟防火牆
永久關閉,重啟生效
chkconfig iptables off # 關閉防火牆
chkconfig iptables on # 開啟防火牆
三 安裝gcc等環境
四 安裝Apache和PHP
五 新增使用者和使用者組
useradd nagios
groupadd nagcmd
usermod -a -G nagios,nagcmd apache
六 安裝nagios-core
tar zxvf nagios-4.2.0.tar.gz
./configure --with-command-group=nagcmd
make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf
cp -R contrib/eventhandlers/ /usr/local/nagios/libexec/
chown -R nagios:nagios /usr/local/nagios/libexec/eventhandlers
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
/etc/init.d/httpd start
/etc/init.d/nagios start
htpasswd –c /usr/local/nagios/etc/htpasswd.users nagiosadmin #建立一個web訪問的使用者
七 安裝nagios-plugin
cd /tmp/nagios-plugins-2.1.2
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
八 新增自啟動服務
chkconfig --add nagios
chkconfig --level 35 nagios on
chkconfig --add httpd
chkconfig --level 35 httpd on
文章引用
http://bguncle.blog.51cto.com/3184079/957315/
http://os.51cto.com/art/201403/433062.htm
http://tieba.baidu.com/p/3230029862?see_lz=1&pn=1
http://www.cnblogs.com/mchina/archive/2013/02/20/2883404.html