nagios客戶端程序的安裝
讓我們來看看nagios客戶端程序的安裝情況:
圖-nagios
要監(jiān)視客戶機的本地信息需要用到nrpe這個程序
NRPE的原理如下圖

NRPE總共由兩部分組成:
– check_nrpe 插件,位于在監(jiān)控主機上
– NRPE daemon,運行在遠程的linux主機上(通常就是被監(jiān)控機)
按照上圖,整個的監(jiān)控過程如下:
當nagios需要監(jiān)控某個遠程linux主機的服務(wù)或者資源情況時
1.nagios會運行check_nrpe這個插件,告訴它要檢查什么.
2.check_nrpe插件會連接到遠程的NRPE daemon,所用的方式是SSL ..
3.NRPE daemon會運行相應(yīng)的nagios插件來執(zhí)行檢查
4.NRPE daemon將檢查的結(jié)果返回給check_nrpe插件,插件將其遞交給nagios做處理.
注意:NRPE daemon需要nagios插件安裝在遠程的linux主機上,否則,daemon不能做任何的監(jiān)控.
通過NRPE的檢測分為兩種:
1).直接檢測:檢測的對象是運行NRPE的那臺linux主機的本地資源,原理如下圖

2).間接檢測:當運行nagios的監(jiān)控主機無法訪問到某臺被監(jiān)控機,但是運行NRPE的機器可以訪問到時,NRPE就可以充當一個代理,將監(jiān)控請求發(fā)送到被監(jiān)控機 版權(quán)申明:本站文章均來自網(wǎng)絡(luò),本站所有轉(zhuǎn)載文章言論不代表本站觀點

必須要說明的是,通常被監(jiān)控機與監(jiān)控機在同一網(wǎng)絡(luò)內(nèi),所以這樣的情況很少.下面我講的都是直接檢測.所以我們按照圖示在監(jiān)控主機(nagios-server)和被監(jiān)控主機(dbpi,也就是圖中運行NRPE的remote linux host)上安裝相應(yīng)的軟件
#p#
一,在被監(jiān)控主機上
1增加用戶
[root@dbpi root]# useradd nagios
設(shè)置密碼
[root@dbpi root]# passwd nagios
2安裝nagios插件
解壓縮
tar -zxvf nagios-plugins-1.4.9.tar.gz
cd nagios-plugins-1.4.9
編譯安裝
./configure
make
make install
這一步完成后會在/usr/local/nagios/下生成兩個目錄libexec和share
[root@dbpi local]# ls /usr/local/nagios/
libexec share
修改目錄權(quán)限
[root@dbpi local]# chown nagios.nagios /usr/local/nagios
[root@dbpi local]# chown -R nagios.nagios /usr/local/nagios/libexec
3安裝nrpe
解壓縮
tar -zxvf nrpe-2.8.1.tar.gz
cd nrpe-2.8.1
編譯
./configure
輸出如下
*** Configuration summary for nrpe 2.8.1 05-10-2007 ***:
General Options:
-------------------------
NRPE port: 5666
NRPE user: nagios
NRPE group: nagios
Nagios user: nagios
Nagios group: nagios
Review the options above for accuracy. If they look okay, 本站所提供的攝影照片,插畫,設(shè)計作品,如需使用,請與原作者聯(lián)系。
type 'make all' to compile the NRPE daemon and client.
可以看到NRPE的端口是5666,下一步是make all
make all
輸出如下
*** Compile finished ***
If the NRPE daemon and client compiled without any errors, you
can continue with the installation or upgrade process.
Read the PDF documentation (NRPE.pdf) for information on the next
steps you should take to complete the installation or upgrade.
接下來安裝NPRE插件,daemon和示例配置文件
安裝check_nrpe這個插件
make install-plugin
之前說過監(jiān)控機需要安裝check_nrpe這個插件,被監(jiān)控機并不需要,我們在這里安裝它是為了測試的目的
安裝deamon
make install-daemon
安裝配置文件
make install-daemon-config
現(xiàn)在再查看nagios目錄就會發(fā)現(xiàn)有4個目錄了
[root@dbpi nrpe-2.8.1]# ls /usr/local/nagios/
bin etc libexec share
按照安裝文檔的說明,是將NRPE deamon作為xinetd下的一個服務(wù)運行的.在這樣的情況下xinetd就必須要先安裝好,不過一般系統(tǒng)已經(jīng)默認裝了 ..
4.安裝xinetd腳本
[root@dbpi nrpe-2.8.1]# make install-xinetd
輸出如下
/usr/bin/install -c -m 644 sample-config/nrpe.xinetd /etc/xinetd.d/nrpe
可以看到創(chuàng)建了這個文件/etc/xinetd.d/nrpe
編輯這個腳本
vi /etc/xinetd.d/nrpe
# 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在后面增加監(jiān)控主機的地址0.111,以空格間隔
}
改后
only_from = 127.0.0.1 192.168.0.1
編輯/etc/services文件,增加NRPE服務(wù)
vi /etc/services
增加如下
# Local services
nrpe 5666/tcp # nrpe
重啟xinetd服務(wù)
[root@dbpi nrpe-2.8.1]# service xinetd restart .
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]
查看NRPE是否已經(jīng)啟動
[root@dbpi nrpe-2.8.1]# netstat -at|grep nrpe
tcp 0 0 *:nrpe *:* LISTEN
[root@dbpi nrpe-2.8.1]# netstat -an|grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN
可以看到5666端口已經(jīng)在監(jiān)聽了
5.測試NRPE是否則正常工作
之前我們在安裝了check_nrpe這個插件用于測試,現(xiàn)在就是用的時候.執(zhí)行
/usr/local/nagios/libexec/check_nrpe -H localhost
會返回當前NRPE的版本
[root@dbpi nrpe-2.8.1]# /usr/local/nagios/libexec/check_nrpe -H localhost 版權(quán)申明:本站文章均來自網(wǎng)絡(luò),本站所有轉(zhuǎn)載文章言論不代表本站觀點
NRPE v2.8.1
也就是在本地用check_nrpe連接nrpe daemon是正常的
注:為了后面工作的順利進行,注意本地防火墻要打開5666能讓外部的監(jiān)控機訪問
/usr/local/nagios/libexec/check_nrpe –h查看這個命令的用法
可以看到用法是check_nrpe –H 被監(jiān)控的主機 -c要執(zhí)行的監(jiān)控命令
注意:-c后面接的監(jiān)控命令必須是nrpe.cfg文件中定義的.也就是NRPE daemon只運行nrpe.cfg中所定義的命令
查看NRPE的監(jiān)控命令
cd /usr/local/nagios/etc
vi nrpe.cfg
找到下面這段話
# The following examples use hardcoded command arguments...
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參數(shù)可以接的內(nèi)容,等號=后面是實際執(zhí)行的插件程序(這與commands.cfg中定義命令的形式十分相似,只不過是寫在了一行).也就是說check_users就是等號后面/usr/local/nagios/libexec/check_users -w 5 -c 10的簡稱.
我們可以很容易知道上面這5行定義的命令分別是檢測登陸用戶數(shù),cpu負載,hda1的容量,僵尸進程,總進程數(shù).各條命令具體的含義見插件用法(執(zhí)行”插件程序名 –h”)
由于-c后面只能接nrpe.cfg中定義的命令,也就是說現(xiàn)在我們只能用上面定義的這五條命令.我們可以在本機實驗一下.執(zhí)行
/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_zombie_procs
/usr/local/nagios/libexec/check_nrpe -H localhost -c check_total_procs
#p#
二.在運行nagios的監(jiān)控主機上
之前已經(jīng)將nagios運行起來了,現(xiàn)在要做的事情是:
– 安裝check_nrpe插件
– 在commands.cfg中創(chuàng)建check_nrpe的命令定義,因為只有在commands.cfg中定義過的命令才能在services.cfg中使用
– 創(chuàng)建對被監(jiān)控主機的監(jiān)控項目
安裝check_nrpe插件
[root@server1 yahoon]# tar -zxvf nrpe-2.8.1.tar.gz
[root@server1 yahoon]# cd nrpe-2.8.1 .
[root@server1 nrpe-2.8.1]# ./configure
[root@server1 nrpe-2.8.1]# make all
[root@server1 nrpe-2.8.1]# make install-plugin
只運行這一步就行了,因為只需要check_nrpe插件
在dbpi上我們剛裝好了nrpe,現(xiàn)在我們測試一下監(jiān)控機使用check_nrpe與被監(jiān)控機運行的nrpedaemon之間的通信.
[root@server1 nrpe-2.8.1]# /usr/local/nagios/libexec/check_nrpe -H 192.168.0.100
NRPE v2.8.1
看到已經(jīng)正確返回了NRPE的版本信息,說明一切正常.
在commands.cfg中增加對check_nrpe的定義
vi /usr/local/nagios/etc/commands.cfg
在***面增加如下內(nèi)容
########################################################################
#
# 2007.9.5 add by yahoon
# NRPE COMMAND
#
########################################################################
# 'check_nrpe ' command definition
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ .
}
意義如下
command_name check_nrpe
定義命令名稱為check_nrpe,在services.cfg中要使用這個名稱.
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
這是定義實際運行的插件程序.這個命令行的書寫要完全按照check_nrpe這個命令的用法.不知道用法的就用check_nrpe –h查看
-c后面帶的$ARG1$參數(shù)是傳給nrpe daemon執(zhí)行的檢測命令,之前說過了它必須是nrpe.cfg中所定義的那5條命令中的其中一條.在services.cfg中使用check_nrpe的時候要用!帶上這個參數(shù)
下面就可以在services.cfg中定義對dbpi主機cpu負載的監(jiān)控
define service{
host_name dbpi
被監(jiān)控的主機名,這里注意必須是linux且運行著nrpe,而且必須是hosts.cfg中定義的
service_description check-load
監(jiān)控項目的名稱
check_command check_nrpe!check_load
監(jiān)控命令是check_nrpe,是在commands.cfg中定義的,帶的參數(shù)是check_load,是在nrpe.cfg中定義的
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups sagroup
}
像這樣將其余四個監(jiān)控項目加進來.
之前我們說過了,今天還有一個任務(wù)是要監(jiān)控dbpi的swap使用情況.但是很遺憾,在nrpe.cfg中默認沒有定義這個監(jiān)控功能的命令.怎么辦?手動在nrpe.cfg中添加,也就是自定義NRPE命令. .
現(xiàn)在我們要監(jiān)控swap分區(qū),如果空閑空間小于20%則為警告狀態(tài)—warning;如果小于10%則為嚴重狀態(tài)—critical.我們可以查得需要使用check_swap插件,完整的命令行應(yīng)該是下面這樣.
/usr/local/nagios/libexec/check_swap -w 20% -c 10%
在被監(jiān)控機上增加check_swap命令的定義
vi /usr/local/nagios/etc/nrpe.cfg
增加下面這一行
command[check_swap]=/usr/local/nagios/libexec/check_swap -w 20% -c 10%
我們知道check_swap現(xiàn)在就可以作為check_nrpe的-c的參數(shù)使用了
修改了配置文件,當然要重啟.但是
如果你是以獨立的daemon運行的nrpe,那么需要手動重啟.
如果你是在xinetd或者inetd下面運行的,則不需要.
由于我們是xinetd下運行的,所以不需要重啟服務(wù)
在監(jiān)控機上增加這個監(jiān)控項目
define service{
host_name dbpi
service_description check-swap
check_command check_nrpe!check_swap 版權(quán)申明:本站文章均來自網(wǎng)絡(luò).
max_check_attempts 5
normal_check_interval 3
retry_check_interval 2
check_period 24x7
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
contact_groups sagroup
}
所有的配置文件已經(jīng)修改好了,現(xiàn)在重啟nagios.殺掉nagios進程,然后再重啟.等上一會你就可以看到監(jiān)控信息了
#p#
三.
附錄:
1.重啟nagios的方法
之前我說重啟nagios的時候都是用的殺進程的方式,其實也可以不這么做.如果在安裝nagios的時候安裝了啟動腳本就可以使用/etc/init.d/nagios restart 還可以帶的參數(shù)有stop, start,status
如果報錯了,有可能是腳本里面的路徑設(shè)置錯誤,解決辦法
vi /etc/init.d/nagios
將prefix=/usr/local/nagiosaa改為安裝的目錄/etc/init.d/nagios
注:在nagios安裝的時候說是將腳本安裝到了/etc/rc.d/init.d,其實這和/etc/init.d是一個目錄
2.不以xinetd的方式運行nrpe
因為我們按照nrpe的安裝文檔安裝下來,nrpe是在xinetd下面運行的,個人比較喜歡像nagios那樣以單獨的daemon來運行.這樣比較好控制.
方法:
編輯 /etc/services將nrpe注釋掉
# Local services
#nrpe 5666/tcp # nrpe
編輯 nrpe.cfg,增加監(jiān)控主機的地址
# NOTE: This option is ignored if NRPE is running under either inetd or xinetd
allowed_hosts=127.0.0.1,192.168.0.111 特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點,本站所提供的攝影照片,插畫,設(shè)計作品,如需使用,請與原作者聯(lián)系.
注意兩個地址以逗號隔開
以單獨的daemon啟動nrpe
[root@dbpi etc]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
查看
[root@dbpi etc]# ps -ef|grep nrpe
nagios 22125 1 0 14:04 ? 00:00:00 [nrpe]
[root@dbpi nagios]# netstat -an|grep 5666
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN
說明已經(jīng)正常啟動了
在/etc/rc.d/rc.local里面加入下面一行就實現(xiàn)開機啟動nrpe了
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
同理要開機運行nagios就在/etc/rc.d/rc.local里面增加下面這行
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
3.有關(guān)于check_load的用法及意義
這個插件是用來檢測系統(tǒng)當前的cpu負載,使用的方法為
check_load [-r] -w WLOAD1,WLOAD5,WLOAD15 -c CLOAD1,CLOAD5,CLOAD15 .
在unix里面負載的均值通常表示是1分鐘,5分鐘,15分鐘內(nèi)平均有多少進程處于等待狀態(tài).
例如check_load -w 15,10,5 -c 30,25,20這個命令的意義如下
當1分鐘多于15個進程等待,5分鐘多于10個,15分鐘多于5個則為warning狀態(tài)
當1分鐘多于30個進程等待,5分鐘多于25個,15分鐘多于20個則為critical狀態(tài)
通過文章的介紹,我們清楚的知道了nagios安裝的全過程和小技巧點,希望對你們有幫助!
【編輯推薦】