Nagios監控遠程主機


Nagios監控遠程主機

Nagios 主要用於監控一台或者多台本地主機及遠程的各種信息,包括本機資源及對外的服務等。默認的Nagios 配置沒有任何監控內容,僅是一些模板文件。若要讓Nagios 提供服務,就必須修改配置文件,增加要監控的主機和服務,下面將詳細介紹。

文件名或目錄名

用途

cgi.cfg

控制CGI訪問的配置文件

nagios.cfg

Nagios 主配置文件

resource.cfg

變量定義文件,在些文件中定義變量,以便由其他配置文件引用,如$USER1$

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 主機的一個配置文件模板,默認沒有啟用此文件

為了能更清楚的說明問題,同時也為了維護方便,建議將nagios各個定義對象創建獨立的配置文件:

· 創建hosts.cfg文件來定義主機和主機組以及服務

· 用默認的contacts.cfg文件來定義聯系人和聯系人組

· 用默認的commands.cfg文件來定義命令

· 用默認的timeperiods.cfg來定義監控時間段

· 用默認的templates.cfg文件作為資源引用文件

說明: nrpe

NRPE 總共由兩部分組成:

·check_nrpe 插件,位於監控主機上

·NRPE daemon,運行在遠程的Linux主機上(通常就是被監控機)

按照上圖,整個的監控過程如下:

Nagios 需要監控某個遠程Linux 主機的服務或者資源情況時:

1.Nagios 會運行check_nrpe 這個插件,告訴它要檢查什么;

2.check_nrpe 插件會連接到遠程的NRPE daemon,所用的方式是SSL

3.NRPE daemon 會運行相應的Nagios 插件來執行檢查;

4.NRPE daemon 將檢查的結果返回給check_nrpe 插件,插件將其遞交給nagios做處理。

5.注意:NRPE daemon 需要Nagios 插件安裝在遠程的Linux主機上,否則,daemon不能做任何的監控。

被監控端安裝NRPE

NRPE依賴於nagios-plugins,因此,需要先安裝nagios-plugins

nagios-plugins-2.0.3.tar.gz

nrpe-2.15.tar.gz

安裝Plugins

useradd -s /sbin/nologin nagios             創建nagios用戶,不允許登陸系統

解壓

cd /usr/local/src                                        進入源碼包目錄

tar -zxf nagios-plugins-2.0.3.tar.gz       解壓plugins

cd nagios-plugins-2.0.3                                   進入plugins目錄

配置編譯

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

--with-nagios-user=nagios \

--with-nagios-group=nagios \

--with-mysql=/usr/local/mysql

根據服務器mysql安裝路徑進行調整更改,如不監控mysql可不加此選項

編譯安裝

make                  編譯

make install       編譯安裝

驗證安裝

/usr/local/nagios/libexex/ 下是否有很多 check文件

有成功,無就重新安裝

安裝npre

yum -y install xinetd                           nrpe作為xinetd下獨立服務運行

解壓

cd /usr/local/src                                 進入源碼包目錄

tar -zxf nrpe-2.15.tar.gz                   解壓nrpe

cd nrpe-2.15                                        進入nrpe目錄

配置編譯

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

--with-nrpe-user=nagios \

--with-nrpe-group=nagios \

--with-nagios-user=nagios \

--with-nagios-group=nagios \

--enable-command-args \

--enable-ssl

編譯安裝

make all

make install-plugin                             安裝check_nrpe 這個插件

make install-daemon                         安裝deamon

make install-daemon-config            安裝配置文件

make install-xinetd                      NRPE deamon作為xinetd下一個服務運行xinetd就必須要先安裝

編輯配置文件

vim /etc/services

nrpe            5666/tcp                # NRPE                  最后添加一行

 

vim /etc/xinetd.d/nrpe

only_from 后面添加監控端地址

# default: on

# description: NRPE (Nagios Remote Plugin Executor)

service nrpe

{

flags           = REUSE

socket_type     = stream

port            = 5666

wait            = no

user            = nagios

group           = nagios

server          = /usr/local/nagios/bin/nrpe

server_args     = -c /usr/local/nagios/etc/nrpe.cfg --inetd

log_on_failure  += USERID

disable         = no

only_from       = 127.0.0.1 192.168.44.100

}

啟動nrpe

service xinetd start        啟動xinetd

 

netstat -an | grep 5666

tcp        00 :::5666                :::*               LISTEN

5666端口監聽正常,nrpe服務正常啟動

 

注意:-c 后面接的監控命令必須是nrpe.cfg 文件中定義的。也就是NRPE daemon只運行nrpe.cfg中所定義的命令。

cd /usr/local/nagios/etc

cat nrpe.cfg |grep -v "^#"|grep -v "^$"

log_facility=daemon

pid_file=/var/run/nrpe.pid

server_port=5666

nrpe_user=nagios

nrpe_group=nagios

allowed_hosts=127.0.0.1

 

dont_blame_nrpe=0

allow_bash_command_substitution=0

debug=0

command_timeout=60

connection_timeout=300

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_zombie_procs]=/usr/local/nagios/libexec/check_procs -w 5 -c 10 -s Z

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

紅色部分是命令名,也就是check_nrpe -c 參數可以接的內容,等號 = 后面是實際執行的插件程序(這與commands.cfg 中定義命令的形式十分相似,只不過是寫在了一行)。也就是說check_users 就是等號后面/usr/local/nagios/libexec/check_users -w 5 -c 10 的簡稱。

常見問題分析

錯誤:SSL headers... configure: error: Cannot find ssl headers

解決:yum -y install openssl-devel

 

監控端安裝NRPE

監控端已經安裝plugins    直接安裝nrpe即可

解壓

cd /usr/local/src                                 進入源碼包目錄

tar -zxf nrpe-2.15.tar.gz                   解壓nrpe

cd nrpe-2.15                                        進入nrpe目錄

配置編譯

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

--with-nrpe-user=nagios \

--with-nrpe-group=nagios \

--with-nagios-user=nagios \

--with-nagios-group=nagios \

--enable-command-args \

--enable-ssl

編譯安裝

make all

make install-plugin                      安裝check_nrpe 這個插件

測試NRPE

在監控端上我們已經裝好了nrpe,測試監控機使用check_nrpe 與被監控機運行的nrpe daemon之間的通信。

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

NRPE v2.15                                          正確返回了NRPE的版本信息,說明一切正常。

監控

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

末尾定義一行nrpe

define command{

command_name    check_nrpe

command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$

}

command_name    定義命令名稱為check_nrpe,linux-services.cfg中要使用這個名稱.

command_line        #這是定義實際運行的插件程序.

寫發完全按照check_nrpe這個命令的用法,不知道用法的就用check_nrpe h

-c 后面帶的$ARG1$ 參數是傳給nrpe daemon 執行的檢測命令,之前說過了它必須是nrpe.cfg 中所定義的那5條命令中的其中一條。在linux-services.cfg 中使用check_nrpe 的時候要用 ! 帶上這個參數。

定義Linux主機的監控

vim /usr/local/nagios/etc/objects/linux-services.cfg

define host{

use                     linux-server

host_name               Nagios-Linux

address                 192.168.200.44   #被監控端IP

        }

define service{

usegeneric-service

host_nameNagios-Linux

service_description               Current Load

check_commandcheck_nrpe!check_load

        }

define service{

usegeneric-service

host_name               Nagios-Linux

service_description                  Check Disk sda1

check_commandcheck_nrpe!check_sda1

        }

define service{

usegeneric-service

host_nameNagios-Linux

service_description               Total Processes

check_commandcheck_nrpe!check_total_procs

        }

define service{

usegeneric-service

host_nameNagios-Linux

service_description           Current Users

check_command          check_nrpe!check_users

        }

define service{

usegeneric-service

host_nameNagios-Linux

service_description           Check Zombie Procs

        check_command          check_nrpe!check_zombie_procs

        }
define service{

use                     generic-service

host_nameNagios-Linux

service_description               Check Swap

check_command           check_nrpe!check_swap

        }
define service{

use                     generic-service

host_nameNagios-Linux

service_description          MySQL service

check_commandcheck_nrpe!check_mysql

        }
define service{

usegeneric-service

host_nameNagios-Linux

service_description                HTTP

check_commandcheck_nrpe!check_http

        }

 

vim /usr/local/nagios/etc/ nagios.cfg

添加如下一行

cfg_file=/usr/local/nagios/etc/objects/linux-services.cfg

linux-services.cfg包含到監控列表

自定義監控服務

還有一個任務是要監控Nagios-Linux Mysql情況。但是在被監控端nrpe.cfg 中默認沒有定義這個監控功能的命令。怎么辦?手動在nrpe.cfg 中添加,也就是自定義NRPE命令。
被監控機上增加check_swap 命令的定義

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

增加下面這一行

command[check_mysql]=/usr/local/nagios/libexec/check_mysql -H 192.168.44.200 -P 3306 -u nagios -p 123456

nagios用戶必須具有遠程登陸權限

修改了配置文件,當然要重啟。

 

define service{

use                     generic-service

host_nameNagios-Linux

service_description               MySQL service

check_commandcheck_nrpe!check_mysql

        }

在監控機(Nagios-Server)上增加這個check_mysql 監控項目

同理,Nagios-Linux 上我還開啟了http 服務,需要監控一下,按照上面的做法,在被監控機(Nagios-Linux)上增加check_http 命令的定義

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

增加下面這一行

command[check_http]=/usr/local/nagios/libexec/check_http -I 127.0.0.1

在監控機(Nagios-Server)上增加check_http 監控項目

define service{

usegeneric-service

host_nameNagios-Linux

service_description                HTTP

check_commandcheck_nrpe!check_http

        }

所有的配置文件已經修改好了,現在重啟Nagios

重啟nagios

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg         檢測nagios配置文件

Total Warnings: 0

Total Errors:   0

service nagios restart          重啟nagios

查看監控

監控正常


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM