ubuntu系統

  

1. 監控原理

監控方式有兩種,一種是利用ssh方式,執行Nagios的check_by_ssh來執行被監控服務器上的插件程序,從而獲取相關的信息。但是這種方式,當運用於監控上百臺服務器時,由於ssh連接的建立和中斷,會對Nagios服務器產生高負載現象,所以不建議使用。它的優點在安全性高與採用NRPE的插件方式。

另外一種方式,是常用的方式。就是在被監控的Linux/Unix的服務器上安裝NRPE監控引擎,然後Nagios服務器通過check_nrpe的程序,利用ssl通訊模式調用nrpe獲取相關數據信息。優點包括可以使用Nagios的大多數監控插件。處理可以監控自身的狀態變化,還可以拓展應用監控其它服務器的開放服務。 

  

2. 監控內容

Linux/Unix服務器的內部參數包括以下

  • 內存使用狀況 
  • CPU負載
  • 磁盤使用狀況
  • 運行的進程
  • 登錄用戶

 

 

外部監控內容,可以使用Nagios的監控插件,監控其他的服務器開放的服務。起到間接監控的作用或者說是代理監控。

 

 

3.安裝步驟

配置環境 ubuntu 8.0

a.前提條件

  • 在Linux服務器上具有root權限
  • 允許建立nagios帳號讓遠程訪問
  • 安裝以下包
    • apt-get install gcc 
    • apt-get install build-essential
    • apt-get install libssl0.9.8
    • apt-get install libssl-dev
    • apt-get install openssl

b.遠程主機配置

  • 創建賬戶nagios並設定密碼

useradd nagios

password nagios

  • 下載nagios的插件資料,解包安裝

下載地址 http://osdn.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.6.tar.gz

  • 解開nagios plugins的源代碼包

tar xzvf nagios-plugins-1.4.6.tar.gz

cd nagios-plugins-1.4.6

  • 編譯安裝nagios plugins

./configura

make

make install

  • 改變安裝目錄和文件的用戶和組屬性

chown nagios.nagios /usr/local/nagios

chown -R nagios.nagios /usr/local/nagios/libexec

 

c.安裝NRPE

tar -zxvf nrpe-2.8.tar.gz

  • 編譯NRPE

    ./configure
    make all

    注意事項: 在ubuntu下面安裝時,需要先確認安裝了openssl libssl0.9.8 libssl-dev 

  • 安裝NRPE插件、進程程序和案例進程

make install-plugin
make install-daemon
make install-daemon-config

  • 安裝NRPE到xinet服務中

make install-xinetd

  • 編輯/etc/xinetd.d/nrpe 將nagios的服務器ip添加進去

only_from= 127.0.0.1

  • 將NRPE進程端口加到/etc/services中
nrpe  5666/tcp
  • 重新啓動xinetd服務

service xinetd restart

d. 測試NRPE是否正常

  • 確認nrpe是否在xinetd下運行

netstat -at |grep nrpe

如果反饋的是以下信息,則表示運行正常。

tcp        0      0 *:nrpe                  *:*                     LISTEN

沒有出現以上信息,則從下面找問題

    • 確認/etc/services中是否添加nrpe的端口描述
    • 在/etc/xinetd.d/nrpe文件中的only_from參數是否包含了"127.0.0.1"
    • 確認xinetd.d是否安裝和啓動
    • 查看系統日誌中涉及xinetd或nrpe的問題,進行修正
  • 確認NRPE進程是否正常運行,利用check_nrpe來做檢測,執行指令如下:

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

正常反饋信息爲 NRPE v2.8

e.客製化NRPE指令

編輯/usr/local/nagios/etc/nrpe.cfg

在最後的COMMAND部分已經定義了部分監測的指令,你可以根據實際情況進行添加修改參數。

同時,可以用以下指令檢測nrpe調用nagios插件是否正常

/usr/local/nagios/libexec/check_nrpe -H localhost -c check_users
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_load
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_hda1
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_zombie_procs

f.監控服務器設置

  • 需要完成內容包括
    • 安裝check_nrpe 插件
    • 創建一個Nagios使用check_nrpe插件的指令定義
    • 創佳監控遠程主機的Nagios主機和服務定義
  • 安裝check_nrpe插件步驟

安裝ssl的包

apt-get install libssl-dev

下載nrpe源碼包

解壓縮該包 tar -zxvf nrpe-2.*.tar.gz

cd nrpe-2.*

./configure

make all

安裝check_nrpe程序到/usr/local/nagiso/libexec/

make install-plugin  

  • 測試與被監控主機的nrpe程序的通信狀況

先編輯被監控主機的/etc/xinetd.d/nrpe中的only_from的參數爲監控服務器的ip

重新啓動xinetd的服務 service xinetd restart

在監控服務器上,運行 /usr/local/nagios/libexec/check_nrpe -H 被監控主機IP

正常反饋信息如下:

NRPE  v2.8

如果有問題,用telnet IP地址 5666檢測一下。如果被直接connection closed,則需要查看一下防火牆的規則和被監測主機的nrpe的進程

  • 創建command定義

編輯/usr/local/nagios/etc/objects/commands.cfg增加以下配置信息

define command{
        command_name    check_nrpe
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
        }

  • 定義主機和服務設定

先建立一個模板用於之後的主機監控的繼承設定(在/usr/local/nagios/etc/objects/templates.cfg已經有添加了這個模板規則,只是notification_period不一樣而已,關於這個的解釋也非常有意思可以自己看看)

define host{
     name linux-server ; Name of this template
     use generic-host ; Inherit default values
     check_period 24x7
     check_interval 5
     retry_interval 1
     max_check_attempts 10
     check_command check-host-alive
     notification_period 24x7
     notification_interval 30
     notification_options d,r
     contact_groups admins
     register 0 ; DONT REGISTER THIS - ITS A TEMPLATE
}

編輯/usr/local/nagios/etc/objects/localhost.cfg(也可以自己創建文件,只要在nagios.cfg中添加對應配置)

增加被監控的主機對象

define host{
        use             linux-server
        host_name       web-server                      ;nrpe check host
        alias               ubuntu server (WWW)
        address         192.168.200.244
        }

 

增加監控遠程服務器的服務對象

 

define service{
        use                     generic-service
        host_name               web-server
        service_description     CPU Load
        check_command           check_nrpe!check_load
        }

define service{
        use                     generic-service
        host_name               web-server
        service_description     Current Users
        check_command           check_nrpe!check_users
        }

#磁盤監控需要確認自己的硬盤是hda 還是sda,nrpe安裝的默認配置是check_hda1,所以需要你手動修改被監控服務器的/usr/local/nagios/etc/nrpe.cfg,將hda修改爲sda。並重新啓動xinetd服務

define service{
        use                     generic-service
        host_name               web-server
        service_description     /dev/sda1 Free Space
        check_command           check_nrpe!check_sda1
        }

define service{
        use                     generic-service
        host_name               web-server
        service_description     Total Processes
        check_command           check_nrpe!check_total_procs
}

define service{
        use                     generic-service
        host_name               web-server
        service_description     Zombie Processes
        check_command           check_nrpe!check_zombie_procs
}

配置完成後,運行/etc/init.d/nagios checkconfig  或

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg 檢測nagios配置是否正確。

沒有問題,重新啓動nagios服務,則可以通過網頁來查看監控結果了。

 

4.自定義監控服務

由於前面的服務是nrpe主機上的默認建立的樣例規則。如果手動建立服務監控需要做以下操作

  • 在nrpe.cfg上建立監控服務指令和參數
  • 在nagios服務器上建立對應的服務定義

 

a.被監控主機的配置內容

在/usr/local/nagios/libexec下,有很多監控插件。在寫入nrpe.cfg前,先用指令測試這個插件和參數所產生的結果是否符合要求

例如 /usr/local/nagios/libexec/check_swap -w 20% -c 10%  ‘監控swap的使用狀況

編輯/usr/local/nagios/etc/nrpe.cfg

添加一行   command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%

然後重新啓動xinetd服務

b.Nagios服務的配置內容

編輯/usr/local/nagios/etc/objects/localhost.cfg

添加以下內容

service{

use                               generic_service

hostname                     web_server

service_description      swap status

check_command            check_nrpe!check_swap

}

然後重新啓動nagios服務,這個新的監控服務就完成創建了。

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