2012年4月25日 星期三

安裝與設定 nagios

本文將說明如何在CentOS Linux上架設nagios這個功能強大的開放源始碼監視系統。

nagios

壹. 新增 EPEL和RPMforge的Yum 儲存庫

由於Centos本身的儲存庫並無nagios,所以您需要新增 RPMforge的Yum 儲存庫

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm

# rpm -Uhv http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

貳. 安裝並設定Apache

您需要安裝 Apache並設定開機時自動啟動

參. 安裝並設定 nagios

(1) 安裝 nagios和plugins

# yum -y  install nagios nagios-plugins nagios-plugins-setuid nagios-nrpe nagios_nsca

(2) 建立一個可以存取nagios網站的帳戶(nagiosadmin)與密碼

htpasswd -c /etc/nagios/passwd nagiosadmin

(其實這個密碼檔已存在)

(3) 檢查預設的nagios組態檔

nagios -v /etc/nagios/nagios.cfg

(4) 啟動 nagios和Apache

# service httpd start

# service nagios start

# chkconfig --level 2345 httpd on

#chkconfig --level 2345 nagios on

肆. 測試與確認安裝

使用瀏覽器輸入下列網址並輸入方才建立的帳戶和密碼:

     http://主機名稱或IP/nagios/

可看到如下的畫面:

nagios_login


伍.  新增想要監控的 Windows 伺服器

若要使用nagios來家監控遠端的Windows電腦的資源耗用狀況和服務狀況,您需要執行下列七個步驟:

nagios 伺服器: (只需在第一次使用時設定)

(1) 啟用nagios的 Windows組態檔

(2) 編輯設定nagios 的windows組態檔 (/etc/nagios/objects/windows.cfg)

Windows 機器: (在每一部需要監控的Windows機器上執行)

(3) 在Windows 機器上安裝 NSClient++

(4) 修改 NSClient++ 服務

(5) 修改 NSC.ini 檔案

(6) 設定Windows防火牆開放連入的TCP連接埠12489或 nsclient++.exe程式的連入流量

(7) (重新)啟動 NSClient++ 服務

 

(1) 啟用nagios的 Windows組態檔 (只需在第一次使用時設定)

# vi /etc/nagios/nagios.cfg

移除下列一行開頭的 #字註解符號

#cfg_file=/etc/nagios/objects/windows.cfg

重新啟動 nagios

# service nagios restart

 

(2) 編輯設定nagios 的windows組態檔 (/etc/nagios/objects/windows.cfg)

# vi /etc/nagios/object/windows.cfg

(2.1)新增下列主機定義設定段

define host{
use windows-server  
host_name PTP
alias P2P Server
address 192.168.2.57
}
 

您需要正確的修改主機名稱、別名與IP位址。

(2.2) 設定服務段以監控Windows 電腦的各項資源或服務使用狀況 (記得變更host_name為您的正確機器名稱)


下列服務段用以監控Windows的NSClient++的版本

define service{

use generic-service

host_name winserver

service_description NSClient++ Version

check_command check_nt!CLIENTVERSION

}


下列服務段用以監控Windows的Uptime


define service{

use generic-service

host_name winserver

service_description Uptime

check_command check_nt!UPTIME

}

下列服務段用以監控CPU利用率,一旦五分鍾的CPU利用率超過80%則送出警告(Alert)警示,若超過90%則送出嚴重(Critical)警示


define service{

use generic-service

host_name winserver

service_description CPU Load

check_command check_nt!CPULOAD!-l 5,80,90

}

下列服務段用以監控記憶體的使用量,一旦記憶體耗用量超過80%則送出警告(Alert)警示,若超過90%則送出嚴重(Critical)警示


define service{

use generic-service

host_name winserver

service_description Memory Usage

check_command check_nt!MEMUSE!-w 80 -c 90

}

下列服務段用以監控C磁碟空間的使用率,一旦偵測到磁碟空間耗用率超過80%則送出警告(Alert)警示,若超過90%則送出嚴重(Critical)警



define service{

use generic-service

host_name winserver

service_description C:\ Drive Space

check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90

}

下列服務段用以監控WWW服務,一旦發現WWW無法提供服務時則送出嚴重(Critical)警示


define service{

use generic-service

host_name winserver

service_description W3SVC

check_command check_nt!SERVICESTATE!-d SHOWALL -l W3SVC

}

下列服務段用以監控Windows 的Explorer.exe處理程序,一旦發現Explorer不在正常執行狀態中,則送出嚴重(Critical)警示


define service{

use generic-service

host_name winserver

service_description Explorer

check_command check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe

}

 


(3) 在Windows 機器上安裝 NSClient++

接下來,您需要在所有需要監控的Windows電腦上下載並安裝 Windows Agent (nsclient++;有32位元和64位元二個版本)

install_nsclient

 

(4) 修改 NSClient++ 服務

核選『允許服務與桌面互動』

nagios_nsclientservice

 

(5) 修改 NSC.ini 檔案 (位於C:\Program Files\NSClient++目錄下)

(5.1)先檢查下列模組是否啟用 (取消前面的 ;註解符號)

[modules]

NRPEListener.dll  NSClientListener.dll  NSCAAgent.dll  CheckWMI.dll  FileLogger.dll  CheckSystem.dll  CheckDisk.dll  CheckEventLog.dll  CheckHelpers.dll

(5.2) 修改 NSC.INI檔案內[Settings]段內的 allowed_hosts,指向Nagios伺服器 (192.168.2.161)

allowed_hosts=192.168.2.161/255.255.255.0

 

(6) 設定Windows防火牆開放連入的TCP連接埠12489(nsclient)和5666(NRPE)或者直接開放 nsclient++.exe程式的所有連入流量

 

nsclient firewall

 

(6) (重新)啟動 NSClient++ 服務  (必要時還需要重新開機)