天天看點

nagios監控服務

                        nagios監控系統

1: ngios工作原理

1.Nagios的功能是監控服務和主機,但是他自身并不包括這部分功能,所有的監控、檢測功能都是通過各種插件來完成的。

  啟動Nagios後,它會周期性的自動調用插件去檢測伺服器狀态,同時Nagios會維持一個隊列,所有插件傳回來的狀态資訊都進入隊列,Nagios每次都從隊首開始讀取資訊,并進行處理後,把狀态結果通過web顯示出來。

Nagios提供了許多插件,利用這些插件可以友善的監控很多服務狀态。安裝完成後,在nagios主目錄下的/libexec裡放有nagios自帶的可以使用的所有插件,如,check_disk是檢查磁盤空間的插件,check_load是檢查CPU負載的,等等。每一個插件可以通過運作./check_xxx –h 來檢視其使用方法和功能。

2.Nagios可以識别4種狀态傳回資訊,即 0(OK)表示狀态正常/綠色、1(WARNING)表示出現警告/×××、2(CRITICAL)表示出現非常嚴重的錯誤/紅色、3(UNKNOWN)表示未知錯誤/深×××。Nagios根據插件傳回來的值,來判斷監控對象的狀态,并通過web顯示出來,以供管理者及時發現故障。

四種監控狀态

nagios監控服務

3.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 依次讀取隊列中的資訊,再把結果顯示出來。

4.nagios監控一個服務或主機的方式

1.【被動監控】nagios通過nsca進行被動監控。那麼什麼是被動監控呢?被動監測:就是指由被監測的伺服器主動上傳資料到nagios監控系統中。這種監測方式提高了實時性(出現問題的時候,被監測的伺服器可以及時上傳資料通知nagios,進而使管理者可以盡快作出處理,而不用像主動監測中一樣,非要等到下一個監測周期才能獲知被監測伺服器的狀态)。NSCA就是可以實作Nagios被動監測的一個程式。目前所知道的,隻能通過nsca插件對linux/unix伺服器進行被動監控。對于windows伺服器暫時沒發現可用的插件。

2.【主動監控】nagios通過nrpe插件和snmp協定進行主動監控。至于什麼是主動監控可以參考上面所述。簡單了解決就是nagios按照檢測周期主動的擷取遠端主機的資料。這樣一來實時性就要差一些了。nagios通過nrpe插件和snmp協定實作了對linux/unix伺服器進行監控,同時通過snmp協定實作了對windows伺服器、交換機、列印機等的監控。另外,nagios通過NSClient++用戶端也可以對windows進行監控

nagios監控服務

四、nagios監控一個服務或主機的途徑

nagios本身并沒有監控的功能,所有的監控是由插件完成的,插件将監控的結果傳回給nagios,nagios分析這些結果以web的方式展現給我們,同時提供相應的報警功能(這個報警的功能也是由相應的插件完成的)。

根據上圖可以看出有這麼幾大類,這些都是nagios所要調用的插件類型

1.snmp類

【可以監控本地/遠端linux/unix主機和遠端windows伺服器、交換機、列印機】

2.nrpe類

【主要監控本地主機和遠端主機的服務的狀态,切記是針對于服務】

3.nsca類

【nsca主要是實作被動監控的】

4.nagios-plugins類

【nagios-plugins是nagios官方提供的一套插件程式,nagios監控主機的功能其實都是通過執行插件程式來實作的。】

所有的這些插件是一些實作特定功能的可執行程式,預設安裝的路徑是/

實驗過程:

一、建構nagios監控系統

1.關閉防火牆

#service  iptables  stop

#chkconfig  iptables  off

nagios監控服務

2. 建立nagios使用者群組

[root@centos1 ~]# useradd -s /sbin/nologin nagios

[root@centos1 ~]# mkdir /usr/local/nagios

[root@centos1 ~]# chown -R  nagios:nagios  /usr/local/nagios

[root@centos1 ~]#

nagios監控服務

3.安裝依賴包

[root@centos1 ~]# yum -y install php httpd mysql-devel

nagios監控服務

4.編譯安裝nagios

[root@centos1 nagios-4.0.1]# tar zxf /mnt/nagios-4.0.1.tar.gz -C /usr/src

nagios監控服務

[root@centos1 nagios-4.0.1]# cd /usr/src/nagios-4.0.1/

nagios監控服務

[root@centos1 nagios-4.0.1]# ./configure --prefix=/usr/local/nagios

nagios監控服務

[root@centos1 nagios-4.0.1]# make all   //編譯

nagios監控服務

[root@centos1 nagios-4.0.1]# make install  //安裝nagios的主程式的cgi和html

nagios監控服務

[root@centos1 nagios-4.0.1]# make install-init  //生成服務腳本/etc/rc.d/init.d下

nagios監控服務

[root@centos1 nagios-4.0.1]# make install-commandmode //給外部程式通路nagios配置設定權限

nagios監控服務

[root@centos1 nagios-4.0.1]# make install-config //生成nagios配置檔案的樣例,安裝路徑為/usr/local/nagios/etc目錄下

nagios監控服務

[root@centos1 nagios-4.0.1]# make install-webconf//生成通路web接口檔案,自動修改httpd.conf檔案,以讓nagios的web監控頁面必須經過授權才能通路

nagios監控服務

[root@centos1 nagios-4.0.1]# chkconfig --add nagios

[root@centos1 nagios-4.0.1]# chkconfig --level 35  nagios on

[root@centos1 nagios-4.0.1]#

nagios監控服務

5.驗證安裝是否成功要檢視/usr/local/nagiso目錄是否如下:

[root@centos1 nagios-4.0.1]# ls  /usr/local/nagios

bin  etc  libexec  sbin  share  var

nagios監控服務

6.安裝nagios插件

①安裝nagions插件

[root@centos1 nagios-plugins-1.5]# tar zxvf  /mnt/nagios-plugins-1.5.tar.gz -C /usr/src

nagios監控服務

[root@centos1 nagios-plugins-1.5]# cd /usr/src/nagios-plugins-1.5/

make[1]: Leaving directory `/usr/src/nagios-plugins-1.5'

nagios監控服務

[root@centos1 nagios-plugins-1.5]# ./configure --prefix=/usr/local/ngios

[root@centos1 nagios-plugins-1.5]# make&&make install

nagios監控服務

如要擷取遠端主機的本地資源或屬性,如cpu使用率、磁盤資源等,需要借用外部建構NRPE來完成

②監控端和被監控端之間使用ssl安全同道。需要首先安裝openssl-devel

[root@centos1 nagios-plugins-1.5]# yum -y install openssl-devel

nagios監控服務

#tar zxvf  /mnt/nrpe-2.15.tar.gz  -C /usr/src

#cd  /usr/src/nrpe-2.15

nagios監控服務

#./configure

#make all

#make  install-plugin  //将check_nrpe插件安裝到/usr/local/nagios/libexec目錄下

nagios監控服務

③為了安全起見,一般情況下要讓nagios的web監控頁面必須經過授權才能通路。這需要增加驗證配置,之前在安裝nagios時安裝了install-webconfig是以就不用手工修改httpd.conf檔案了,隻需要建立用于通路nagios的web頁面的驗證賬戶即可

[root@centos1 nrpe-2.15]# /usr/bin/htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadm

nagios監控服務

④驗證,在客戶機上打開浏覽器

nagios監控服務
nagios監控服務

二、配置nagios監控系統

1.配置檔案介紹

[root@centos1 etc]# cd /usr/local/nagios/etc

nagios監控服務

cgi.cfg   //控制cgi通路的配置檔案

nagios.cfg    //nagios主配置檔案

resource.cfg   //變量定義檔案,又稱為資源檔案,在這些檔案隻能給的定義的變量。在其他配置檔案中可以被使用,如$USER1$=/usr/local/nagios/libexec

objects  //objects是一個目錄,在此目錄下又很多配置檔案模版,用于定義nagios對象

objects/commands.cfg  //定義指令配置檔案,其中定義的指令可以被其它配置檔案引用

objects/contacts.cfg    //定義聯系人和聯系人組的配置檔案

objects/localhost.cfg    //定義監控問地主及的配置檔案

objects/printer.cfg     //定義監控列印機的一個配置檔案模版。預設沒有啟用此檔案

objects/switch.cfg      //定義監控路由器的一個配置檔案,預設沒有啟用

objects/templates.cfg   //定義主機和服務的一個模版配置檔案,可以在其他配置檔案中引用

objects/timeperiods.cfg  //定義nagios監控時間段的配置檔案

objects/windows.cfg     //定義監控windows主機的一個配置檔案模版,預設沒有啟動此檔案

2.配置檔案之間的關聯

四點:

l 定義監控哪些主機、主機組、服務和服務組

l 定義這個監控要什麼指令實作

l 定義監控的時間段

l 定義主機或服務出現問題時要通知的聯系人和聯系人組

3修改配置檔案

①/usr/local/nagios/etc/nagios.cfg  //主配置檔案

cfg_file=/usr/local/nagios/etc/objects/commands.cfg   //預設有

cfg_file=/usr/local/nagios/etc/objects/contacts.cfg  //預設有

cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg  //預設有

cfg_file=/usr/local/nagios/etc/objects/templates.cfg    //預設有

cfg_file=/usr/local/nagios/etc/objects/hostgroups.cfg   //手工寫

cfg_dir=/usr/local/nagios/etc/conf  //存放主機配置的目錄

需要手工添加:

nagios監控服務

[root@centos1 etc]# mkdir /usr/local/nagios/etc/conf

②/usr/local/nagios/etc/objects/commands.cfg  //加上電子郵件、飛信和nrpe插件,本例主要添加一個nrpe插件,其他都不定義(飛信、郵件等)

nagios監控服務

③/usr/local/nagios/etc/objects/contacts.cfg       //定義監控服務聯系人

nagios監控服務

define contactgroup{   //手工添加

        contactgroup_name yumwei

        alias yunwei

        members ywgcsz

}

nagios監控服務

/usr/local/nagios/etc/objects/hostgroups.cfg  //定義主機組 要手工建立

define hostgroup{

        hostgroup_name mysqlserver

        alias mysqlserver

        members 192.168.1.2

nagios監控服務

4.下面開始具體監控mysql、http主機的存活、負載和程序

[root@centos1 conf]# vim 192.168.1.2.cfg

define host {

host_name 192.168.1.2

alias 192.168.1.2

        address 192.168.1.2

        check_command check-host-alive

        max_check_attempts 5

        check_period 24x7

        contact_groups yunwei

        notification_period  24x7

        notification_options d,u,r

nagios監控服務

define service {

        host_name 192.168.1.2

        service_description check-host-alive

        max_check_attempts 3

        normal_check_interval 2

        retry_check_interval 2

        notification_interval 10

        notification_options w,u,c,r

nagios監控服務

        service_description check-procs

        check_command check_nrpe!check_total_procs

        max_chacek_attempts 3

        }

nagios監控服務

        service_description check-load

        check_command check_nrpe!check_load

nagios監控服務

define service{

service_description check-space

check_command check_nrpe!check_disk_space_free

max_check_attempts 3

normal_check_interval 2

retry_check_interval 2

check_period  24x7

notification_interval 10

notification_period 24x7

contact_groups yunwei

notification_options w,u,c,r

nagios監控服務

service_description check-http

check_command check_nrpe!check_http

nagios監控服務

service_description check-user

check_command check_nrpe!check_user

nagios監控服務

5.修改/usr/local/nagios/etc/cgi.cfg

use_authentication=0

nagios監控服務

三、被控端配置 (配置和管理伺服器基本一樣如以下指令)

[root@centos2 ~]# yum -y install openssl openssl-devel

[root@centos2 ~]# useradd nagios -s /sbin/nologin

[root@centos2 nagios-plugins-1.5]# tar zxvf /mnt/nagios-plugins-1.5.tar.gz -C /usr/src

[root@centos2 nagios-plugins-1.5]# cd /usr/src/nagios-plugins-1.5/

[root@centos2 nagios-plugins-1.5]# ./configure --prefix=/usr/local/nagios

[root@centos2 nagios-plugins-1.5]# make&&make install

[root@centos2 nagios-plugins-1.5]# chown -R nagios:nagios /usr/local/nagios

[root@centos2 nagios-plugins-1.5]# tar zxvf /mnt/nrpe-2.15.tar.gz -C /usr/src

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

[root@centos2 nrpe-2.15]# make all &&make install-plugin && make install-daemon

[root@centos2 nrpe-2.15]# make install-daemon-config

[root@centos2 nrpe-2.15]# ps -ef |wc -l

[root@centos2 nrpe-2.15]# more /proc/cpuinfo |grep proc |wc -l

[root@centos2 nrpe-2.15]# vim /usr/local/nagios/etc/nrpe.cfg

allowed_hosts=127.0.0.1,192.168.1.1(主要端)

command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 170

     commad[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20

command[check_disk_space_free]=/usr/local/nagios/libexec/check_disk -w 95% -c 98% -p /

command[check_http]=/usr/local/nagios/libexec/check_tcp -H 192.168.1.1-p 80

command[check_user]=/usr/local/nagios/libexec/check_users -w 2 -c 3

nagios監控服務

然後在伺服器端測試nrpe運作是否正常

connect to host 192.168.1.1 port 5666: Connection refused[root@centos1 conf]# /usr/local/nagios/libexec/check_nrpe -H 192.168.1.2(被控端)

nagios監控服務

四、啟動主要端ngios服務

#/etc/init.d/nagios  restart

繼續閱讀