Nagios監控系統

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

nagios主要可以監控以下方面:

主機是否宕機(通過ping命令,如果ping不通會認爲主機屬於宕機狀態,但不影響所監控的其他服務)

服務器資源(cpu使用率、硬盤剩餘空間等)

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

    監控網絡設備(路由器、交換機等)

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插件來遠程管理服務的工作過程

1)       Nagios執行安裝在它裏面的check_nrpe插件,並告訴check_nrpe去檢測哪些服務。

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

3)       NRPE運行本地的各種插件去檢測本地服務器和狀態(check_disk,...etc)。

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

5)       Nagios依次讀取隊列中的信息,再把結果顯示出來。

實驗拓撲

2018-02-07_213643.png

實驗步驟:

1.搭建Nagios監控系統

(1)關閉防火牆

2018-02-06_200855.png

(2)創建nagios用戶和用戶組

2018-02-06_201148.png

(3)安裝支持軟件和編譯安裝Nagios

2018-02-06_201308.png

2018-02-06_202004.png

2018-02-06_202416.png

注意:安裝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文件。

(4)驗證安裝是否成功要查看/usr/local/nagios目錄是否如下

2018-02-06_202217.png


bin:nagios執行程序所在的目錄,nagios文件即爲主程序。

etc:nagios配置文件目錄,當make install-config完以後etc下面就會出現默認的配置文件。

sbin:nagios CGI文件所在目錄,這裏存放的是一些外部命令執行程序。

share:nagios網頁文件目錄,存放一些html文件。

var:nagios日誌文件、pid等文件目錄

Libexec:系統默認插件的存儲位置

(5)安裝Nagios插件

Nagios提供的各種監控功能基本上是通過插件來完成的

2018-02-06_202633.png

如果要獲取遠程主機上的本地資源或屬性,如CPU利用率、磁盤利用率,需要藉助外部構件NRPE來完成。

2018-02-06_202849.png

(6)爲了安全起見,一般情況下要上Nagios的Web監控頁面必須經過授權才能訪問,這就需要增加驗證設置,即在/etc/httpd/conf/httpd.conf配置文件的最後添加如下信息

         我們可以到  /etc/httpd/conf.d/nagios.conf  文件中複製,不用手打。

2018-02-06_202942.png

    使用:r導入即可

2018-02-06_203041.png

2018-02-06_203214.png

2018-02-06_203226.png

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

   (7)執行htpasswd命令添加一個訪問nagios頁面的授權用戶

2018-02-06_203323.png

   用戶名和密碼都是nagiosadm

    (8)啓動Nagios和httpd服務

    2018-02-06_203401.png

(9)在瀏覽器上進行訪問

2018-02-06_203647.png

2018-02-06_203720.png

2.配置Nagios監控系統

1)nagios的默認配置文件:

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

   Cgi.cfg:控制CGI的配置文件

   Resource.cfg:資源文件,定義各種變量,以便於其他文件調用

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

             Command.cfg:命令配置文件,定義各種命令格式,以備其他文件調用

             contacts.cfg:聯繫人和組,發郵件等告警信息時可以調用

             localhost.cfg:監控本機的配置文件

             timeperiods.cfg:定義監控時間的配置文件,便於其他文件調用

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

2)配置文件之間的關係

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

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

n  定義這個監控要用什麼命令實現

n  定義監控的時間段

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

3)配置nagios

爲了能更清楚的說明問題,同時也爲了維護方便,建議將nagios各個定義的對象創建獨立的配置文件。

創建conf目錄來定義host主機

創建hostgroups.cfg文件來定義主機組

用默認的contacts.cfg文件來定義聯繫人和聯繫人組

用默認的commands.cfg文件來定義命令

用默認的timeperiods.cfg來定義監控時間段

    用默認的templetes.cfg文件作爲資源引用文件

初步瞭解Nagios的配置文件後,接下來開始修改配置文件

(1)修改  /usr/local/nagios/etc/nagios.cfg  主配置文件

2018-02-06_203835.png

2018-02-06_204113.png

2018-02-06_204206.png

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

2018-02-06_204232.png

2018-02-06_204320.png

(3)修改  /usr/local/nagios/etc/objects/contacts.cfg  文件

2018-02-06_204440.png

2018-02-06_204520.png

解釋: 

  1. 定義聯繫人名稱

  2. 別名

  3. 監控主機服務7X24小時

  4. 監控主機對角應用服務7X24小時

  5. 警告級別參數

  6. 定義主機在什麼狀態下需要發送通知給使用者,d即down,表示宕機狀態;u即unreachable,不可到達狀態;r即recovery,表示重新恢復狀態

  7. 調用郵件名稱

  8. 調用飛信名稱

  9. 定義發送到哪個電子郵箱

(4)修改  /usr/local/nagios/etc/objects/hostgroups.cfg  文件,定義主機組

2018-02-06_204829.png

2018-02-06_204903.png

(5)在  /usr/local/nagios/etc/conf  下面新建192.168.1.20.cfg文件(用於監控192.168.1.20的主機存活,負載,進程)(所有內容需要手工輸入)

2018-02-06_205029.png

2018-02-06_205202.png

2018-02-06_205401.png

同理可得,新建本機的.cfg文件也是如此,只要把相對應的IP換成本機IP即可

2018-02-06_205533.png

命令解釋:

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  //指定什麼情況下提醒

        } 

(6)添加聯繫人組,修改文件  /usr/local/nagios/etc/objects/contacts.cfg  文件

2018-02-06_204440.png

2018-02-06_205848.png

(7)重啓nagios服務 

(8)訪問網頁查看狀態(注意:關閉selinux或者開例外)

2018-02-06_210021.png

2018-02-06_210032.png

或者:

如果你開啓了selinux 需要配置如下二步:
chcon -R -t httpd_sys_content_t /usr/local/nagios/sbin/
chcon -R -t httpd_sys_content_t /usr/local/nagios/share/

2018-02-06_210118.png


  3.配置被控端192.168.1.20(mysql和web)

(1)安裝支持軟件和新建nagios用戶

2018-02-06_212657.png

(2)安裝nagios插件

2018-02-06_212710.png

2018-02-06_212900.png

(3)修改配置文件

2018-02-06_213019.png

2018-02-06_213033.png

(4)啓動nrpe

2018-02-06_213147.png

(5)設置防火牆規則

2018-02-06_213238.png

2018-02-06_213311.png

(6)在Nagios監控服務器上測試NRPE運行是否正常

2018-02-06_213409.png

(7)在瀏覽器訪問

2018-02-06_213456.png

通過以上這些操作,管理員就可以在網頁上實時地監控服務器的運行狀況,並且能在出現問題時及時解決。






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章