TShopping

 找回密碼
 註冊
搜索
查看: 39323|回復: 52

[教學] Nagios系統監看工具安裝教學 (3.3.1) CentOS 6也可用

    [複製鏈接]
發表於 2009-5-23 18:33:01 | 顯示全部樓層 |閱讀模式
 
Push to Facebook Push to Plurk Push to Twitter 
最新版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.jpg
  圖1:使用Nagios監看Windows系統狀態示意
  資料來源:[2]
  至於Nagios提供給Linux主機的偵測Agent,則稱為NRPE,其架構示意圖與Windows主機相似,詳見圖2。
   2.jpg
  圖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.jpg
  圖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.jpg
  圖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.jpg
  圖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.jpg
  圖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.jpg
  圖7:Nagios Web介面登入
  可看到Nagios首頁,詳見圖8。
   8.jpg
  圖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。
   9.jpg
  圖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。
   10.jpg
  圖13:NRPE設定檔(nrpe.cfg)設定
  另外值得注意的是,有關nrpe.cfg內的指令,都是可以直接在終端機執行。若系統目前使用者到達6人
  ,則當執行nrpe.cfg內的check_users設定內容的話,將會出現Warning訊息。詳見圖14。
   11.jpg
  圖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。
   12.jpg
  圖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位址。
   13.jpg
  圖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之畫面。
   14.jpg
  圖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


 

臉書網友討論
發表於 2010-3-3 12:41:51 | 顯示全部樓層
對於系統集中管理是一個很好的工具

版主招募中

發表於 2010-3-21 14:23:22 | 顯示全部樓層
感謝大大的無私奉獻


發表於 2010-3-25 15:38:15 | 顯示全部樓層
真是受益良多謝謝您的無私分享


發表於 2010-3-29 16:20:27 | 顯示全部樓層
謝謝大大無私的提供知識!`~~~~~


發表於 2010-3-31 18:47:00 | 顯示全部樓層
THANK YOU FOR YOUR HELP


發表於 2010-4-1 10:40:23 | 顯示全部樓層
寫的真詳細,大推啊
不知道是不是書本缺貨,我都買不到
板大的文章解救了我


 樓主| 發表於 2010-4-2 12:37:44 | 顯示全部樓層
回復 8# phon4825

書是舊版的

我也買了一本

不過看不太懂

後來自己看官方的原文

才搞定的


發表於 2010-4-6 20:34:55 | 顯示全部樓層
學習中 :loveliness: :loveliness: :loveliness: !!!


發表於 2010-4-11 23:44:05 | 顯示全部樓層
謝謝分享
謝謝分享
謝謝分享


您需要登錄後才可以回帖 登錄 | 註冊 |

本版積分規則



Archiver|手機版|小黑屋|免責聲明|TShopping

GMT+8, 2016-12-5 16:39 , Processed in 0.074904 second(s), 25 queries .

本論壇言論純屬發表者個人意見,與 TShopping綜合論壇 立場無關 如有意見侵犯了您的權益 請寫信聯絡我們。

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表