自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Nagios 監(jiān)控系統(tǒng)架設全攻略

運維 系統(tǒng)運維
Nagios 是一款免費的開源 IT 基礎設施監(jiān)控系統(tǒng),其功能強大,靈活性強,能有效監(jiān)控 Windows 、Linux、VMware 和 Unix 主機狀態(tài),交換機、路由器等網(wǎng)絡設置等。 結構簡單,可維護性強,越來越受中小企業(yè)青睞,以及運維和管理人員的使用。

Nagios 全名為(Nagios Ain’t Goona Insist on Saintood),最初項目名字是 NetSaint。它是一款免費的開源 IT 基礎設施監(jiān)控系統(tǒng),其功能強大,靈活性強,能有效監(jiān)控 Windows 、Linux、VMware 和 Unix 主機狀態(tài),交換機、路由器等網(wǎng)絡設置等。一旦主機或服務狀態(tài)出現(xiàn)異常時,會發(fā)出郵件或短信報警第一時間通知 IT 運營人員,在狀態(tài)恢復后發(fā)出正常的郵件或短信通知。Nagios 結構簡單,可維護性強,越來越受中小企業(yè)青睞,以及運維和管理人員的使用。同時提供一個可選的基于瀏覽器的 Web 界面,方便管理人員查看系統(tǒng)的運行狀態(tài),網(wǎng)絡狀態(tài)、服務狀態(tài)、日志信息,以及其他異常現(xiàn)象。

Nagios 結構說明

Nagios 結構上來說, 可分為核心和插件兩個部分。Nagios 的核心部分只提供了很少的監(jiān)控功能,因此要搭建一個完善的 IT 監(jiān)控管理系統(tǒng),用戶還需要在 Nagios 服務器安裝相應的插件,插件可以從 Nagios 官方網(wǎng)站下載 http://www.nagios.org/,也可以根據(jù)實際要求自己編寫所需的插件。

Nagios 可實現(xiàn)的功能特性

  • 監(jiān)控網(wǎng)絡服務(SMTP、POP3、HTTP、FTP、PING 等);
  • 監(jiān)控本機及遠程主機資源(CPU 負荷、磁盤利用率、進程 等);
  • 允許用戶編寫自己的插件來監(jiān)控特定的服務,方便地擴展自己服務的檢測方法,支持多種開發(fā)語言(Shell、Perl、Python、PHP 等)
  • 具備定義網(wǎng)絡分層結構的能力,用"parent"主機定義來表達網(wǎng)絡主機間的關系,這種關系可被用來發(fā)現(xiàn)和明晰主機宕機或不可達狀態(tài);
  • 當服務或主機問題產(chǎn)生與解決時將告警發(fā)送給聯(lián)系人(通過 EMail、短信、用戶定義方式);
  • 可以支持并實現(xiàn)對主機的冗余監(jiān)控;
  • 可用 WEB 界面用于查看當前的網(wǎng)絡狀態(tài)、通知和故障歷史、日志文件等;

Nagios 監(jiān)控實現(xiàn)原理

Nagios 軟件需安裝在一臺獨立的服務器上運行,這臺服務器稱為監(jiān)控中心,監(jiān)控中心服務器可以采用 Linux 或 Unix 操作系統(tǒng);每一臺被監(jiān)視的硬件主機或服務都運行一個與監(jiān)控中心服務器進行通信的 Nagios 軟件后臺程序,也可以理解為 Agent 或插件均可。監(jiān)控中心服務器讀取配置文件中的指令與遠程的守護程序進行通信,并且指示遠程的守護程序進行必要的檢查。雖然 Nagios 軟件必須在 Linux 或 Unix 操作系統(tǒng)上運行,但是遠程被監(jiān)控的機器可以是任何能夠與其進行通信的主機,根據(jù)遠程主機返回的應答,Naigos 將依據(jù)配置進行回應;接著 Nagios 將通過本地的機器進行測試,如果檢測返回值不正確,Nagios 將通過一種或多種方式報警;具體原理如下圖所示:

圖 1. Nagios 監(jiān)控原理圖

Nagios 安裝與配置

  • Nagios 安裝

安裝前的準備工作

清單 1. Nagios 安裝前準備操作

  1. # wget http://apt.sw.be/redhat/el6/en/x86_64/RPMS.dag/\ 
  2. rpmforge-release-0.3.6-1.el6.rf.x86_64.rpm 
  3. # rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt 
  4. # rpm -Uvh rpmforge-release-0.3.6-1.el5.rf.x86.rpm 

安裝相關軟件包

清單 2. 安裝軟件包

  1. #yum install gd fontconfig-devel libjpeg-devel libpng-devel gd-devel perl-GD \ 
  2. openssl-devel php mailx postfix cpp gcc gcc-c++ libstdc++ glib2-devel  
  3. libtoul-ltdl-devel 

創(chuàng)建用戶和組

清單 3. 創(chuàng)建用戶和組

  1. #groupadd -g 6000 nagios 
  2. #groupadd -g 6001 nagcmd 
  3. #useradd -u 6000 -g nagios -G nagcmd -d /home/nagios -c "Nagios Admin" nagios 

編譯安裝 Nagios

清單 4. 編譯安裝 Nagios

  1. # tar xzfv nagios-3.2.0.tar.gz 
  2. # cd nagios-3.2.0 
  3. # ./configure --prefix=/usr/local/nagios --with-nagios-user=nagios \ 
  4. --with-nagios-group=nagios --with-command-user=nagios 
  5. --with-command-group=nagcmd --enable-event-broker --enable-nanosleep  
  6. --enable-embedded-perl --with-perlcache     
  7. #make all            
  8. #make install         
  9. #make install-init      
  10. #make install-commandmode   
  11. #make install-webconf    
  12. #make install-config   

安裝與配置 Apache

由于 Nagios 提供了 Web 監(jiān)控界面,可通過 Web 界面的方式可以清晰地看到被監(jiān)控的主機和資源的運行狀態(tài)等,因此安裝需要安裝 Apache 服務。 同時配置 Web 監(jiān)控界面是需要 PHP 模塊的支持,這里均選用當前系統(tǒng)自帶軟件包即可,也可通過源碼包編譯安裝。

(1)安裝 Apache 和 php

  1. #yum install httpd php* 

(2)配置 Apache

在 Apache 配置文件件/etc/httpd/conf/httpd.conf 中找到:

  1. DirectoryIndex index.html index.html.var 

將其修改為:

  1. DirectoryIndex index.html index.php 

再在 Apache 配置文件下增加如下內容:

  1. AddType application/x-httpd-php .php 

以上兩處主要用于增加 php 格式的支持。同時為了安全,需要經(jīng)過授權才能訪問 Nagios 的 Web 監(jiān)控界面,所以需要在配置文件/etc/httpd/conf/http.conf 或 /etc/httpd/conf.d/nagios.conf 增加訪問控制配置,若定義在 httpd.conf 文件中,將下圖的語句加入到 httpd.conf 文件最后面即可。

圖 2. Nagios 訪問控制設置

(3)設置用戶訪問控制

  1. # htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin 

設置權限且重啟 Apache

清單 5. 權限設定與啟動服務

  1. #chown nagios:nagcmd /usr/local/nagios/etc/htpasswd.users 
  2. # usermod -a -G nagios,nagcmd apache 
  3. # /etc/init.d/httpd restart  

安裝 Postfix 郵件服務

Nagios 監(jiān)控平臺支持郵件報警功能,所以需要安裝郵件服務。這里采用互聯(lián)網(wǎng)比較主流的 MTA —Postfix. 也可根據(jù)自己的生產(chǎn)環(huán)境去定義, 如: Sendmail、Qmail 等。由于 Nagios 只用到了 Postfix 的郵件發(fā)送功能,所以這里不需要對 Postfix 郵件服務作過多配置,安裝 Postfix 套件,啟動服務并在下次服務器重啟自動加載即可。具體如下命令:

清單 6. Postifx 安裝與配置

  1. #yum install postifx 
  2. #chkconfig postfix on; /etc/init.d/postfix restart 

安裝 Nagios 插件

Naigos 提供的各種監(jiān)控功能基本上是通過插件來完成的,而 Nagios 的核心指提供了很少的功能,因此安裝插件是非常有必要的。Nagios 官網(wǎng)提供了很多不同版塊的插件應用,同時插件版本與 Nagios 版本也沒有什么關聯(lián),如果支持漢化功能,則需要找到與之匹配的漢化軟件包,否則會導致部分功能不能完成運行,這里保持默認英文,如下面的安裝細節(jié):

清單 7. Nagios 插件安裝

  1. # wget http://ovh.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.14.tar.gz 
  2. # tar xzf nagios-plugins-1.4.14.tar.gz  
  3. # cd nagios-plugins-1.4.14 
  4. # ./configure --with-nagios-user=nagios --with-nagios-group=nagios  \ 
  5. --with-command-user=nagios --with-command-group=nagcmd \  
  6. --prefix=/usr/local/nagios 
  7. # make all 
  8. # make install 
  9. # chmod 755 /usr/local/nagios 

這樣 Nagios 的插件就安裝完成了,通過查看 Nagios 主程序目錄,/usr/local/nagios/linexec 目錄下可以看到很多的外部插件執(zhí)行文件,如下圖:

圖 3. Nagios 插件腳本示例

  • 重啟 Nagios 服務

清單 8. Nagios 與 Apache 服務啟動與設定

  1. #/etc/init.d/nagios restart 
  2. #/etc/init.d/httpd restart 
  3. #chkconfig httpd on; chkconfig naigos on 
  • 禁用 Selinux 和 iptables

Selinux 和 Iptables 是 Linux 系統(tǒng)提供的安全防護機制,主要用來防護 Linux 系統(tǒng)下的服務或應用程序不受外界安全攻擊等。一般企業(yè)考慮到 Nagios 監(jiān)控平臺的安全可靠性,都會采用硬件的防火墻或其他安全設備來對服務器進行防護。同時此部分不是此平臺描述的重點, 這里就不作過多的闡述。#p#

Nagios 監(jiān)控平臺訪問

到目前為之 Nagios 基本安裝成功,若要投入生產(chǎn)環(huán)境,還需要安裝其他相應的插件及配置,否則是無法提供相應的監(jiān)控等功能。 通過瀏覽器,在地址欄輸入: http://IPAddress/nagios, 輸入用戶名及密碼即可訪問 Naigos 登錄界面。

圖 4. Nagios 登錄界面

  • Nagios 配置

Nagios 目錄與相關配置文件說明

Nagios 安裝完成后,/usr/local/nagios/目錄下會生成 nagios 相關目錄及配置文件,默認的的配置文件在/usr/local/nagios/etc 目錄下。關于詳細的描述,見下表:

表 1. Nagios 相關目錄的名稱及用途

表 2. 配置文件的作用概述

Nagios 配置文件間的關聯(lián)

Nagios 的配置過程涉及幾個定義有:主機、主機組、服務、服務組、聯(lián)系人、聯(lián)系人組、監(jiān)控時間和監(jiān)控命令等,從這些定義可以看出,Nagios 的各個配置文件之間是互為關聯(lián)、彼此引用的。成功配置一臺 Nagios 監(jiān)控系統(tǒng),需要掌握每個配置文件之間依賴與被依賴的關系,可從下面四個步驟來入手,第一步:定義哪些主機、主機組、服務和服務組,第二步:要定義這個監(jiān)控要通過什么命令實現(xiàn),第三步:要定義監(jiān)控的時間段,第四步:要定義主機或服務出現(xiàn)問題時要通知的聯(lián)系人和 聯(lián)系人組;強烈建議依據(jù)以上順序對 Nagios 系統(tǒng)進行相關配置。

  • Nagios 配置設定

Nagios 安裝成功后,會在/usr/loca/nagios 目下生成相應的主機,服務、命令、模板等配置文件,同時也可看到之前設置的 Nagios 授權目錄認證文件 htpasswed.users,而 Object 目錄是存放一些配置文件模板,主要用于定義 Nagios 對象,具體如下圖:

圖 5. Nagios 配置目錄與文件

圖 6. Nagios 對象模板文件

  • 自定義監(jiān)控目錄

默認情況下 nagios.cfg 會啟用一些對象配置文件如:comands.cfg、 contacts.cfg localhost.cfg 、contacts.cfg 、windows.cfg 等,為了更好的對 Nagios 平臺的管理與日后的維護,這里采用了自定義目錄在/usr/local/nagios/etc/目錄下創(chuàng)建一個 monitor 文件夾,用來保存所管理被監(jiān)控的對象。同時注釋 nagios.cfg 配置文件默認定義的對象配置文件,并在 nagios.cfg 文件增加一行:cfg_dir=/usr/local/nagios/etc/monitor 即可, 如下圖:

圖 7. Nagios 啟用自定義目錄

Nagios 的配置大多是對監(jiān)控對象配置文件進行修改配置,這里需復制了 objects 目錄下的所有對象配置文件模板,同時在 monitor 文件下創(chuàng)建了獨立的配置文件 hosts.cfg 和 service.cfg 來定義主機和服務,至于聯(lián)系人和監(jiān)控的時間段這里保持默認配置。 如下圖:

 

圖 8. 自定義目錄下對象配置文件

下面主要描述下此平臺架設相關的幾個主要配置文件具體含義,分別為:templates.cfg、hosts.cf、services.cfg.

templates.cfg 文件

表 3. 默認模板配置文件

  1. define contact{  
  2. name generic-contact #聯(lián)系人名稱  
  3. service_notification_period 24x7 #當服務出現(xiàn)異常時,發(fā)送通知的時間段,時間段是 7x24 小時  
  4. host_notification_period 24x7 #當主機出現(xiàn)異常時,發(fā)送通知的時間段,時間段是 7x24 小時 
  5. service_notification_options w,u,c,r #這個定義的是“通知可以被發(fā)出的情況”。w 即 warning,表示警告狀態(tài),u 即 unknown,表示不明狀態(tài),c 即 criticle,表示緊急狀態(tài),r 即 recover,表示恢復狀態(tài)  
  6. host_notification_options d,u,r #定義主機在什么狀態(tài)下需要發(fā)送通知給使用者,d 即 down,表示宕機狀態(tài),u 即 unreachable,表示不可到達狀態(tài),r 即 recovery,表示重新恢復狀態(tài)。  
  7. service_notification_commands notify-service-by-email #服務故障時,發(fā)送通知的方式,可以是郵件和短信,這里發(fā)送的方式是郵件,其中“notify-service-by-email”在 commands.cfg 文件中定義。  
  8. host_notification_commands notify-host-by-email #主機故障時,發(fā)送通知的方式,可以是郵件和短信,這里發(fā)送的方式是郵件,其中“notify-host-by-email”在 commands.cfg 文件中定義。 
  9. }  
  10. define host{  
  11. name linux-server #主機名稱  
  12. use generic-host #use 表示引用,也就是將主機 generic-host 的所有屬性引用到 linux-server 中來,在 nagios 配置中,很多情況下會用到引用。  
  13. check_period 24x7 #這里的 check_period 告訴 nagios 檢查主機的時間段  
  14. check_interval 5 #nagios 對主機的檢查時間間隔,這里是 5 分鐘。  
  15. retry_interval 1 #重試檢查時間間隔,單位是分鐘。  
  16. max_check_attempts 10 #nagios 對主機的最大檢查次數(shù), check_command check-host-alive #指定檢查主機狀態(tài)的命令,其中“check-host-alive”在 commands.cfg 文件中定義。  
  17. notification_period workhours #主機故障時,發(fā)送通知的時間范圍,其中“workhours”在 timeperiods.cfg 中進行了定義,下面會陸續(xù)講到。  
  18. notification_interval 30 #在主機出現(xiàn)異常后,故障一直沒有解決,nagios 再次對使用者發(fā)出通知的時間。單位是分鐘 
  19. notification_options d,u,r #定義主機在什么狀態(tài)下可以發(fā)送通知給使用者,d 即 down,表示宕機狀態(tài),u 即 unreachable,表示不可到達狀態(tài),r 即 recovery,表示重新恢復狀態(tài)。  
  20. contact_groups admins #指定聯(lián)系人組,這個“admins”在 contacts.cfg 文件中定義。  
  21. define service{ 
  22. name local-service #定義一個服務名稱  
  23. use generic-service #引用服務 local-service 的屬性信息,local-service 主機在 templates.cfg 文件中進行了定義 
  24. max_check_attempts 4 #最大檢測 4 次,為了確定服務最終狀態(tài)  
  25. normal_check_interval 5 #每 5 分鐘檢測一次 
  26. retry_check_interval 1 #每 1 分鐘重新檢測服務,最終的狀態(tài)能被確定  

host.cfg 文件

此文件默認情況下不存在,需要手動創(chuàng)建。hosts.cfg 主要用來指定被監(jiān)控的主機地址及相關屬性信息。配置如下表:

表 4. 定義主機配置實例

  1. define host { 
  2. use linux-server #引用主機 linux-server 的屬性信息,linux-server 主機在 templates.cfg 文件中進行了定義。 
  3. host_name DirHost162 #被監(jiān)控主機名 
  4. alias RHEL6.3_CSDA-FVT-Server #被監(jiān)控主機別名 
  5. address 192.168.1.162 ##被監(jiān)控主機 IP 地址 
  6. ........ 

services.cfg 文件

此文件在默認情況下也不存在,需要手動創(chuàng)建。services.cfg 文件主要用于定義監(jiān)控的服務和主機資源,例如監(jiān)控 HTTP 服務、FTP 服務、主機磁盤空間、主機系統(tǒng)負載等。

表 5. 定義服務配置

  1. #Define DirHost162 
  2. define service{ 
  3. use local-service #引用服務 local-service 的屬性信息,local-service 主機在 templates.cfg 文件中進行了定義。 
  4. host_name DirHost162 #被監(jiān)控主機名 
  5. service_description SSH #監(jiān)控的服務 
  6. check_command check_ssh # nagios 插件監(jiān)控指令 
  7. define service{ 
  8. use local-service,services-pnp 
  9. host_name DirHost162 
  10. service_description SSHD 
  11. check_command check_tcp!22 # 使用的檢測命令, 同時多個參數(shù)匹配用 “!” 分隔,如:check_ping!100.0,20%!500.0,60% 
  12. ……. 

#p#

Nagios 運行與維護

1.驗證 Nagios 配置文件的正確性

  1. #/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 

Nagios 提供的這個驗證功能非常有用,如果你的配置文件有語法或配置錯誤,它會顯示出錯的配置文件及在文件中哪一行。檢測結果中的報警信息通常是可以忽略的,因為一般只是建議性的提示。

2.利用別名簡化 Nagios 配置檢測機制

在當前用戶下的.bashrc 文件增加一行 alias nagioscheck 語句,如下表:

圖 9. 簡化 Nagios 配置檢測機制

  1. # source /root/.bashrc 

3.啟動 Nagios 服務

清單 9. 通過初始化腳本啟動 Nagios

  1. #/etc/init.d/nagios start|restart|stop 或者 service nagios start 

清單 10. 手工方式啟動 Nagios

通過 Nagios 命令的-d 參數(shù)來啟動 nagios 過護進程。

  1. #/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg 

Nagios 性能分析圖標的作用

Nagios 對服務或主機監(jiān)控的是一個瞬時狀態(tài),有時候系統(tǒng)管理員需要了解主機在一段時間內的性能及服務的響應狀態(tài),并且形成圖表,這就需要通過查看日志數(shù)據(jù)來分析。但是這種方式不僅煩瑣,而且抽象。為了能更直觀的查看主機運行狀態(tài),這里采用 PNP 來實現(xiàn)此功能。PNP 是一個小巧的開源軟件包,它是基于 PHP 和 Perl 腳本編寫,PNP 可以利用 rrdtoul 工具將 Nagios 采集的數(shù)據(jù)繪制成圖表,然后顯示主機或者服務在一段時間內運行的狀況。以下詳細介紹 PNP 安裝配置流程:

  • 安裝 RDDtoul 工具

清單 11. 編譯安裝 RDDtoul

  1. #tar zxvf rrdtoul-1.4.5.tar.gz 
  2. #cd rrdtoul-1.4.5 
  3. #./configure --prefix=/usr/local/rrdtoul 
  4. #make 
  5. #make install 
  • 安裝 PNP

清單 12. 編譯安裝 PNP

  1. #tar zxvf pnp-0.4.13.tar.gz 
  2. #cd pnp-0.4.13 
  3. #./configure\ 
  4. --with-nagios-user=nagios \ 
  5. --with-nagios-group=nagios \ 
  6. --with-rrdtoul=/usr/local/rrdtoul/bin/rrdtoul  \ 
  7. --with-perfdata-dir=/usr/local/nagios/share/perfdata 
  8. #make all 
  9. #make install 
  10. #make install-config 
  11. #make install-init 

1. PNP 配置文件定義

在 PNP 安裝完成后, 默認安裝目錄下回自帶相應的模板配置文件, 因此只需要參考相應的模板文件進行修改即可,

清單 13. PNP 配置文件定義

  1. # cd /usr/local/nagios/etc/pnp/ 
  2. # cp process_perfdata.cfg-sample process_perfdata.cfg 
  3. # cp npcd.cfg-sample npcd.cfg 
  4. # cp rra.cfg-sample rra.cfg 
  5. # chown -R nagios:nagios /usr/local/nagios/etc/pnp 

2.修改 process_perfdata.cfg 文件

打開 Nagios 下的 process_perfdata.cfg 文件,修改相關內容。可從下圖的注釋信息了解到

將數(shù)字 0 變更為 2 是開啟了日志的調試功能,操作如下:

圖 10. 開啟日志調試功能

3.修改 Nagios 相關配置文件

  • 增加小太陽圖標

修改 templates.cfg,增加一個定義 PNP 的 host 和 service,詳細見下圖 :

圖 11. PNP 配置與設定

  • 修改 nagios.cfg

如果想讓 nagios 將數(shù)據(jù)輸出,首先要修改 nagios 的主配置文件 nagios.cfg,找到如下幾項,如有注釋的將其去掉。修改后的信息如下:

清單 14. 增加 nagios 數(shù)據(jù)輸出設置

  1. #vim /usr/local/nagios/etc/nagios.cfg 
  2. process_performance_data=1 
  3. host_perfdata_command=process-host-perfdata 
  4. service_perfdata_command=process-service-perfdata 
  • 修改 commands.cfg

process-host-perfdata 和 process-service-perfdata 指令聲明了 nagios 輸出哪些值到輸出文件中。 不過這些定義相對簡單,而 PNP 提供了一個 Perl 腳本,非常詳細地定義了一個輸出數(shù)據(jù)的方法,process_perfdata.pl 其實是 PNP 自帶的一個腳本,這個腳本在 PNP 安裝完成后會自動生成。因此,可以將 process-host-perfdata 和 process-service-perfdata 指令中對應的執(zhí)行命令的內容替換成此腳本。增加下圖的內容:

圖 12. 在 commands.cfg 文件中增加性能圖片配置

  • 修改 hosts.cfg 與 services.cfg

將 hosts-pnp 和 services-pnp 引用到 hosts.cfg 和 services.cfg 中,修改后的 hosts.cfg 內容如圖 13 和圖 14 所示:

圖 13. 在 hosts.cfg 文件中增加性能圖片配置

圖 14. 在 services.cfg 文件中增加性能圖片配置

驗證性能分析圖標功能

訪問 nagios 管理界面,點擊查看哪臺主機小太陽的圖標,即可看到此主機的狀態(tài)信息,這里點擊的是 DirHost162 主機,詳細如圖 15 和圖 16 所示:

圖 15. 被監(jiān)控主機管理界面

 

圖 16. 性能圖標分析示意圖

#p#

利用 NRPE 擴展 Nagios 功能

NRPE 是 Nagios 的一個功能擴展,它可在遠程 Linux 和 UNIX 主機上執(zhí)行插件程序。通過在遠程服務器上安裝 NRPE 構件及 Nagios 插件程序來向 Nagios 監(jiān)控平臺提供該服務器的一些本地情況,如 CPU 負載、內存使用、硬盤使用,服務等。這里將 Nagios 監(jiān)控平臺稱為 Nagios 服務器 端,而將遠程被監(jiān)控的服務器稱為 Nagios 客戶端。

下圖為 NRPE 構件監(jiān)控遠程主機本地信息的運行原理: 

圖 17. 監(jiān)控遠程主機原理圖

NRPE 組成部分與檢測類型

NRPE 總共由兩部分組成:

  • check_nrpe 插件,位于監(jiān)控主機上
  • NRPE daemon,運行在遠程被監(jiān)控的 Linux 主機上

當監(jiān)控遠程 Linux/UNIX 主機服務或資源時,工作流程如下:

  • nagios 會運行 check_nrpe 這個插件,并且會告訴它需要檢查什么;
  • check_nrpe 插件會連接到遠程的 NRPE daemon,所用的方式是 SSL;
  • NRPE daemon 會運行相應的 Nagios 插件來執(zhí)行檢查動作;
  • NPRE daemon 將檢查的結果返回給 check_nrpe 插件,插件將其遞交給 Nagios 做處理。
  • NRPE daemon 需要 Nagios 插件安裝在遠程的 Linux 主機上,否則 daemon 不能做任何的監(jiān)控。

NRPE 的檢測類型分為兩種:

直接檢測:檢測的對象是運行 NRPE 的那臺 Linux 主機的本地資源,原理如下:

圖 18. 直接檢測結構圖

直接使用 NRPE 插件監(jiān)控遠程 Linux/UNIX 主機的本地或者私有資源;如 CPU 負載、內存使用、SWAP 空間使用、硬盤等運行狀況。

間接檢測:當運行 Nagios 的監(jiān)控主機無法訪問到某臺被監(jiān)控主機,但是運行 NRPE 的機器可以訪問得到的時候,運行 NRPE 的主機就充當一個中間代理,將監(jiān)控請求發(fā)送到被監(jiān)控對象上。

圖 19. 間接檢測結構圖

在服務器端安裝 NRPE 安裝

清單 15. 服務器安裝 NRPE

  1. # cd /usr/local/src/ 
  2. # tar zxvf nrpe-2.12.tar.gz  
  3. # cd nrpe-2.12 
  4. # ./configure && make all 
  5. # make install-plugin 
  6. # make install-daemon 
  7. # make install-daemon-config 
  • 修改命令定義文件

由于在 Nagios 命令定義文件 commands.cfg 沒有 check_nrpe 命令, 因此需要對此文件進行修改與定義,配置細節(jié)如下圖:

圖 20. 在 commands.cfg 文件中增加 NRPE 配置

  • 定義被監(jiān)控主機

在被監(jiān)控或遠程主機上增加 check_nrpe 的相關配置,由于 hosts.cfg 已定義了相應的主機,所以這里編輯文件 Nagios 服務器上的 services.cfg 文件即可:

  1. #vim /usr/local/nagios/etc/monitor/services.cfg 

圖 21. 在被監(jiān)控主機,增加 NRPE 指令

  • 查看配置文件是否正確

清單 16. 服務器安裝 NRPE

  1. # nagioscheck 
  • 重新加載配置文件

清單 17. Ngaios 配置加載

  1. # /etc/init.d/nagios reload 

在 Linux 客戶端安裝 NRPE 安裝

  • 安裝 Nagios 插件 nagios-plugin

添加 nagios 用戶名,且不允許 nagios 用戶登錄, 此用戶用于與 Nagios 服務器通信所用。

清單 18. 客戶端安裝 nagios-plugin

  1. # useradd -s /sbin/nulgin nagios 
  2. # tar -zxvf nagios-plugins-1.4.14.tar.gz 
  3. # cd nagios-plugins-1.4.14 
  4. #./configure 
  5. # make && make install 
  • 安裝 NRPE

在 Linux 客戶端安裝 nrpe 程序包,根據(jù)編譯提示向導完成安裝操作。在安裝的過程中會看到 NRPE 的端口為 5666,且可通過 Xinetd 服務來控制 nrpe 進程,具體實現(xiàn)步驟如下:

清單 19. 客戶端安裝 NRPE

  1. #tar zxvf tar zxvf nrpe-2.12.tar.gz 
  2. # cd nrpe-2.12 
  3. #./configure 
  4. #make all 
  5. #make install-plugin 
  6. #make install-daemon 
  7. #make install-daemon-config 
  8. #make install-xinetd 
  9. #chown -R nagios:nagios /usr/local/nagios/ 
  • 配置 NRPE

定義被監(jiān)控的 Linux 主機的對象,監(jiān)控此主機的 CPU 負載、登錄用戶數(shù)、磁盤分區(qū)、進程、swap 使用情況等,編輯/usr/local/nagios/etc/nrpe.cfg 文件, 內容如下示例:

清單 20. NRPE 配置與設定

  1. command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10 
  2. command[check_load]=/usr/local/nagios/libexec/check_load -w 30,25,20 -c 60,55,40 
  3. command[check_sda3]=/usr/local/nagios/libexec/check_disk -w 15% -c 8% -p /dev/sda3 
  4. command[check_vg01]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/vg01 
  5. command[check_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z 
  6. command[check_swap_1]=/usr/local/nagios/libexec/check_swap -w 20 -c 10 
  • 定義 Xinetd 服務支持 nrpe

這里只需要修改 only_from 項,增加 Ngaios 服務的地址即可,這樣一來服務器與客戶端就可進行 nrpe 會話,監(jiān)控到 Linux 客戶端相關信息,被監(jiān)控端也更加容易維護管理,見下圖:

  1. #vim /etc/xinetd.d/nrpe 

圖 22. 定義 Xinetd 服務支持 nrpe

  • 定義服務端口

在 Linux 客戶端"/etc/services" 文件增加一行:

  1. nrpe            5666/tcp                #Naigos_Client 
  • 測試 NRPE

由于 NRPE 相應的插件已經(jīng)安裝成功, 這里使用 check_nrpe 命令來驗證是否 nrpe 是否正常運行,如果執(zhí)行以下命令能夠顯示 NRPE 的具體版本信息,則表示 nrpe 運行正常,加載重啟 xinetd 服務即可。

清單 21. NRPE 功能測試

  1. #/usr/local/nagios/libexec/check_nrpe -H localhost 
  2. NRPE v2.12  
  3. #/etc/init.d/xinetd restart 

#p#

Nagios 管理平臺界面介紹

通過上面所有的軟件及插件的安裝與配置,Nagios 監(jiān)控系統(tǒng)架構成功的完成了;若想進一步擴展,如監(jiān)控 Windows 平臺,則需要在 Windowns 系統(tǒng)安裝 NSClient 軟件,并在 Nagios 服務器定義 windows.cfg 等文件,VMware 則需要 Nagios 官網(wǎng)下載相應的插件及模塊文件,并在 Nagios 服務器編輯 command.cfg、hosts.cfg、services.cfg 文件,這里不過多的闡述,可分別參照以下表 6 和表 7 方法來進行:

  • Window 平臺
  1. #vim /usr/local/nagios/etc/monitor/windows.cfg 

表 6. Windows 平臺配置

  1. define host{ 
  2. use windows-server,hosts-pnp  
  3. host_name Windowns Server 2003_192  
  4. alias Remote win2003 192  
  5. address 192.168.1.192  
  6. define service{ 
  7. use generic-service,services-pnp 
  8. host_name Windowns Server 2003_192 
  9. service_description NSClient++ Version 
  10. check_command check_nt!CLIENTVERSION 
  11. } } 
  12. ……… 
  • VMware 平臺
  1. # vim/usr/local/nagios/etc/monitor/commands.cfg 

表 7. VMware 平臺配置

  1. define command{ 
  2. command_name check_esx3_host_net_usage 
  3. command_line $USER1$/check_esx3 -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l net -s usage -w $ARG3$ -c $ARG4$ 
  4. define command{ 
  5. command_name check_esx3_host_runtime_issues 
  6. command_line $USER1$/check_esx3 -H $HOSTADDRESS$ -u $ARG1$ -p $ARG2$ -l runtime -s issues 
  7. …… 
  • 當前狀態(tài)界面介紹

通過瀏覽器訪問 Nagios 服務器,從當前頁面可以看到當前主機和服務的健康狀態(tài),網(wǎng)絡運行情況,以及服務與主機的檢測時間等,如下圖 15,可以看到我的 Nagios 服務器有一臺服務器處于宕機狀態(tài)。

圖 23. Nagios 當前狀態(tài)界面

系統(tǒng)主機界面介紹

點擊 Hosts 標簽,可以看到 Nagios 服務器監(jiān)控多少臺主機狀態(tài)及當前主機的活躍狀態(tài),從下面圖示可以看到監(jiān)控的主機類型有,Windwos,Linux,Switch,F(xiàn)C-Swith,Storage 等,若想進一步了解每臺主機的服務,系統(tǒng)負載等被監(jiān)控的對象,可以直接點擊某個主機,也可點擊小太陽圖標來查看當前被監(jiān)控的主機的生成的圖表信息。

圖 24. 所有被監(jiān)控主機界面

下圖是主機組頁面,可看到 Nagios 服務器將相對應的主機組或監(jiān)控的對象進行了分組定義,同時可以具體看到當前總共有多少臺主機,活躍的主機,服務的健康狀態(tài)等等。

圖 25. 主機組和服務組界面

  • 報告界面介紹

圖 26. 事件報告管理界面

圖 26,主要是記錄一些事件信息,記錄某臺主機所監(jiān)控對象的狀態(tài),若超出自己定義的配置,則會提示一般警告或嚴重告警信息,一旦主機恢復則自動告知用戶當前主機的狀態(tài):

同時可以將事件信息以郵件的方式告知聯(lián)系人,讓其在第一時間了解到服務器的健康狀態(tài)等信息,及時作出處理,提供服務器的工作效率等,如下圖:

圖 27. 郵件通知界面

關于 Nagios 管理界面詳細,可在左側的導航菜單去查閱相應的具體功能,如:當前狀態(tài)、拓補圖、總覽、問題故障、報告、配置等信息,均可根據(jù)自己的生產(chǎn)環(huán)境來制定。

結束語

通過此篇文章描述了 Nagios 監(jiān)控管理平臺的工作原理,以及如何在 Linux 平臺部署開源軟件的管理平臺,掌握 Naigos 配置管理,通過外部插件的方式來對服務對象 Windows 、Linux、 Unix 、 VMware 等平臺進行有效的管理與監(jiān)控,適合運行部門及管理部門的 IT 人員使用

責任編輯:黃丹 來源: developerWorks
相關推薦

2009-11-20 15:02:06

2010-07-12 09:42:06

FreeBSD 7.0nagios安裝

2011-03-28 10:12:44

FreeBSDnagios

2009-09-17 13:44:19

2009-11-10 12:08:15

2013-04-15 10:48:16

Xcode ARC詳解iOS ARC使用

2024-05-07 09:01:21

Queue 模塊Python線程安全隊列

2013-06-08 11:13:00

Android開發(fā)XML解析

2010-04-23 14:04:23

Oracle日期操作

2009-10-19 15:20:01

家庭綜合布線

2009-12-14 14:32:38

動態(tài)路由配置

2009-02-20 11:43:22

UNIXfish全攻略

2009-07-29 16:52:40

2009-02-12 10:12:00

NAT配置

2009-07-17 17:43:49

Jruby開發(fā)Web

2020-11-23 15:21:12

Linux環(huán)境變量

2009-12-17 16:15:00

CCNA640-810

2010-08-25 14:36:02

DHCP服務器

2019-06-27 11:47:21

Wordpress容器化HTTPS

2024-10-25 15:25:42

點贊
收藏

51CTO技術棧公眾號