亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

使用nagios監(jiān)控主機(jī)及服務(wù)

寫(xiě)在前頭:限于個(gè)人對(duì)nagios的了解有限,寫(xiě)得不夠深入與系統(tǒng),甚至可能會(huì)有些錯(cuò)誤,各位看官還多包涵。本文主要涉及的是nagios daemon、nrpe及三個(gè)部分。

01

nagios系統(tǒng)的功能

  • 主機(jī)或服務(wù)狀態(tài)監(jiān)控
    nagios是一款開(kāi)源的監(jiān)控軟件,從它可以監(jiān)控的設(shè)備類(lèi)型上來(lái)看,主要包含網(wǎng)絡(luò)設(shè)備,服務(wù)器設(shè)備。常見(jiàn)的網(wǎng)絡(luò)設(shè)備如:路由器、交換機(jī)、防火墻、F5、打印機(jī)等,常見(jiàn)的服務(wù)器設(shè)備主要分為:UNIX類(lèi)、Linux類(lèi)以及Windows類(lèi)。按我的理解凡是支持snmp協(xié)議的設(shè)備,包含PC都可以通過(guò)nagios進(jìn)行監(jiān)控。當(dāng)然,nagios實(shí)現(xiàn)對(duì)主機(jī)資源及服務(wù)的監(jiān)控并非全依靠snmp協(xié)議,它最為主要的監(jiān)控手段是通過(guò)nrpe組件來(lái)實(shí)現(xiàn)。
  • 監(jiān)控告警通知
    nagios對(duì)在網(wǎng)絡(luò)中發(fā)現(xiàn)的問(wèn)題會(huì)及時(shí)產(chǎn)生告警信息并通過(guò)事先定義好的方式,如郵件、短信、微信等方式通知相關(guān)人員。隨著網(wǎng)絡(luò)運(yùn)維工作更加自動(dòng)化,還可以通過(guò)nagios支持的相應(yīng)API接口,開(kāi)發(fā)相應(yīng)的程序,實(shí)現(xiàn)其自動(dòng)或人干干預(yù)去對(duì)監(jiān)控發(fā)現(xiàn)的問(wèn)題進(jìn)行自動(dòng)化的處理。
  • 監(jiān)控信息可視化
    nagios結(jié)合web服務(wù)器,可以將整個(gè)網(wǎng)絡(luò)所監(jiān)控的所有信息以web頁(yè)面的形式展現(xiàn)出來(lái),還可以結(jié)合外部軟件實(shí)現(xiàn)監(jiān)控?cái)?shù)據(jù)可視化,以圖表的形式展示在web頁(yè)面中,本文將介紹nagios常用的畫(huà)圖軟件包pnp,現(xiàn)在叫pnp4nagios。
  • 監(jiān)控?cái)?shù)據(jù)存儲(chǔ)
    nagios監(jiān)控到的數(shù)據(jù)會(huì)存儲(chǔ)下來(lái),可以直接以文件的形式存儲(chǔ)也可以通過(guò)NDOUtils組件存儲(chǔ)到如mysql類(lèi)的數(shù)據(jù)庫(kù)中,從而可以很好支持監(jiān)控歷史數(shù)據(jù)的查詢(xún)。

02

nagios系統(tǒng)的組成

nagios系統(tǒng)主要包含nagios daemon、nagios plugin、nrpe、web三個(gè)組件,它還包含NDOUtils、NSCA、NSClinet++組件,它們共同組成一個(gè)完整的nagios,組成邏輯圖如下所示:

使用nagios監(jiān)控主機(jī)及服務(wù)
  • Nagios Daemon
    nagios系統(tǒng)的核心組件,它負(fù)責(zé)組織與管理各組件,將它們協(xié)調(diào)起來(lái)共同完成監(jiān)控任務(wù),并完成監(jiān)控信息的組織與展示。
  • Nagios Plugins
    nagios plugins主要就是nagios核心組件自帶以及用戶(hù)自開(kāi)發(fā)的一些插件,它們是實(shí)現(xiàn)各項(xiàng)監(jiān)控的具體小程序,由它們將采集到相應(yīng)的數(shù)據(jù)以后,回送給nagios服務(wù)器。
  • NRPE
    nagios系統(tǒng)要想取得被監(jiān)控主機(jī)的存活狀態(tài)、http、ftp、ssh服務(wù)是否可用,可以通過(guò)程序探測(cè)的出來(lái),但如果要想取得被監(jiān)控端上如磁盤(pán)容量,cpu負(fù)載這類(lèi)本地信息時(shí),如果沒(méi)有相應(yīng)的權(quán)限就不行,所以就產(chǎn)生了代理程序,事先在被監(jiān)控機(jī)上安裝代理程序(Linux系統(tǒng)是nrpe軟件),然后通過(guò)它們來(lái)獲取監(jiān)控?cái)?shù)據(jù),再回送給nagios服務(wù)器。當(dāng)nrpe啟動(dòng)以后,它會(huì)開(kāi)啟5666端口。nrpe的工程原理如下圖所示:

使用nagios監(jiān)控主機(jī)及服務(wù)

NRPE 總共由兩部分組成:
check_nrpe:位于nagios server上。
NRPE daemon:位于被監(jiān)控的Linux主機(jī)上。
當(dāng)Nagios 需要監(jiān)控某個(gè)遠(yuǎn)程Linux 主機(jī)時(shí):
nagios 會(huì)運(yùn)行check_nrpe 這個(gè)插件,告訴它要檢查什么
check_nrpe 插件會(huì)連接到遠(yuǎn)程的NRPE daemon,所用的方式是SSL; NRPE daemon 會(huì)運(yùn)行相應(yīng)的nagios 插件來(lái)執(zhí)行檢查;
NRPE daemon 將檢查的結(jié)果返回給check_nrpe 插件,插件將其遞交給nagios做處理。

  • NSClinet++
    NSClient++這一組件是安裝在windows主機(jī)上,相當(dāng)于nagios server在windows端的代理程序。
  • NSCA
    NSAC這一組件適用于部署分布式nagios監(jiān)控系統(tǒng)時(shí)使用,它可以實(shí)現(xiàn)讓被監(jiān)控端主動(dòng)將需要監(jiān)控的信息發(fā)送給nagios服務(wù)端。

03

本文所用到系統(tǒng)環(huán)境

OS:CentOS release 6.8 (Final) 2.6.32-642.el6.x86_64
還有一個(gè)重要環(huán)境:互聯(lián)網(wǎng)(yum、百度、Google)。
各軟件包:

使用nagios監(jiān)控主機(jī)及服務(wù)

04

nagios系統(tǒng)軟件部署

服務(wù)器側(cè)軟件安裝

前提:使系統(tǒng)具備編譯軟件源碼包的能力,并提前解決一些包、共享庫(kù)文件之間的依賴(lài)關(guān)系,建議安裝如下兩個(gè)Group組件:

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 安裝nagios依賴(lài)的軟件包
    nagios要通過(guò)web頁(yè)面展現(xiàn)監(jiān)控結(jié)果,所以nagios服務(wù)器同時(shí)還得是一個(gè)web服務(wù)器,因?yàn)閚agios各種數(shù)據(jù)的實(shí)時(shí)展現(xiàn)是動(dòng)態(tài)頁(yè)面呈現(xiàn)的,因此還需要用到php。nagios要實(shí)現(xiàn)畫(huà)圖還依賴(lài)于gd、rrdtool包。按照官方說(shuō)明安裝如下包:

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 創(chuàng)建nagios用戶(hù)及組
    很多開(kāi)源軟件如果是通過(guò)源碼包來(lái)進(jìn)行安裝,為后續(xù)的安裝及服務(wù)運(yùn)行做準(zhǔn)備都需要通過(guò)事先創(chuàng)建好相應(yīng)服務(wù)的賬號(hào)及組。這里相關(guān)指令如下:

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 創(chuàng)建一個(gè)可以從web接口接受外部指令的用戶(hù)組并將nagios及apache添加進(jìn)組

使用nagios監(jiān)控主機(jī)及服務(wù)
    • 安裝nagios core
      nagios core就是前文提到的nagios daemon。解壓軟件包后,源碼安裝的通用三步驟:
      1. configure
      2. make
      3. make install
        此外相應(yīng)指令如下:

使用nagios監(jiān)控主機(jī)及服務(wù)

configure完成以后若出現(xiàn)make all以完成編譯的提示則繼續(xù)執(zhí)行:

使用nagios監(jiān)控主機(jī)及服務(wù)

如果上述任一指令執(zhí)行后有error發(fā)生或者某文件,某組件沒(méi)有找到,務(wù)必先解決相應(yīng)的錯(cuò)誤,一般可能是某些包沒(méi)有安裝導(dǎo)致,根據(jù)提示信息中的關(guān)鍵字找出可能的包,然后yum安裝上即可。

  • 創(chuàng)建登錄nagios web頁(yè)面的用戶(hù)及密碼
    默認(rèn)系統(tǒng)中已存在名為nagiosadmin的賬戶(hù),只需要給它指定密碼,其密碼會(huì)加密存儲(chǔ),密碼文件默認(rèn)為`/usr/local/nagios/etc/htpasswd.users,無(wú)需改動(dòng)。

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 重啟web服務(wù)

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 安裝plugin及nrpe組件
    因?yàn)閚agios服務(wù)器本身也同樣需要被監(jiān)控,自己監(jiān)控自己或者被其它的nagios服務(wù)器所監(jiān)控,所以它也需要安裝plugin及nrpe組件。在軟件包的解壓目錄中執(zhí)行如下指令:

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 安裝完plugin以后會(huì)在/usr/local/nagios/libexec目錄下存放大量插件,就是用這些插件來(lái)實(shí)現(xiàn)最終的監(jiān)控目的的。
    按著安裝nrpe
    nagios服務(wù)器安裝nrpe包主要目的是為了安裝check_nrpe插件,便于與被監(jiān)控Linux端的NRPE daemon程序通信,如果這臺(tái)nagios服務(wù)器也需要被其它nagios服務(wù)器監(jiān)控,那它還必須安裝nrpe daemon和nrpe daemon-config。

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 設(shè)置web、nagios服務(wù)開(kāi)機(jī)自啟

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 通過(guò)web頁(yè)面登錄nagios
    做完以上步驟以后,即可打開(kāi)瀏覽器,輸入http://nagios-server-ip/nagios,它會(huì)彈出提示框,輸入前面提到的nagiosadmin及其密碼即可登錄。登錄后的初始界面如下:

使用nagios監(jiān)控主機(jī)及服務(wù)

使用nagios監(jiān)控主機(jī)及服務(wù)

被監(jiān)控端軟件安裝

在網(wǎng)絡(luò)中需要被監(jiān)控的Linux主機(jī)中安裝nagios pluginnrpe兩個(gè)組件,并安裝xinetd組件,用于啟動(dòng)nrpe程序。

  • nagios plugin安裝
    創(chuàng)建nagios用戶(hù):

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 將tar.gz包解壓以后進(jìn)入其目錄,然后執(zhí)行以下命令:

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 安裝完成以后,建議修改安裝目錄/usr/local/nagios的屬主為nagios,并可查看到其下有三個(gè)目錄:

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 安裝nrpe
    客戶(hù)端因?yàn)樾枰ㄟ^(guò)nrpe程序來(lái)執(zhí)行從服務(wù)器側(cè)接收到的command,因此必須安裝nrpe。

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 安裝xinetd
    根據(jù)nrpeREADME文件的說(shuō)明,可以將nrpe daemon作為xinetd下的一個(gè)服務(wù)來(lái)進(jìn)行管理,所以需要事先將xinetd安裝到系統(tǒng)中:

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 再接著安裝nrpexinetd下的配置文件:

使用nagios監(jiān)控主機(jī)及服務(wù)
  • 修改nrpe的配置文件,以允許nagios server連接它:
    vim /etc/xinetd.d/nrpeonly from改成如下內(nèi)容:

    使用nagios監(jiān)控主機(jī)及服務(wù)
  • nrpe服務(wù)端口號(hào)添加進(jìn)去:vim /etc/services在最后一行加上nrpe ? ?5666/tcp ? ? ?#Nagios-Client然后保存退出。

啟動(dòng)xinetd服務(wù)并設(shè)置開(kāi)機(jī)自啟:

使用nagios監(jiān)控主機(jī)及服務(wù)

檢查nrpe是否啟動(dòng)即端口5666是否處于監(jiān)聽(tīng)狀態(tài):?ss -tnl
另一個(gè)檢測(cè)nrpe是否工作正常的辦法是在nagios服務(wù)器上使用check_nrpe插件來(lái)測(cè)試與這臺(tái)客戶(hù)端的nrpe通信是否正常:

使用nagios監(jiān)控主機(jī)及服務(wù)

05

配置nagios監(jiān)控主機(jī)及服務(wù)

5.1 nagios配置文件位置

nagios要對(duì)哪些主機(jī)監(jiān)控哪些內(nèi)容都是通過(guò)名為.cfg的配置文件進(jìn)行定義的。
它們通常是位于/usr/local/nagios/etc目錄中的*.cfg以及位于/usr/local/nagios/etc/objects目錄下的*.cfg。
默認(rèn)的文件如下:

使用nagios監(jiān)控主機(jī)及服務(wù)

再看看/objects/目錄下的內(nèi)容:

使用nagios監(jiān)控主機(jī)及服務(wù)

5.2 各配置文件的作用:

  • nagios.cfg主配置文件
    nagios.cfgnagios服務(wù)端的主配置文件,它可以定義其它*.cfg配置文件的位置,是否啟用性能監(jiān)控(收集監(jiān)控?cái)?shù)據(jù)以生成圖表),性能數(shù)據(jù)處理指令,性能數(shù)據(jù)文件格式模板及存放位置等,配置nagios日志文件存放的信息級(jí)別及位置,nagios進(jìn)程的啟動(dòng)用戶(hù)及組,日志文件的切割方式,顯示的日期格式等等。如果只是實(shí)現(xiàn)對(duì)主機(jī)及服務(wù)的監(jiān)控,不出監(jiān)控圖的話,默認(rèn)可以不改動(dòng)這一文件。
  • templates.cfg模板定義文件
    templates.cfg是監(jiān)控的模板文件,對(duì)所有主機(jī)、服務(wù)、聯(lián)系人的定義為簡(jiǎn)化配置都可以根據(jù)需求定制相應(yīng)的模板,然后在主機(jī)、服務(wù)、聯(lián)系人配置文件中去引用模板即可。下面進(jìn)行簡(jiǎn)要說(shuō)明:

使用nagios監(jiān)控主機(jī)及服務(wù)

以上便是templates.cfg文件中的主要內(nèi)容,可以按需修改已定義的模板或者新定義模板。其中涉及到部分對(duì)command的定義,它是需要在commands.cfg文件中進(jìn)行定義的。

  • commands.cfg命令定義文件
    commands.cfg文件可以包含監(jiān)控時(shí)需要用到的指令的定義,由這些指令來(lái)完成具體的監(jiān)控工作,它們可以在services.cfg文件中被調(diào)用。配置示例如下:

使用nagios監(jiān)控主機(jī)及服務(wù)

這里有一個(gè)名為check_nrpe的command特別重要:需要指定它才能夠啟動(dòng)本地的check_nrpe去連接被監(jiān)控端上的nrpe daemon,并在被監(jiān)控端執(zhí)行相應(yīng)的命令,需要自己添加,默認(rèn)commands.cfg文件里是沒(méi)有的:

使用nagios監(jiān)控主機(jī)及服務(wù)
  • contacts.cfg聯(lián)系人定義文件
    contracts.cfg這一文件定義了當(dāng)需要發(fā)送告警通知時(shí),需要發(fā)給哪些聯(lián)系人組,然后不同的組里可以分別定義相應(yīng)的成員,默認(rèn)情況下會(huì)將通知發(fā)給名為admins的組,里面包含的email地址即為接收告警通知郵件的地址。示例如下:

使用nagios監(jiān)控主機(jī)及服務(wù)
  • timeperiods.cfg時(shí)間段模板定義文件
    timeperiods.cfg主要用來(lái)對(duì)要進(jìn)行監(jiān)控的時(shí)間段以及可以發(fā)送通知的時(shí)間段進(jìn)行定義,很靈活很方便。

使用nagios監(jiān)控主機(jī)及服務(wù)
  • localhost.cfg監(jiān)控服務(wù)器配置文件
    localhost.cfg這個(gè)文件是用來(lái)定義對(duì)這臺(tái)nagios服務(wù)器的哪些資源及服務(wù)進(jìn)行監(jiān)控的,它主要包含兩部分的定義,針對(duì)host級(jí)別的和針對(duì)service級(jí)別的。示例如下:

    使用nagios監(jiān)控主機(jī)及服務(wù)
  • hosts.cfg定義要被監(jiān)控的主機(jī)
    hosts.cfg文件可以將網(wǎng)絡(luò)中所有需要監(jiān)控的主機(jī)定義進(jìn)來(lái),并將它們根據(jù)需求分組,一臺(tái)主機(jī)可以同時(shí)屬于不同的組,默認(rèn)情況下不允許組里面一臺(tái)主機(jī)都沒(méi)有,然后根據(jù)需要調(diào)用不同的主機(jī)模板(事先在templates.cfg中定義)。另一點(diǎn)很重要的是這個(gè)文件需要自己創(chuàng)建,不建議直接在localhost.cfg里添加。示例如下:

使用nagios監(jiān)控主機(jī)及服務(wù)
  • services.cfg定義要被監(jiān)控的服務(wù)
    services.cfg這個(gè)文件默認(rèn)也是不存在的,需要手工創(chuàng)建,可以以localhost.cfg里定義的service部分作為模板進(jìn)行修改。在它里面可以針對(duì)不同的服務(wù)調(diào)用不同的模板,以及把這些服務(wù)應(yīng)用到哪些主機(jī)或主機(jī)組上。示例如下:使用nagios監(jiān)控主機(jī)及服務(wù)

由于新增加了兩個(gè)配置 文件(hosts.cfg和services.cfg),所以需要在nagios主配置文件(nagios.cfg)中指明它們的位置,只需要在nagios.cfg中加上兩行,搜索下cfg_file加到它們的下面即可:

使用nagios監(jiān)控主機(jī)及服務(wù)

5.3 檢查配置文件

nagios自帶的就有配置文件語(yǔ)法及邏輯檢測(cè)工具,檢測(cè)方式:

使用nagios監(jiān)控主機(jī)及服務(wù)

檢測(cè)如果沒(méi)有問(wèn)題,則可以重載nagios服務(wù),使用最新配置文件來(lái)工作了。

使用nagios監(jiān)控主機(jī)及服務(wù)

重載服務(wù)service nagios reload

5.4 客戶(hù)端配置監(jiān)測(cè)命令及參數(shù)

要實(shí)現(xiàn)對(duì)Linux主機(jī)的監(jiān)控還差非常關(guān)鍵的一步,去到各被監(jiān)控Linux主機(jī)上配置實(shí)際要執(zhí)行的指令,它們是在/etc/usr/local/nagios/etc/nrpe.cfg文件中定義的。 示例文件如下:

使用nagios監(jiān)控主機(jī)及服務(wù)

注意:[]中的內(nèi)容,這些字符要和nagios服務(wù)端上
services.cfg里定義command時(shí)check_nrpe!后面的字符完全一樣,等號(hào)中的內(nèi)容則前面介紹的方法查看每個(gè)plugin的具體用法。

客戶(hù)端在修改完nrpe.cfg文件以后,需要重啟nrpe進(jìn)程:

使用nagios監(jiān)控主機(jī)及服務(wù)

06

登錄nagios web頁(yè)面查看監(jiān)控?cái)?shù)據(jù)

在nagios客戶(hù)端還沒(méi)有配置好nrpe.cfg文件時(shí),nagios server是無(wú)法監(jiān)控到客戶(hù)端的,此時(shí)應(yīng)該可以通過(guò)web頁(yè)面查看到一堆NRPE:undefined command之類(lèi)的錯(cuò)誤信息,當(dāng)客戶(hù)端nrpe服務(wù)修改完成并重啟之后,過(guò)會(huì)兒就能夠正常監(jiān)控上這些客戶(hù)端了。效果展示如下:

使用nagios監(jiān)控主機(jī)及服務(wù)

主機(jī)監(jiān)控視圖

使用nagios監(jiān)控主機(jī)及服務(wù)

細(xì)心的讀者可能已經(jīng)發(fā)現(xiàn)兩圖中,日期格式好像更易讀,默認(rèn)會(huì)顯示為04-08-2017 22:30:00這種,這是因?yàn)楣P者修改了nagios.cfg的date_formatiso8601,具體可查看nagios.cfg文件獲知。

07

結(jié)尾

在前期安裝及配置過(guò)程中要仔細(xì)留意可能出現(xiàn)的警告及錯(cuò)誤信息,盡可能修復(fù)它們之后在后續(xù)操作,nagios跑起來(lái)以后,可以通過(guò)查看/var/log/messages或者/usr/local/nagios/var/nagios.log來(lái)觀察錯(cuò)誤信息,以找到解決辦法。
比如:
在系統(tǒng)運(yùn)行過(guò)程中因?yàn)閚agios server和客戶(hù)端nrpe間需要建立ssl會(huì)話,所以openssl,openssl-devel包是需要安裝的。如果要使用snmp監(jiān)控主機(jī)及服務(wù)則需要安裝net-snmp包。如果對(duì)防火墻不熟悉建議關(guān)閉其服務(wù),關(guān)閉SELinux。這些在文中未提到,但也是需要注意的地方。

通過(guò)nagios實(shí)現(xiàn)對(duì)主機(jī)和服務(wù)的監(jiān)控基本操作方法就寫(xiě)到這兒,在日常使用中有很多可可以深入的地方,特別是對(duì)現(xiàn)網(wǎng)各種服務(wù)各項(xiàng)指標(biāo)的監(jiān)控工作,還需要開(kāi)發(fā)插件然后部署才能夠?qū)崿F(xiàn),這應(yīng)該才是監(jiān)控類(lèi)軟件應(yīng)用真正有挑戰(zhàn)的地方,考驗(yàn)運(yùn)維工程師的開(kāi)發(fā)能力,nagios支持使用perl、Python、shell,C等語(yǔ)言開(kāi)發(fā)插件以滿足實(shí)際業(yè)務(wù)監(jiān)控需求。

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國(guó)內(nèi)好評(píng)如潮的Linux云計(jì)算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開(kāi)發(fā)專(zhuān)業(yè)人才培訓(xùn)機(jī)構(gòu)!