|
最新版nagios 3.3.1 也能用
此3.06版本筆者已測試完成安裝之筆記,
請各位注意裡面的步驟細節,不要LOST一定能成功
| 1. 安裝說明
1.1. Nagios簡述
Nagios為知名的遠端主機監看工具,為主從式架構軟體。其中主體可安裝於Linux型作業系統,包含Fedora、Ubuntu及Debian等,另亦可安裝於其他Unix like作業系統,如FreeBSD;而 Nagios偵測Agent,則可安裝於Unix like或Windows主機。詳見圖1。
使用Nagios提供給Windows系統之Agent,該Agent稱為NSClient++,結合安裝Nagios監看主機,即可掌握Windows系統狀態。運作概念為,由監看主機的Nagios,呼叫本機檢查程式 check_nt,該檢查程式透過安裝在遠端主機的代理程式NSClient++,獲得相關系統資訊,之後再回傳給Nagios,並呈現於Web介面上。
圖1:使用Nagios監看Windows系統狀態示意
資料來源:[2]
至於Nagios提供給Linux主機的偵測Agent,則稱為NRPE,其架構示意圖與Windows主機相似,詳見圖2。
圖2:使用Nagios監看Linux系統狀態示意
資料來源:[3]
1.2. 系統架構
本文展示的系統架構,使用1部Fedora作業系統主機,同時監看Windows與Fedora主機。其系統架構與IP位址,詳見圖3。
Server伺服器之IP 10.3.89.17。
遠端Windows主機Client A之IP 10.3.111.93。
遠端Linux主機Client B之IP 10.3.89.34。
其中Fedora主機作為Monitoring Server。
圖3:測試系統架構
以下安裝步驟主要分成幾項:先安裝Nagios於Monitoring Server,接著安裝Nagios Agent 於Windows主機上,再安裝Nagios Agent於Linux主機,最後分別於3部主機上,進行相關溝通設定,以完成監看需求。
1.3. 安裝Nagios伺服器
1.3.1. 確保系統相依套件
使用Nagios系統監看架構之安裝中,名為Nagios套件乃安裝Monitoring Server上,即本文採用的Fedora主機。而Nagios能否正常安裝與使用,其套件必須先存在於系統上,包含: Apache作為Web介面用途;GCC編譯器作為編譯Nagios套件原始碼用途;GD函式庫作為圖形顯示用途。而在Fedora系統中,以下列指令安裝套件:
表1 Nagios相依套件安裝
套件名稱 | 安裝指令 | Apache套件 | yum install httpd | Gcc編譯器 | yum install gcc | Glibc函式庫 | yum install glibc glibc-common | GD函式庫 | yum install gd gd-devel |
1.3.2. Nagios安裝
Nagios過程中,請依序執行以下步驟:
.建立Nagios帳號
轉換權限為root帳號
su –l
建立名為nagios的新帳號並設定密碼
/usr/sbin/useradd –m nagios
passwd nagios
建立名為nagcmd的新群組帳號,以允許外部指令可以經由Web介面傳送,
並將系統的nagios與apache帳號,加進此群組。指令如下:
/usr/sbin/groupadd nagcmd
/usr/sbin/usermod –a –G nagcmd nagios
/usr/sbin/usermod –a –G nagcmd apache
.下載Nagios原始檔與相關外掛附件(Plugins)
建立存放Nagios與Plugins的目錄,例如:
mkdir ~/downloads
cd ~/downloads
下載Nagios及其Plugins,目前最新穩定版本分別為3.0.6與1.4.13,指令如下:
wget http://osdn.dl.sourceforge.net/s ... nagios-3.0.6.tar.gz
wget http://osdn.dl.sourceforge.net/s ... ugins-1.4.13.tar.gz
.下載Nagios之NRPE addon
為了讓Nagios伺服器可以監看遠端Linux主機,需要額外安裝NRPE套件。
(被監看的Linux主機亦須安裝,詳如後述)。下載方式為:
wget http://osdn.dl.sourceforge.net/s ... os/nrpe-2.12.tar.gz
.編譯與安裝Nagios
解壓縮Nagios原始檔:
cd ~/downloads
tar xzf nagios-3.0.6.tar.gz
cd nagios-3.0.6
執行Nagios安裝設定程式,並提供nagios群組名稱nagcmd作為輸入參數:
./configure --with-command-group=nagcmd
編譯Nagios原始檔:
make all
分別安裝Nagios Binary程式、初始程序init script、設定範例檔及設定外部指令存放目錄之權限,
指令分別如下:
make install
make install-init
make install-config
make install-commandmode
.客製化設定值
Nagios安裝完成後,一併安裝的設定範例檔位於/usr/local/nagios/etc,一般而言可正常運作。
另/usr/local/nagios/etc/objects/contacts.cfg設定檔中,需將nagiosadmin改成實際接收訊息的Email帳號。詳見圖4。
圖4:變更Nagios訊息接收帳號
.設定Nagios Web介面
首先安裝Nagios之Web設定值到Apache conf.d目錄下:
make install-webconf
替Nagios之Web介面進行身分驗證保護,使用HTTP Basic Authentication方式:
htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
此代表將系統詢問的密碼,存放於/usr/local/nagios/etc/htpasswd.users,而使用此密碼的帳號
為nagiosadmin。詳見圖5。
圖5:設定Apache Basic Authentication密碼
接著請重新啟動Apache以套用新的設定值。
service httpd restart
.編譯與安裝Nagios之外掛附件(Plugins)
編譯與安裝Nagios之Plugins時,同樣進入下載目錄,並依照前述安裝Nagios之方式進行安裝:
cd ~/downloads
tar xzf nagios-plugins-1.4.13.tar.gz
cd nagios-plugins-1.4.13
編譯與安裝Nagios之Plugins。
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
.編譯與安裝NRPE
cd ~/downloads
tar xzf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure
make all
make install-plugin
.啟動Nagios
將Nagios服務登錄到系統服務列表中:
chkconfig add nagios
chkconfig nagios on
檢驗Nagios之設定值是否正確:
/usr/local/nagios/bin/nagios –v /usr/local/nagios/etc/nagios.cfg
詳見圖6。
圖6:檢查Nagios主設定檔正確性
之後請啟動Nagios。
service nagios start
.修改SELinux設定
Fedora作業系統存在SELinux (Security Enchanced Linux)機制,由於SELinux造成Nagios Web介面
”Internal Server Error”錯誤訊息。因此需要將SELinux之狀態改為Permissive mode,
首先檢查目前SELinux狀態:
getenforce
並將SELinux改為Permissive mode
setenforence 0
以上的方式僅套用於本次開機情況,若想將此設定設為永久,以避免重開機後未保留情況。
必須修改/etc/selinux/config並重開機。此外,如果不想或不適合變更SELinux模式情況下,
則可執行以下指令,讓Nagios在SELinux的Enforcing mode進行設定。
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/
.登入Nagios Web介面
此階段應可正常使用Nagios之Web介面。請使用瀏覽器登入下列URL:
http://localhost/nagios/
首先系統會要求輸入帳號/密碼,請輸入前面htpasswd所設定的密碼,詳見圖7。
圖7:Nagios Web介面登入
可看到Nagios首頁,詳見圖8。
圖8:Nagios Web介面首頁
.其他調整
最後檢查主機是否可接受HTTP連線,如是否使用本機防火牆阻擋連線,若阻擋則請重新設定允許連線。
1.4. 安裝Linux主機之Nagios Agent
有關Nagios監看Linux主機,常見方式為使用Nagios的NRPE套件協助,此外尚需要Nagios Plugins,
相關步驟依序如下:
.建立Nagios帳號
轉換權限為root帳號
su –l
建立名為nagios的新帳號並設定密碼
/usr/sbin/useradd –m nagios
passwd nagios
.下載NRPE與Nagios Plugins
目前最新版為2.12與1.4.13。指令如下:
wget http://osdn.dl.sourceforge.net/s ... os/nrpe-2.12.tar.gz
wget http://osdn.dl.sourceforge.net/s ... ugins-1.4.13.tar.gz
假設下載後存放的目錄為~/downloads。
.編譯與安裝Nagios Plugins
cd ~/downloads
tar xzf nagios-plugins-1.4.13.tar.gz
cd nagios-plugins-1.4.13
./configure --with-nagios-user=nagios --with-nagios-group=nagios
make
make install
nagios 3.3.1裝到這裡就可以了
.編譯與安裝NRPE
cd ~/downloads
tar xzf nrpe-2.12.tar.gz
cd nrpe-2.12
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
.設定NRPE為系統服務
如果無法編譯成功
yum -y install openssl-devel
–限定可連線之監看主機IP
修改/etc/xinetd.d/nrpe,限定僅有設定之Nagios監看主機。
如圖1所示的10.3.89.17,主要修改only_from設定值,將其改為:
only_from = 127.0.0.1 10.3.89.17
其中兩個IP以空白鍵區別。詳見圖12。
圖12:Xinetd NRPE設定
–指定NRPE欲使用之系統通訊埠
修改/etc/service,使NRPE可以接收監看主機的連線需求。
在此假定NRPE所用的通訊埠為TCP 5666,即增加下行於檔案中:
nrpe 5666/tcp # nrpe daemon
–啟動xinetd服務
service xinetd start
由於Fedora主機可能預設無安裝xinetd套件,所以系統出現無法辨識xinetd服務時,
請執行以下指令:
yum install xinetd
啟動服務
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
–檢查NRPE服務是否正常
/usr/local/nagios/libexec/check_nrpe -H localhost
若回應的訊息為NRPE及其版本資訊,即代表安裝成功。
.修改NRPE設定檔
NRPE主要設定檔為位於/usr/local/nagios/etc/nrpe.cfg,其中包含用來檢查的指令,
如下列為檢查使用者的check_users,與檢查負載的check_load指令。
-w代表Warning;-c代表Critical,分別表示訊息嚴重等級。如check_users。
若系統同時使用者達到5個,則送出Warning等級訊息;若達到10個,就送出Critical等級訊息。
詳見圖13。
圖13:NRPE設定檔(nrpe.cfg)設定
另外值得注意的是,有關nrpe.cfg內的指令,都是可以直接在終端機執行。若系統目前使用者到達6人
,則當執行nrpe.cfg內的check_users設定內容的話,將會出現Warning訊息。詳見圖14。
圖14:NRPE check_users指令展示
此外在command[xxxx]中,其中xxxx代表可透過chek_nrpe指令,呼叫相關檢查指令,請依序進行檢查:
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_users
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_load
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_hda1
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_zombie_procs
若回應預期訊息,代表功能正常;反之,回應找不到指令的錯誤訊息,代表在”-c”後,
所接的指令名稱有誤,或該指令名稱,對應/usr/local/nagios/etc/nrpe.cfg的設定值有誤,
請再檢查排除。
例如在check_hda1設定,由於NRPE預設是IDE介面硬碟機/dev/hda1,
假如系統實際使用的硬碟機,為SCSI介面的(/dev/sda1),
則請將/usr/local/nagios/etc/nrpe.cfg 的
command[check_hda1]=/usr/local/nagios/libexec/check_disk –w 20% -c 10% -p /dev/hda1
改為
command[check_sda1]=/usr/local/nagios/libexec/check_disk –w 20% -c 10% -p /dev/sda1
將/dev/hda1改為/dev/sda1。
另外command[check_hda1]改為command[check_sda1]僅為方便識別,可自行決定是否變更,
或改為通用名稱,如將hda1改為disk1。
1.5. Nagios伺服器與用戶端串連設定
1.5.1. Linux受監看主機連結設定
在Nagios伺服器與Linux主機用戶端的連結,採用NRPE進行資訊溝通。
當Nagios伺服器安裝NRPE後,即可使用check_nrpe指令測試,指令為:
/usr/local/nagios/libexec/check_nrpe –H 10.3.89.34
若順利回應NRPE V2.12訊息資訊,代表測試結果正常。
另亦可使用下列指令,檢查遠端Linux主機的使用者數量。
/usr/local/nagios/libexec/check_nrpe -H 10.3.89.34 -c check_users
修改/usr/local/nagios/etc/objects/commands.cfg,增加check_nrpe設定,詳見圖17。
圖17:commands設定檔設定
以類似設定Windows主機監看的方式,在/usr/local/nagios/etc/objects/增加名為linux.cfg的檔案,
詳如圖18。檔案內容與Windows主機相似。
須注意的是,在check_command後的設定值,check_nrpe!為固定的。
遠端被監看Linux主機/usr/local/nagios/etc/nrpe.cfg的檢查指令,如check_load與check_users。
host_name名稱,重複出現的地方,請務必設定相同。
address的IP,請設定遠端被監看Linux主機的IP位址。
圖18:linux.cfg設定檔設定
1.5.2. 檢查與啟動
請以下方式檢查NRPE設定是否正確:
/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
之後重新啟動Nagios,方式為:
service nagios restart
如果無錯誤出現,當再次檢視Nagios Web介面時,將出現圖19之畫面。
圖19:Nagios監看結果
可看出Service Detail選項中,出現3台主機,分別為Linux、Windows 2000與localhost,其中前2台分別為被監看的Linux與Windows主機名稱,以及分別在windows.cfg與linux.cfg所設定的host_name,而localhost則是Nagios安裝後,包含本機監看項目。在Linux主機項目的使用者數量,由於目前的使用者超過5人,所以顯示Status為WARNING。
最後關於Nagios操作,圖形化介面相當簡便,功能項目亦十分直覺,使用上不成問題,安裝完成後可自行嘗試使用。
3. 結語
本文所呈現的是,系統監看中有名的Nagios工具之安裝說明,所採用的架構為:1台Linux主機作為監看伺服器,對Windows與Linux 2台主機進行監看。文中簡介3台主機分別需要安裝與設定的項目,並且經過筆者實際測試。依文中步驟,應可正常完成簡易監看環境之建立。若文中有不足或讀者想進一步深入了解Nagios之額外應用,建議參考官方網站之參考手冊[4]、[5],筆者提到的許多設定,在官方手冊上亦可找到。
而在本文所介紹的架構,尚有可加強之部分,如針對安全性之增強,讀者可參考Nagios官方手冊,使用SSL或SSH加密方式,增加Nagios伺服器與遠端主機資訊傳遞之安全,或參考筆者前幾期技術專欄所提的 OpenVPN加密通道建立方式,同樣可增加傳遞資料的安全防護。最後感謝讀者花時間閱讀本期專欄,也期望本文對您有所幫助。
4. 參考資料
[1]Nagios官方網站, http://www.nagios.org/
[2]Nagios Monitoring Windows Machines,
http://nagios.sourceforge.net/docs/3_0/monitoring-windows.html
[3]Nagios Monitoring Linux/Unix Machines,
http://nagios.sourceforge.net/docs/3_0/monitoring-linux.html
[4]Nagios Official Document, http://nagios.sourceforge.net/docs/3_0/
[5]Nagios NRPE Official Document, http://nagios.sourceforge.net/docs/nrpe/NRPE.pdf
|
|
|