NAGIOS監控系統

Nagios監控系統

                                      nagios監控系統  

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

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

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

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

網絡服務(smtp\pop3\http\

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

 

一、需要了解的知識點

1、nagios工作原理

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

 

2、nagios的四種監控狀態

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

 

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

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

2) 通過sslcheck_nrpe連接遠端機器上的NRPE daemon

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

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

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

 

 

二、實驗環境

1、實驗拓撲

wKiom1mjwUqynZNBAABhvZ0JEUA897.png

2、虛擬機上的實驗環境

wKioL1mjwsjQQJVsAABIZ4JeZPc004.png-wh_50

 

三、實驗步驟

1、搭建nagios監控系統

1)關閉防火牆

wKioL1mjwt_RkGLfAABFxYBTiHs107.png

 

2)創建nagios用戶和用戶組

wKiom1mjwwPycm3IAABL0sdFNyQ626.png

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

安裝支持包:

wKioL1mjwwXB_Fz-AAAvEUbk_bY293.png

 

配置:

wKiom1mjwyrivZirAABMi9JG82s630.png

 

編譯和安裝:

wKiom1mjwzzhlGGaAABSd4k-sAA474.png

注意:安裝install-webconf是爲了生成配置文件,後面在/etc/httpd/conf/httpd.conf最後添加的信息就不用手工打了,可以到/etc/httpd/conf.d/nagios.conf文件中複製。


以上命令的解釋:

make install      //安裝主程序,CGIHTML文件

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

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

make install-config  //安裝示例配置文件

make install-webconf  //安裝nagiosweb接口,會在/etc/httpd/conf.d目錄中創建nagios.conf文件。

 

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

 

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

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

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

sharenagios網頁文件目錄,存放一些html文件。

varnagios日誌文件、pid等文件目錄。

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

 

4)添加爲系統服務器

wKiom1mjw1LzQFFEAABDL1g6e3E262.png

 

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

wKiom1mjw2fyjGwwAABNp_77xKs653.png

 

編譯並安裝:

wKiom1mjw3iyKh5ZAAAqdkeHfeg851.png

 

6)安裝nrpe(爲了監控遠程服務器)

wKiom1mjw4_QaVxaAABaVs5ODao759.png

 

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

wKiom1mjw6bB5hBjAAAnNg67JdM900.png

 

使用:r導入即可(定位到文檔的最後)

wKioL1mjw6zj7JgbAAAoV9kErzE993.png

 

wKiom1mjw87BXW29AACSaj868bM425.png

 

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

 

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

wKiom1mjw-XDol_8AAA0PXcEuYc140.png

 

用戶名和密碼都是nagiosadmin

 

9)啓動nagioshttpd

wKiom1mjxADDsij0AACrElP4JQ8687.png

 

10)在瀏覽器上訪問nagios頁面

wKioL1mjxAKCxUx-AACyxlJBDCQ689.png

 

 

wKiom1mjxCLAzzm6AADKO35lcI8064.png

 

 

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

 

 

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

1nagios的配置文件:

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

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

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

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

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

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

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

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

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

2)配置文件之間的關係

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

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

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

定義監控的時間段

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

 

3)配置nagios

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

創建conf目錄來定義host主機

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

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

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

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

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

 

 

3、配置nagios

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

wKiom1mjxD2DP1agAAClLvVdWAA253.png

 

wKioL1mjxDyzCicpAAAtpbXpkm0838.png

 

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

wKioL1mjxEvyHsqGAAAry-aEbzQ462.png

 

添加如下內容(定義check_nrpe監控命令)

 

wKioL1mjxF-B4uYeAACFjaCGuSE276.png

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

wKioL1mjxHWy7tf-AAAr4SvZgJk800.png

 

wKioL1mjxIORHwPwAACLjLAYmV0212.png

 

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

wKiom1mjxK-i6qzAAAAz5zRpG48071.png

 

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

wKioL1mjxLixs3NmAAA1n8HWWgY018.png

 

wKioL1mjxM-RxlXhAACTc9KAXJM278.png

 

 

未完接下圖:

 

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

        }  

當服務出現w-報警(warning),u-未知(unkown),c-嚴重(critical),或者r-從異常情況恢復正常,在這四種情況下通知聯繫人

當主機出現d-當機(down),u-返回不可達(unreachable),r-從異常情況恢復正常,在這3種情況下通知聯繫人

 

6)重啓nagios服務

wKiom1mjxQvy_JCJAACrZ-G8Q6o500.png

 

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

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

 

wKioL1mjxQvyPcVuAABArKaWq7Y661.png

 

8)重啓nagios服務器成功

wKiom1mjxTizoFqCAABB_1sMAUM534.png

 

9)訪問網頁查看狀態

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

wKioL1mjxTjQMyHFAACf5iW4Jnk966.png

 

或者:

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

 wKiom1mjxXbQ9eTIAAEFXQn812s810.png

 

點擊上圖中的localhost,可以查看本機的狀態

wKiom1mjxYmBsrJ7AAEXDU6PigU711.png

 

 

4、配置被控端192.168.1.20(mysqlweb

1)安裝nagios插件

yum  -y install  openssl  openssl-devel

useradd  nagios  -s  /sbin/nologin

tar   zxf  nagios-plugins-1.5.tar.gz

cd   nagios-plugins-1.5

./configure  --prefix=/usr/local/nagios

make  &&  make  install

chown  -R   nagios:nagios  /usr/local/nagios

tar  zxf  nrpe-2.15.tar.gz

cd   nrpe-2.15

./configure  --prefix=/usr/local/nagios

  make all  &&  make install-plugin   &&  make install-daemon

  make   install-daemon-config

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

添加nagios服務器的地址

wKioL1mjxY7xbFMbAAA2F7VTK4g360.png

 

3)啓動nrpe

wKioL1mjxaKTQ0VlAAAzNJ2Xufw329.png

 

4)在nagios服務器上測試nrpe運行是否正常,出現下面的信息說明正確。

wKioL1mjxdHRfPT4AAA97RDkNJ8088.png

 

5)在瀏覽器上訪問

wKioL1mjxeWQTKNcAADrNsUnHWQ936.png

 

wKiom1mjxgaQoehyAAGF6LO-P3A592.png

 

5、補充

也可在services.cfg文件中添加192.168.1.20.cgf文件中的參數

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

內容如下:

wKiom1mjxhiBN30zAAByZnDbZ4o380.png

wKiom1mjxiziFgWcAABNCS4-WCE654.png

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進程則報criticalS(休眠)、R(運行)Z(僵死)(不可中斷)、(停止)

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的監控頁面的顯示





 


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