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

2018-07-31 14:44 更新

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

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

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

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

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

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

3、網(wǎng)絡(luò)服務(wù)(smtp\pop3\http\)

4、監(jiān)控網(wǎng)絡(luò)設(shè)備(路由器、交換機(jī)等)

一、 需要了解的知識(shí)點(diǎn)

1、 nagios工作原理

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

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

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

3、 nagios通過(guò)nrpe插件來(lái)遠(yuǎn)程管理服務(wù)的工作過(guò)程

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

2) 通過(guò)ssl,check_nrpe連接遠(yuǎn)端機(jī)器上的NRPE daemon。

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

4) NRPE把檢測(cè)的結(jié)果傳給主機(jī)端的check_nrpe,check_nrpe再把結(jié)果送到nagios狀態(tài)隊(duì)列中。

5) Nagios依次讀取隊(duì)列中的信息,再把結(jié)果顯示出來(lái)。

二、 實(shí)驗(yàn)環(huán)境

1、 實(shí)驗(yàn)拓?fù)?/span>

三、 實(shí)驗(yàn)步驟

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

1) 關(guān)閉防火墻

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

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

安裝支持包:

配置:

編譯和安裝:

注意:

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

B、以上命令的解釋?zhuān)?/span>

make install      //安裝主程序,CGI和HTML文件

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

make install-commandmode  //配置目錄權(quán)限

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

make install-webconf  //安裝nagios的web接口,會(huì)在/etc/httpd/conf.d目錄中創(chuàng)建nagios.conf文件。

C、安裝完成之后會(huì)在/usr/local/nagios目錄下產(chǎn)生6個(gè)目錄,下面分別解釋一下。

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

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

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

share:nagios網(wǎng)頁(yè)文件目錄,存放一些html文件。

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

Libexec:系統(tǒng)默認(rèn)插件的存儲(chǔ)位置

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

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

編譯并安裝:

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

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

使用:r導(dǎo)入即可

8)執(zhí)行htpasswd命令添加一個(gè)訪(fǎng)問(wèn)nagios頁(yè)面的授權(quán)用戶(hù)

用戶(hù)名和密碼都是nagiosadmin

9)啟動(dòng)nagios和httpd服務(wù)

10)在瀏覽器上訪(fǎng)問(wèn)nagios頁(yè)面

目前只能是打開(kāi)網(wǎng)頁(yè),很多的監(jiān)控選項(xiàng)不能看到,如果需要監(jiān)控遠(yuǎn)程的服務(wù)器,還需要做很多配置,下面開(kāi)始配置。

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

1)nagios的配置文件:

Nagios.cfg:主配置文件,定義各種配置文件的名稱(chēng)和位置

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

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

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

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

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

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

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

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

2) 配置文件之間的關(guān)系

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

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

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

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

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

3) 配置nagios

為了能更清楚的說(shuō)明問(wèn)題,同時(shí)也為了維護(hù)方便,建議將nagios各個(gè)定義的對(duì)象創(chuàng)建獨(dú)立的配置文件。

a)創(chuàng)建conf目錄來(lái)定義host主機(jī)

b)創(chuàng)建hostgroups.cfg文件來(lái)定義主機(jī)組

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

d)用默認(rèn)的commands.cfg文件來(lái)定義命令

e)用默認(rèn)的timeperiods.cfg來(lái)定義監(jiān)控時(shí)間段

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

3、 配置nagios

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

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

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

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

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

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

未完接下圖:

注意:命令解釋?zhuān)?/span>

define host{  

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

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

       alias         nagios  //別名        

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

       check_command    check-host-alive  

normal_check_interval   3    //正常檢測(cè)間隔時(shí)間

retry_check_interval    2     //重試檢測(cè)間隔時(shí)間

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

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

check_period        24x7   //檢查的時(shí)間段24x7,同樣來(lái)自timeperiods.cfg中定義

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

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

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

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

6) 重啟nagios服務(wù)

7) 訪(fǎng)問(wèn)網(wǎng)頁(yè)查看狀態(tài)

(注意:關(guān)閉selinux或者開(kāi)例外)

或者:

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

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

 

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

1) 安裝nagios插件

本章的實(shí)驗(yàn)步驟比較多,安裝軟件太麻煩了,接下來(lái)我就使用腳本直接安裝了,腳本內(nèi)容如下:

然后執(zhí)行腳本

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

添加nagios服務(wù)器的地址

3)啟動(dòng)nrpe

4) 在nagios服務(wù)器上測(cè)試nrpe運(yùn)行是否正常.

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

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

5) 在瀏覽器上訪(fǎng)問(wèn)

5、 補(bǔ)充

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

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

內(nèi)容如下:

 

check_local_users!20!50  //監(jiān)測(cè)遠(yuǎn)程主機(jī)當(dāng)前的登錄用戶(hù)數(shù)量,如果大于20用戶(hù)則報(bào)warning,如果大于50則報(bào)critical

check_local_disk!20%!10%!/   //如果可用空間低于20%會(huì)報(bào)Warning,如果可用空間低于10%則報(bào)Critical:

check_local_procs!250!400!RSZDT   //監(jiān)測(cè)遠(yuǎn)程主機(jī)當(dāng)前的進(jìn)程總數(shù),如果大于250進(jìn)程則報(bào)warning,如果大于400進(jìn)程則報(bào)critical,S(休眠)、R(運(yùn)行)、Z(僵死)、D (不可中斷)、T (停止)

check_load -w 5,4,3 -c 10,6,4這個(gè)命令的意義如下

當(dāng)1分鐘多于5個(gè)進(jìn)程等待,5分鐘多于4個(gè),15分鐘多于3個(gè)則為warning狀態(tài)

當(dāng)1分鐘多于10個(gè)進(jìn)程等待,5分鐘多于6個(gè),15分鐘多于4個(gè)則為critical狀態(tài)

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

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

本文出自 “一盞燭光” 博客,謝絕轉(zhuǎn)載!

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)