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

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

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

必須要說(shuō)明的是,通常被監(jiān)控機(jī)與監(jiān)控機(jī)在同一網(wǎng)絡(luò)內(nèi),所以這樣的情況很少.下面我講的都是直接檢測(cè).所以我們按照?qǐng)D示在監(jiān)控主機(jī)(nagios-server)和被監(jiān)控主機(jī)(dbpi,也就是圖中運(yùn)行NRPE的remote linux host)上安裝相應(yīng)的軟件
#p#
一,在被監(jiān)控主機(jī)上
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
這一步完成后會(huì)在/usr/local/nagios/下生成兩個(gè)目錄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, 本站所提供的攝影照片,插畫(huà),設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(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.
接下來(lái)安裝NPRE插件,daemon和示例配置文件
安裝check_nrpe這個(gè)插件
make install-plugin
之前說(shuō)過(guò)監(jiān)控機(jī)需要安裝check_nrpe這個(gè)插件,被監(jiān)控機(jī)并不需要,我們?cè)谶@里安裝它是為了測(cè)試的目的
安裝deamon
make install-daemon
安裝配置文件
make install-daemon-config
現(xiàn)在再查看nagios目錄就會(huì)發(fā)現(xiàn)有4個(gè)目錄了
[root@dbpi nrpe-2.8.1]# ls /usr/local/nagios/
bin etc libexec share
按照安裝文檔的說(shuō)明,是將NRPE deamon作為xinetd下的一個(gè)服務(wù)運(yùn)行的.在這樣的情況下xinetd就必須要先安裝好,不過(guò)一般系統(tǒng)已經(jīng)默認(rèn)裝了 ..
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)建了這個(gè)文件/etc/xinetd.d/nrpe
編輯這個(gè)腳本
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)控主機(jī)的地址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)啟動(dò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)聽(tīng)了
5.測(cè)試NRPE是否則正常工作
之前我們?cè)诎惭b了check_nrpe這個(gè)插件用于測(cè)試,現(xiàn)在就是用的時(shí)候.執(zhí)行
/usr/local/nagios/libexec/check_nrpe -H localhost
會(huì)返回當(dāng)前NRPE的版本
[root@dbpi nrpe-2.8.1]# /usr/local/nagios/libexec/check_nrpe -H localhost 版權(quán)申明:本站文章均來(lái)自網(wǎng)絡(luò),本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)
NRPE v2.8.1
也就是在本地用check_nrpe連接nrpe daemon是正常的
注:為了后面工作的順利進(jìn)行,注意本地防火墻要打開(kāi)5666能讓外部的監(jiān)控機(jī)訪問(wèn)
/usr/local/nagios/libexec/check_nrpe –h查看這個(gè)命令的用法
可以看到用法是check_nrpe –H 被監(jiān)控的主機(jī) -c要執(zhí)行的監(jiān)控命令
注意:-c后面接的監(jiān)控命令必須是nrpe.cfg文件中定義的.也就是NRPE daemon只運(yùn)行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)容,等號(hào)=后面是實(shí)際執(zhí)行的插件程序(這與commands.cfg中定義命令的形式十分相似,只不過(guò)是寫(xiě)在了一行).也就是說(shuō)check_users就是等號(hào)后面/usr/local/nagios/libexec/check_users -w 5 -c 10的簡(jiǎn)稱.
我們可以很容易知道上面這5行定義的命令分別是檢測(cè)登陸用戶數(shù),cpu負(fù)載,hda1的容量,僵尸進(jìn)程,總進(jìn)程數(shù).各條命令具體的含義見(jiàn)插件用法(執(zhí)行”插件程序名 –h”)
由于-c后面只能接nrpe.cfg中定義的命令,也就是說(shuō)現(xiàn)在我們只能用上面定義的這五條命令.我們可以在本機(jī)實(shí)驗(yà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#
二.在運(yùn)行nagios的監(jiān)控主機(jī)上
之前已經(jīng)將nagios運(yùn)行起來(lái)了,現(xiàn)在要做的事情是:
– 安裝check_nrpe插件
– 在commands.cfg中創(chuàng)建check_nrpe的命令定義,因?yàn)橹挥性赾ommands.cfg中定義過(guò)的命令才能在services.cfg中使用
– 創(chuàng)建對(duì)被監(jiān)控主機(jī)的監(jiān)控項(xiàng)目
安裝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
只運(yùn)行這一步就行了,因?yàn)橹恍枰猚heck_nrpe插件
在dbpi上我們剛裝好了nrpe,現(xiàn)在我們測(cè)試一下監(jiān)控機(jī)使用check_nrpe與被監(jiān)控機(jī)運(yù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的版本信息,說(shuō)明一切正常.
在commands.cfg中增加對(duì)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中要使用這個(gè)名稱.
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
這是定義實(shí)際運(yùn)行的插件程序.這個(gè)命令行的書(shū)寫(xiě)要完全按照check_nrpe這個(gè)命令的用法.不知道用法的就用check_nrpe –h查看
-c后面帶的$ARG1$參數(shù)是傳給nrpe daemon執(zhí)行的檢測(cè)命令,之前說(shuō)過(guò)了它必須是nrpe.cfg中所定義的那5條命令中的其中一條.在services.cfg中使用check_nrpe的時(shí)候要用!帶上這個(gè)參數(shù)
下面就可以在services.cfg中定義對(duì)dbpi主機(jī)cpu負(fù)載的監(jiān)控
define service{
host_name dbpi
被監(jiān)控的主機(jī)名,這里注意必須是linux且運(yùn)行著nrpe,而且必須是hosts.cfg中定義的
service_description check-load
監(jiān)控項(xiàng)目的名稱
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
}
像這樣將其余四個(gè)監(jiān)控項(xiàng)目加進(jìn)來(lái).
之前我們說(shuō)過(guò)了,今天還有一個(gè)任務(wù)是要監(jiān)控dbpi的swap使用情況.但是很遺憾,在nrpe.cfg中默認(rèn)沒(méi)有定義這個(gè)監(jiān)控功能的命令.怎么辦?手動(dòng)在nrpe.cfg中添加,也就是自定義NRPE命令. .
現(xiàn)在我們要監(jiān)控swap分區(qū),如果空閑空間小于20%則為警告狀態(tài)—warning;如果小于10%則為嚴(yán)重狀態(tài)—critical.我們可以查得需要使用check_swap插件,完整的命令行應(yīng)該是下面這樣.
/usr/local/nagios/libexec/check_swap -w 20% -c 10%
在被監(jiān)控機(jī)上增加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ù)使用了
修改了配置文件,當(dāng)然要重啟.但是
如果你是以獨(dú)立的daemon運(yùn)行的nrpe,那么需要手動(dòng)重啟.
如果你是在xinetd或者inetd下面運(yùn)行的,則不需要.
由于我們是xinetd下運(yùn)行的,所以不需要重啟服務(wù)
在監(jiān)控機(jī)上增加這個(gè)監(jiān)控項(xiàng)目
define service{
host_name dbpi
service_description check-swap
check_command check_nrpe!check_swap 版權(quán)申明:本站文章均來(lái)自網(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進(jìn)程,然后再重啟.等上一會(huì)你就可以看到監(jiān)控信息了
#p#
三.
附錄:
1.重啟nagios的方法
之前我說(shuō)重啟nagios的時(shí)候都是用的殺進(jìn)程的方式,其實(shí)也可以不這么做.如果在安裝nagios的時(shí)候安裝了啟動(dòng)腳本就可以使用/etc/init.d/nagios restart 還可以帶的參數(shù)有stop, start,status
如果報(bào)錯(cuò)了,有可能是腳本里面的路徑設(shè)置錯(cuò)誤,解決辦法
vi /etc/init.d/nagios
將prefix=/usr/local/nagiosaa改為安裝的目錄/etc/init.d/nagios
注:在nagios安裝的時(shí)候說(shuō)是將腳本安裝到了/etc/rc.d/init.d,其實(shí)這和/etc/init.d是一個(gè)目錄
2.不以xinetd的方式運(yùn)行nrpe
因?yàn)槲覀儼凑課rpe的安裝文檔安裝下來(lái),nrpe是在xinetd下面運(yùn)行的,個(gè)人比較喜歡像nagios那樣以單獨(dú)的daemon來(lái)運(yùn)行.這樣比較好控制.
方法:
編輯 /etc/services將nrpe注釋掉
# Local services
#nrpe 5666/tcp # nrpe
編輯 nrpe.cfg,增加監(jiān)控主機(jī)的地址
# 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)載文章言論不代表本站觀點(diǎn),本站所提供的攝影照片,插畫(huà),設(shè)計(jì)作品,如需使用,請(qǐng)與原作者聯(lián)系.
注意兩個(gè)地址以逗號(hào)隔開(kāi)
以單獨(dú)的daemon啟動(dòng)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
說(shuō)明已經(jīng)正常啟動(dòng)了
在/etc/rc.d/rc.local里面加入下面一行就實(shí)現(xiàn)開(kāi)機(jī)啟動(dòng)nrpe了
/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg –d
同理要開(kāi)機(jī)運(yùn)行nagios就在/etc/rc.d/rc.local里面增加下面這行
/usr/local/nagios/bin/nagios -d /usr/local/nagios/etc/nagios.cfg
3.有關(guān)于check_load的用法及意義
這個(gè)插件是用來(lái)檢測(cè)系統(tǒng)當(dāng)前的cpu負(fù)載,使用的方法為
check_load [-r] -w WLOAD1,WLOAD5,WLOAD15 -c CLOAD1,CLOAD5,CLOAD15 .
在unix里面負(fù)載的均值通常表示是1分鐘,5分鐘,15分鐘內(nèi)平均有多少進(jìn)程處于等待狀態(tài).
例如check_load -w 15,10,5 -c 30,25,20這個(gè)命令的意義如下
當(dāng)1分鐘多于15個(gè)進(jìn)程等待,5分鐘多于10個(gè),15分鐘多于5個(gè)則為warning狀態(tài)
當(dāng)1分鐘多于30個(gè)進(jìn)程等待,5分鐘多于25個(gè),15分鐘多于20個(gè)則為critical狀態(tài)
通過(guò)文章的介紹,我們清楚的知道了nagios安裝的全過(guò)程和小技巧點(diǎn),希望對(duì)你們有幫助!
【編輯推薦】


















