天天看點

Nagios 監控 Linux 伺服器概要簡介Nagios 服務端安裝 check_nrpe 插件被監控主機上安裝 Nagios 插件及 NRPE 代理配置 Nagios

概要

本文描述如何監控 Linux/UNIX 主機的系統屬性和本地服務,例如:

  • CPU 負載
  • 記憶體占用
  • 磁盤使用
  • 目前登入使用者
  • 運作程序

Linux/UNIX 主機的公共服務,例如 HTTP,SSH 等不在本文的讨論範圍内,本文僅僅描述如上所述的系統屬性和本地服務。

簡介

有很多方法可以監控 Linux/Unix 主機的系統屬性和本地服務,例如可以通過利用 SSH 登入遠端主機,執行監控指令,Nagios 也提供了這種方式的插件

check_by_ssh

,通過這個插件可以執行被監控主機上的監控指令。這裡并不推薦使用這種方法,因為當需要監控很多主機時,頻繁建立和銷毀 SSH 連接配接會非常影響監控伺服器的性能。

另一種常用的方法是使用 NRPE 插件來實作監控遠端主機的,NRPE 使你可以執行遠端 Linux/UNIX 主機上的監控指令:

Nagios 監控 Linux 伺服器概要簡介Nagios 服務端安裝 check_nrpe 插件被監控主機上安裝 Nagios 插件及 NRPE 代理配置 Nagios

NRPE 插件由兩部分組成:

  • NRPE: NRPE 是運作在遠端被監控的主機上的代理程式,接收有 Nagios 伺服器通過

    check_nrpe

    發送的檢查請求。當收到檢查請求時,它會按照請求要求執行相應的檢查指令,然後将結果傳回給 Nagios 監控伺服器。
  • check_nrpe:這個監控插件運作在 Nagios 伺服器,用來與遠端主機上的 NRPE 代理程式互動。使用這個插件時,它會告訴遠端主機上 NRPE 代理程式需要監控的項目,收到傳回結果後,它會将其轉為自己的輸出代碼輸出結果。

Nagios 服務端安裝 check_nrpe 插件

編譯 NRPE 插件時需要安裝

openssl-devel

yum install openssl-devel
           

下載下傳 NRPE 軟體包,可以前往 https://exchange.nagios.org/ 搜尋最新的軟體包

解壓縮

tar -zxvf .tar.gz
cd 
           

編譯并安裝插件

./configure
make all
make install-plugin
           

安裝完成後就可以在

/usr/local/nagios/libexec

下找到

check_nrpe

插件。

被監控主機上安裝 Nagios 插件及 NRPE 代理

準備工作

安裝編譯環境

建立 nagios 使用者,可以将 nagios 使用者設定為不可登入

useradd nagios
           

安裝nagios 插件

下載下傳 nagios 插件

解壓縮并安裝

tar -zxvf nagios-plugins-.tar.gz
cd nagios-plugins-
./configure
make
make install
           

設定權限

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

安裝 xinetd

xinetd 是 Linux 下的守護程序,稍後安裝的 NRPE 将托管在 xinetd 下。

這種方式的優點是空閑時隻有 xinetd 這一守護程序占有系統資源,而托管在它上邊的其他的内部服務不會一直占有系統資源,隻有請求到來時才會被 xinetd 喚醒。并且通過 xinetd 還可以對它所管理的内部程序設定相應的通路權限。

yum install xinetd
           

安裝 NRPE

載 NRPE 軟體包,可以前往 https://exchange.nagios.org/ 搜尋最新的軟體包

解壓縮

tar -zxvf .tar.gz
cd 
           

編譯并安裝插件及配置檔案

./configure
make all

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

不同版本的 nrpe 安裝參數有可能不一緻,運作 make 可以列出所有的參數

修改 nrpe 配置

vi /usr/local/nagios/etc/nrpe.cfg

,将 server_address 修改為 Nagios 伺服器位址。

配置 xinetd,編輯

/etc/xinetd.d/nrpe

vi /etc/xinetd.d/nrpe 
           

将下列行中允許通路的 ip 位址改為 Nagios 伺服器的位址,并開啟服務

service nrpe
{
    disable         = no   \\注意将這裡修改成no
    socket_type     = stream
    port            = 
    wait            = no
    user            = nagios
    group           = nagios
    server          = /usr/local/nagios/bin/nrpe
    server_args     = -c /usr/local/nagios/etc/nrpe.cfg --inetd
    only_from       = <nagios_ip_address>  \\ 設定為nagios伺服器位址
    log_on_failure  += USERID
}
           

将 nrpe 服務說明添加至

/etc/services

設定防火牆

firewall-cmd --zone=public --add-port=5666/tcp --permanent
firewall-cmd --reload
           

啟動 xinetd

此時可以回到監控伺服器上,運作插件檢查

傳回 nrpe 版本就說明遠端主機上 nrpe 安裝正确。

配置 Nagios

command 定義

vi /usr/local/nagios/etc/objects/commands.cfg 
           

插入如下定義:

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

建立 linux 伺服器配置檔案

linux.cfg

vi /usr/local/nagios/etc/objects/linux.cfg 
           

主機定義

define host{
    use             linux-server
    host_name       linuxserver
    alias           My linux Server
    address         
}
           
  • use: 使用模闆 linux-server
  • host_name:主機名稱
  • alias:别名或描述
  • address: IP位址

監控服務定義

設定監控 CPU 負載

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

設定監控目前登入使用者

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

設定監控磁盤 /dev/hda1 的使用情況

define service{
    use generic-service
    host_name linuxserver
    service_description /dev/hda1 Free Space
    check_command check_nrpe!check_hda1
}
           

設定監控程序數

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

集中說明一下,在 check_command 定義中,check_nrpe 後邊連接配接的就是遠端主機中定義的監控指令,遠端主機的定義可以在遠端主機的

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

中檢視到:

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10
command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20
command[check_hda1]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /dev/hda1
command[check_total_procs]=/usr/local/nagios/libexec/check_procs -w 150 -c 200
           

重新啟動 nagios 服務,就可以看到新增的監控主機

Nagios 監控 Linux 伺服器概要簡介Nagios 服務端安裝 check_nrpe 插件被監控主機上安裝 Nagios 插件及 NRPE 代理配置 Nagios

繼續閱讀