天天看點

部署 Nagios 監控系統

前言:Nagios是一款開源的免費網絡監視工具,可以監控Windows、Linux和Unix的主機狀态,交換機路由器等網絡裝置,在系統或服務狀态異常時發出郵件或短信報警,第一時間通知網站運維人員。流量監控不是他的強項,流量監控建議使用cacti(可以繪制非常直覺的圖形。

總結一下nagios主要可以監控以下方面:

l 主機是否當機(通過ping指令,如果ping不通會認為主機屬于當機狀态,但不影響所監控的其他服務)

l 伺服器資源(cpu使用率、硬碟剩餘空間等)

l 網絡服務(smtp\pop3\http\)

l 監控網絡裝置(路由器、交換機等)

需要了解的知識點

nagios工作原理

Nagios本身不包括監控主機和服務的功能。所有的監控、監測功能都是通過各種插件來完成的。安裝完nagios之後,在nagios主目錄下的/libexex裡面放有nagios自帶的插件,如:check_disk是檢查磁盤空間的插件,check_load是檢查cpu負載的插件,每一個插件可以通過運作./check_xxx -h指令來檢查其使用方法和功能。

nagios的四種監控狀态

Nagios可以識别四種狀态傳回資訊。0(OK)表示狀态正常(綠色顯示),1(WARNING)表示出現警告(×××),2(CRITICAL)表示出現非常嚴重錯誤(紅色),3(UNKNOWN)表示未知錯誤(深×××),nagios根據插件傳回來的值來判斷監控對象的狀态,并通過web顯示出來,以供管理者即時發現故障。

nagios通過nrpe插件來遠端管理服務的工作過程

Nagios執行安裝在它裡面的check_nrpe插件,并告訴check_nrpe去檢測哪些服務。

通過ssl,check_nrpe連接配接遠端機器上的NRPE daemon。

NRPE運作本地的各種插件去檢測本地伺服器和狀态(check_disk,...etc)。

NRPE把檢測的結果傳給主機端的check_nrpe,check_nrpe再把結果送到nagios狀态隊列中。

Nagios依次讀取隊列中的資訊,再把結果顯示出來。

實驗環境

實驗拓撲

部署 Nagios 監控系統

虛拟機上的實驗環境

部署 Nagios 監控系統

實驗步驟

搭建nagios監控系統

關閉防火牆 

部署 Nagios 監控系統

建立nagios使用者和使用者組

部署 Nagios 監控系統

編譯安裝nagios(需要提前配置yum)

安裝支援包:

部署 Nagios 監控系統

配置:

部署 Nagios 監控系統

編譯和安裝:

部署 Nagios 監控系統

注意:安裝install-webconf是為了生成配置檔案,後面在/etc/httpd/conf/httpd.conf最後添加的資訊就不用手工打了,可以到/etc/httpd/conf.d/nagios.conf檔案中複制。

以上指令的解釋:

make install      //安裝主程式,CGI和HTML檔案

make install-init  //在/etc/rc.d/init.d安裝啟動腳本

make install-commandmode  //配置目錄權限

make install-config  //安裝示例配置檔案

make install-webconf  //安裝nagios的web接口,會在/etc/httpd/conf.d目錄中建立nagios.conf檔案。

安裝完成之後會在/usr/local/nagios目錄下産生6個目錄,下面分别解釋一下。

bin:nagios執行程式所在的目錄,nagios檔案即為主程式。

etc:nagios配置檔案目錄,當make install-config完以後etc下面就會出現預設的配置檔案。

sbin:nagios CGI檔案所在目錄,這裡存放的是一些外部指令執行程式。

share:nagios網頁檔案目錄,存放一些html檔案。

var:nagios日志檔案、pid等檔案目錄。

Libexec:系統預設插件的存儲位置

添加為系統伺服器 

部署 Nagios 監控系統

chkconfig --add nagios

chkconfig --level 35 nagios on

安裝nagios插件(監控功能通過插件完成)

部署 Nagios 監控系統

編譯并安裝:

部署 Nagios 監控系統

6)安裝nrpe(為了監控遠端伺服器)

部署 Nagios 監控系統

7)在/etc/httpd/conf/httpd.conf檔案最後添加授權,我們可以到/etc/httpd/conf.d/nagios.conf檔案中複制,不用手打。

部署 Nagios 監控系統

使用:r導入即可

部署 Nagios 監控系統
部署 Nagios 監控系統

導入即可,不用修改,儲存退出。

8)執行htpasswd指令添加一個通路nagios頁面的授權使用者

部署 Nagios 監控系統

使用者名和密碼都是nagiosadmin

9)啟動nagios和httpd

部署 Nagios 監控系統

10)在浏覽器上通路nagios頁面

部署 Nagios 監控系統
部署 Nagios 監控系統

目前隻能是打開網頁,很多的監控選項不能看到,如果需要監控遠端的伺服器,還需要做很多配置,下面開始配置。

配置nagios監控系統涉及知識點

1)nagios的配置檔案:

   Nagios.cfg:主配置檔案,定義各種配置檔案的名稱和位置

   Cgi.cfg:控制CGI的配置檔案

   Resource.cfg:資源檔案,定義各種變量,以便于其他檔案調用

   Objects:其他配置檔案存放目錄,此目錄下主要有:

             Command.cfg:指令配置檔案,定義各種指令格式,以備其他檔案調用

             contacts.cfg:聯系人群組,發郵件等告警資訊時可以調用

             localhost.cfg:監控本機的配置檔案

             timeperiods.cfg:定義監控時間的配置檔案,便于其他檔案調用

             Hostgroups.cfg:定義監控的主機(組),需手動建立。

配置檔案之間的關系

在nagios的配置過程中涉及的幾個定義有主機、主機組、服務、服務組、聯系人、聯系人組、監控時間和監控指令等。從這些定義可以看出,nagios各個配置檔案之間互為關聯、彼此引用的。成功配置出一台nagios監控系統,必須要弄清楚每個配置檔案之間依賴與被依賴的關系,最重要的有四點

定義監控那些主機,主機組,服務和服務組

定義這個監控要用什麼指令實作

定義監控的時間段

定義主機或伺服器出現問題時要通知的聯系人和聯系人祖

配置nagios

為了能更清楚的說明問題,同時也為了維護友善,建議将nagios各個定義的對象建立獨立的配置檔案。

建立conf目錄來定義host主機

建立hostgroups.cfg檔案來定義主機組

用預設的contacts.cfg檔案來定義聯系人和聯系人組

用預設的commands.cfg檔案來定義指令

用預設的timeperiods.cfg來定義監控時間段

用預設的templetes.cfg檔案作為資源引用檔案

部署 Nagios 監控系統
部署 Nagios 監控系統

修改/usr/local/nagios/etc/nagios.cgf主配置檔案

部署 Nagios 監控系統

2)修改/usr/local/nagios/etc/objects/commands.cfg

添加如下内容(定義check_nrpe監控指令)

修改/usr/local/nagios/etc/objects/contacts.cfg(定義監控伺服器聯系人)

部署 Nagios 監控系統

建立/usr/local/nagios/etc/objects/hostgroups.cfg(定義主機組)

部署 Nagios 監控系統

在/usr/local/nagios/etc/conf下面建立192.168.1.20.cfg檔案(用于監控192.168.1.20的主機存活,負載,程序)(所有内容需要手工輸入)

部署 Nagios 監控系統
部署 Nagios 監控系統

未完接下圖:

部署 Nagios 監控系統

指令解釋:

define host{  

       use         linux-server  //定義使用的模闆

       host_name   nagios  //被監控主機的名稱,最好别帶空格  

       alias         nagios  //别名        

       address      127.0.0.1  //被監控主機的IP位址        

       check_command    check-host-alive  

normal_check_interval   3    //正常檢測間隔時間

        retry_check_interval    2     //重試檢測間隔時間

       //監控的指令check-host-alive,這個指令來自commands.cfg,用來監控主機是否存活  

       max_check_attempts    5 //檢查失敗後重試的次數  

       check_period        24x7   //檢查的時間段24x7,同樣來自timeperiods.cfg中定義

notification_interval  10  //提醒的間隔,每隔10秒提醒一次

notification_period   24x7  //提醒的周期, 24x7,同樣來自timeperiods.cfg中定義

contact_groups   admins  //聯系人組,上面在contactgroups.cfg中定義的admins

notification_options            d,u,r  //指定什麼情況下提醒

        }  

重新開機nagios服務

部署 Nagios 監控系統

7)發現錯誤,提示沒有添加聯系人組,解決方法:在

/usr/local/nagios/etc/objects/contacts.cfg檔案的最後添加代碼,如下圖:

部署 Nagios 監控系統

重新開機nagios伺服器成功

部署 Nagios 監控系統

通路網頁檢視狀态

(注意:關閉selinux或者開例外)

部署 Nagios 監控系統

或者:

如果你開啟了selinux 需要配置如下二步:

chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/

chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

部署 Nagios 監控系統

點選上圖中的localhost,可以檢視本機的狀态

部署 Nagios 監控系統

配置被控端192.168.1.20(mysql和web)

安裝nagios插件

本章的實驗步驟比較多,安裝軟體太麻煩了,接下來我就使用腳本直接安裝了,腳本内容如下:

部署 Nagios 監控系統
部署 Nagios 監控系統

執行腳本:

部署 Nagios 監控系統

2)安裝完成之後,需要打開vim /usr/local/nagios/etc/nrpe.cfg

添加nagios伺服器的位址

部署 Nagios 監控系統

3)啟動nrpe

部署 Nagios 監控系統

在nagios伺服器上測試nrpe運作是否正常,出現下面的資訊說明正确。

部署 Nagios 監控系統

在浏覽器上通路

部署 Nagios 監控系統
部署 Nagios 監控系統

補充

也可在services.cfg檔案中添加192.168.1.20.cgf檔案中的參數

#vi  /usr/local/nagios/etc/objects/services.cfg

内容如下:

部署 Nagios 監控系統
部署 Nagios 監控系統

check_local_users!20!50  //監測遠端主機目前的登入使用者數量,如果大于20使用者則報warning,如果大于50則報critical

check_local_disk!20%!10%!/   //如果可用空間低于20%會報Warning,如果可用空間低于10%則報Critical:

check_local_procs!250!400!RSZDT   //監測遠端主機目前的程序總數,如果大于250程序則報warning,如果大于400程序則報critical,S(休眠)、R(運作)、Z(僵死)、D (不可中斷)、T (停止)

check_load -w 5,4,3 -c 10,6,4這個指令的意義如下

當1分鐘多于5個程序等待,5分鐘多于4個,15分鐘多于3個則為warning狀态

當1分鐘多于10個程序等待,5分鐘多于6個,15分鐘多于4個則為critical狀态

服務組并不是必須的,這是配合nagios的監控頁面的顯示

總結!勤動腦多喝六個核桃

繼續閱讀