Linux Nagios監(jiān)控系統(tǒng)

2018-07-31 14:44 更新

防偽碼:世界的背面是憧憬,明天的明天是希望

                                      第十章 Nagios監(jiān)控系統(tǒng)

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

首先總結一下nagios主要可以監(jiān)控以下方面:

1、主機是否宕機(通過ping命令,如果ping不通會認為主機屬于宕機狀態(tài),但不影響所監(jiān)控的其他服務)

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

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

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

一、 需要了解的知識點

1、 nagios工作原理

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

1、 nagios的四種監(jiān)控狀態(tài)

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

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

1) Nagios執(zhí)行安裝在它里面的check_nrpe插件,并告訴check_nrpe去檢測哪些服務。

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

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

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

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

二、 實驗環(huán)境

1、 實驗拓撲

三、 實驗步驟

1、 搭建nagios監(jiān)控系統(tǒng)

1) 關閉防火墻

2) 創(chuàng)建nagios用戶和用戶組

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

安裝支持包:

配置:

編譯和安裝:

注意:

A、安裝install-webconf是為了生成配置文件,后面在/etc/httpd/conf/httpd.conf最后添加的信息就不用手工打了,可以到/etc/httpd/conf.d/nagios.conf文件中復制。

B、以上命令的解釋:

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目錄中創(chuàng)建nagios.conf文件。

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

bin:nagios執(zhí)行程序所在的目錄,nagios文件即為主程序。

etc:nagios配置文件目錄,當make install-config完以后etc下面就會出現(xiàn)默認的配置文件。

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

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

var:nagios日志文件、pid等文件目錄。

Libexec:系統(tǒng)默認插件的存儲位置

4) 添加為系統(tǒng)服務器

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

編譯并安裝:

6)安裝nrpe(為了監(jiān)控遠程服務器)

7)在/etc/httpd/conf/httpd.conf文件最后添加授權,我們可以到/etc/httpd/conf.d/nagios.conf文件中復制

使用:r導入即可

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

用戶名和密碼都是nagiosadmin

9)啟動nagios和httpd服務

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

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

2、 配置nagios監(jiān)控系統(tǒng)涉及知識點

1)nagios的配置文件:

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

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

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

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

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

contacts.cfg:聯(lián)系人和組,發(fā)郵件等告警信息時可以調用

localhost.cfg:監(jiān)控本機的配置文件

timeperiods.cfg:定義監(jiān)控時間的配置文件,便于其他文件調用

Hostgroups.cfg:定義監(jiān)控的主機(組),需手動創(chuàng)建。

2) 配置文件之間的關系

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

a)定義監(jiān)控那些主機,主機組,服務和服務組

b)定義這個監(jiān)控要用什么命令實現(xiàn)

c)定義監(jiān)控的時間段

d)定義主機或服務器出現(xiàn)問題時要通知的聯(lián)系人和聯(lián)系人祖

3) 配置nagios

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

a)創(chuàng)建conf目錄來定義host主機

b)創(chuàng)建hostgroups.cfg文件來定義主機組

c)用默認的contacts.cfg文件來定義聯(lián)系人和聯(lián)系人組

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

e)用默認的timeperiods.cfg來定義監(jiān)控時間段

f)用默認的templetes.cfg文件作為資源引用文件

3、 配置nagios

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

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

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

3)修改/usr/local/nagios/etc/objects/contacts.cfg(定義監(jiān)控服務器聯(lián)系人)

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

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

未完接下圖:

注意:命令解釋:

define host{  

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

       host_name   nagios  //被監(jiān)控主機的名稱,最好別帶空格  

       alias         nagios  //別名        

       address      127.0.0.1  //被監(jiān)控主機的IP地址        

       check_command    check-host-alive  

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

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

 //監(jiān)控的命令check-host-alive,這個命令來自commands.cfg,用來監(jiān)控主機是否存活  

max_check_attempts    5 //檢查失敗后重試的次數(shù)  

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

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

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

contact_groups   admins  //聯(lián)系人組,上面在contactgroups.cfg中定義的admins

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

6) 重啟nagios服務

7) 訪問網頁查看狀態(tài)

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

或者:

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

點擊上圖中的localhost,可以查看本機的狀態(tài)

 

4、 配置被控端192.168.1.20(mysql和web)

1) 安裝nagios插件

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

然后執(zhí)行腳本

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

添加nagios服務器的地址

3)啟動nrpe

4) 在nagios服務器上測試nrpe運行是否正常.

/usr/local/nagios/libexec/check_nrpe -H 192.168.1.20

以同樣的方法在http服務器安裝即可,這里不再贅述

5) 在瀏覽器上訪問

5、 補充

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

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

內容如下:

 

check_local_users!20!50  //監(jiān)測遠程主機當前的登錄用戶數(shù)量,如果大于20用戶則報warning,如果大于50則報critical

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

check_local_procs!250!400!RSZDT   //監(jiān)測遠程主機當前的進程總數(shù),如果大于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狀態(tài)

當1分鐘多于10個進程等待,5分鐘多于6個,15分鐘多于4個則為critical狀態(tài)

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

謝謝觀看,真心的希望能幫到您!

本文出自 “一盞燭光” 博客,謝絕轉載!

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號