nagios的實現方式:nagios採用分佈-集中的管理模式。在nagios
服務器 上
安裝 nagios主程序,
在被監控主機上安裝nagios代理程序。經過nagios主程序和nagios代理程序之間的通信,監視主機狀態。
主程序和代理程序之間有兩種工做方式,一種是主程序-->Active-->代理程序;另外一種是主程序-->passive-->代理程序;顧名思義,是以一方向另外一方主動提出通信需求來劃分的。
一.NRPE的功能和意義:
以前已經理解了Nagios的服務-
命令 -插件的工做關係,所以也明確了基本的Nagios服務是沒法實現對遠程
系統 的情況進行監測的,基本的Nagios 監測服務只能是本地系統監測以及對遠程主機的連通性監測。爲了使Nagios的監測服務器可以遠程對被監測主機系統上的信息進行獲取,好比遠程系統上的
進程 數、磁盤空間使用情況、所運行的服務等等這些必需要登陸遠程主機系統上才能瞭解的信息的話,就必需要依靠NRPE這個核心擴展插件程序,NRPE做爲中間的代理程序,扮演着一手接受着Nagios監測服務器發來的請求,另外一手在遠程主機系統上獲取指定的信息的中間人角色。
二.NRPE的主要工做方式:
如 以上提到的實現Nagios對遠程系統的監測,那麼首先必需要在被監測的遠程主機上除了安裝Nagios-plugins插件程序以外還必須安裝NRPE 核心擴展插件程序,並將NRPE在被監測的遠程主機系統上以守護進程的方式運行起來,開放指定的NRPE監聽端口監聽着Nagios監測服務器發送過來的 全部監測請求。另外,在Nagios監測服務器上,在必需要安裝Nagios-plugins插件程序和NRPE核心擴展插件程序。惟一不一樣的是, Nagios監測服務器不須要將NRPE做爲守護進程運行着,由於它自己通常不須要被別人監測着而是去監測別人,對Nagios監測服務器而言,它只須要 使用到Nagio-plugins插件程序和NRPE擴展插件程序就足夠了。
三.在被監控主機上安裝Nagios-plugins插件程序:
1.添加Nagio
用戶
[root@KCentOS5A ~]# useradd nagios
2.準備好Nagios-plugins和NRPE源代碼包
[root@KCentOS5A ~]# ll
-------------------------------------------------------
total 2008
-rw------- 1 root root 928 Oct 3 10:33 anaconda-ks.cfg
-rw-r--r-- 1 root root 22760 Oct 3 10:33 install.log
-rw-r--r-- 1 root root 2888 Oct 3 10:33 install.log.syslog
-rw-r--r-- 1 root root 1693979 Sep 30 22:51 nagios-plugins-1.4.10.tar.gz
Nagios-plugins插件程序包
-rw-r--r-- 1 root root 305019 Sep 30 22:58 nrpe-2.9.tar.gz
NRPE擴展插件功能包
-------------------------------------------------------
3.解壓Nagios-plugins壓縮包
[root@KCentOS5A ~]# tar -zxvf nagios-plugins-1.4.10.tar.gz
4.進入Nagios-plugins插件包
目錄
[root@KCentOS5A ~]# cd nagios-plugins-1.4.10
5.預配置Nagios-plugins的安裝路徑
[root@KCentOS5A nagios-plugins-1.4.10]# ./configure --prefix=/usr/local/nagios
6.預配置完成後會反饋信息並生成Makefile
-------------------------------------------------------
config.status: creating po/Makefile
--with-apt-get-command:
--with-ping6-command: /
bin /ping6 -n -U -w %d -c %d %s
--with-ping-command: /bin/ping -n -U -w %d -c %d %s
--with-ipv6: yes
--with-
mysql : no
--with-openssl: yes
--with-gnutls: no
--with-perl: /usr/bin/perl
--enable-perl-modules: no
--with-cgiurl: /nagios/cgi-bin
--with-trusted-path: /bin:/sbin:/usr/bin:/usr/sbin
-------------------------------------------------------
7.
編譯 Nagios-plugins插件程序
[root@KCentOS5A nagios-plugins-1.4.10]#
make
8.安裝Nagios-plugins插件程序
[root@KCentOS5A nagios-plugins-1.4.10]# make install
9.查看Nagios-plugins插件程序的安裝
[root@KCentOS5A nagios-plugins-1.4.10]# ll /usr/local/nagios/
total 8
drwxr-xr-x 2 root root 4096 Oct 7 01:02 libexec
drwxr-xr-x 3 root root 4096 Oct 7 01:02 share
10.遞歸更改Nagios主路徑的屬主
[root@KCentOS5A ~]# chown -R nagios.nagios /usr/local/nagios/
11.檢查Nagios主路徑的屬性
[root@KCentOS5A ~]# ll /usr/local/|grep nagios
drwxr-xr-x 4 nagios nagios 4096 Oct 7 01:02 nagios
[root@KCentOS5A ~]# ll /usr/local/nagios/
total 8
drwxr-xr-x 2 nagios nagios 4096 Oct 7 01:02 libexec
drwxr-xr-x 3 nagios nagios 4096 Oct 7 01:02 share
四.再在被監控主機上安裝NRPE擴展插件程序:
1.解壓NRPE的壓縮包
[root@KCentOS5A ~]# tar -zxvf nrpe-2.9.tar.gz
2.進入NRPE包目錄
[root@KCentOS5A ~]# cd nrpe-2.9
3.預配置NRPE安裝程序
[root@KCentOS5A nrpe-2.9]# ./configure
4.預配置完畢後會反饋提示信息以及創建Makefile
-------------------------------------------------------
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating subst
config.status: creating include/config.h
*** Configuration summary for nrpe 2.9 08-13-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,
type 'make all' to compile the NRPE daemon and client.
最後提示繼續使用「make all」命令來對NRPE守護程序以及客戶端程序進行編譯。
-------------------------------------------------------
5.對NRPE程序進行編譯
[root@KCentOS5A nrpe-2.9]# make all
6.編譯成功後會反饋提示信息
-------------------------------------------------------
*** 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.
在NRPE的包目錄中有一份NRPE.pdf的手冊,接下來就能夠參考那份手冊進行後續的操做了。
-------------------------------------------------------
安裝NRPE插件程序,守護程序以及模板守護程序配置
文件 。
Install the NRPE plugin (for testing), daemon, and sample daemon config file.
7.安裝NRPE插件程序
[root@KCentOS5A nrpe-2.9]# make install-plugin
8.安裝NRPE守護程序
[root@KCentOS5A nrpe-2.9]# make install-daemon
9.安裝NRPE守護程序配置文件
[root@KCentOS5A nrpe-2.9]# make install-daemon-config
10.檢查NRPE程序的安裝
[root@KCentOS5A nrpe-2.9]# ll /usr/local/nagios/
-------------------------------------------------------
total 16
drwxrwxr-x 2 nagios nagios 4096 Oct 7 01:16 bin
drwxrwxr-x 2 nagios nagios 4096 Oct 7 01:16 etc
drwxr-xr-x 2 nagios nagios 4096 Oct 7 01:15 libexec
drwxr-xr-x 3 nagios nagios 4096 Oct 7 01:02 share
-------------------------------------------------------
五.在被監測主機上配置並運行NRPE:
1.配置NRPE的主配置文件
[root@KCentOS5A ~]# vi /usr/local/nagios/etc/nrpe.cfg
這裏主要交待一些關鍵重要的設定。
-------------------------------------------------------
pid_file=/var/run/nrpe.pid
設定NRPE運行的PID文件,這個默認就設定好了,不用更改。
server_port=5666
這個是NRPE守護進程佔用的系統端口。
#server_address=0.0.0.0
server_address=192.168.1.9 #這是被控端IP
地址
設定系統監聽NRPE的
網絡 接口。通常設定具體的IP地址,若是要多個
網卡 的話就用逗號「,」來分隔多個IP地址。若是要監聽系統所有的網絡接口的話,可使用「0.0.0.0」這個表示所有網絡接口的特殊地址,可是不能夠用通配符「*」。
nrpe_user=nagios
nrpe_group=nagios
設定NRPE的宿主用戶。
allowed_hosts=192.168.1.12 #這是充許監控服務器IP地址
這裏是設定容許與本機進行NRPE交互的主機的IP地址,也就是Nagios監測服務器的地址,若是要指定多個Nagios服務器的話,那麼用逗號「,」來分隔多個IP地址。
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
以上是NRPE默認就有的擴展插件命令,這是相當重要的地方了。當被監測主機運行NRPE守護進程的時候,同時就運行起來了這些在NRPE配置文件中定義的NRPE擴展命令了。能夠看出這些擴展命令都已經指定了好了命令名、插件路徑以及選項參數了。格式以下:
command[NRPE命令名]=插件路徑/插件 選項1 參數1 選項2 參數2 ...
注意,若是要指定該被監測主機須要被監控的服務的話,就必須在這裏都配置好NRPE命令並運行在NRPE守護進程裏。這裏沒有配置的NRPE命令則Nagios監測服務器是沒法監控到的。
-------------------------------------------------------
2.找到NRPE運行的執行程序
[root@KCentOS5A ~]# ll /usr/local/nagios/bin/nrpe
-rwxrwxr-x 1 nagios nagios 93420 Oct 7 01:16 /usr/local/nagios/bin/nrpe
3.瞭解NRPE的執行程序的使用方式
[root@KCentOS5A ~]# /usr/local/nagios/bin/nrpe -h
-------------------------------------------------------
Usage: nrpe [-n] -c
運行方法:nrpe -c NRPE配置文件路徑 運行模式
Options:
可用選項
-n = Do not use SSL
不使用SSL方式,通常都使用SSL。
= Name of config file to use
指定NRPE配置文件路徑,這個NRPE主配置文件就是nrpe.cfg。
= One of the following two operating modes:
指定NRPE的運行方式,一共有2種可用的NRPE運行方式:
-i = Run as a service under inetd or
xinetd
以超級守護進程inetd或xinetd方式運行NRPE,要經過這種方式運行的話還要安裝和配置xinetd,通常不用。
-d = Run as a standalone daemon
以獨立守護進程方式運行NRPE,通常經常使用這種運行方式。
-------------------------------------------------------
4.運行NRPE守護進程
[root@KCentOS5A ~]# /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
5.查看系統
日誌 檢查NRPE運行狀況:
[root@KCentOS5A ~]# tail /var/log/messages
-------------------------------------------------------
Oct 7 01:45:10 KCentOS5A nrpe[21659]: Starting up daemon
說明已經順利啓動了NRPE守護進程。
Oct 7 01:45:10 KCentOS5A nrpe[21659]: Listening for connections on port 5666
說明已經啓動了5666端口爲NRPE的監聽端口。
Oct 7 01:45:10 KCentOS5A nrpe[21659]: Allowing connections from: 192.168.1.12
說明已經打開對指定的Nagios監測服務器的
訪問 容許。
-------------------------------------------------------
6.檢查NRPE的進程信息
[root@KCentOS5A ~]# ps aux | grep nrpe
-------------------------------------------------------
nagios 21659 0.0 0.3 4396 868 ? Ss 01:45 0:00 /usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d
-------------------------------------------------------
7.檢查NRPE的網絡鏈接信息
-------------------------------------------------------
[root@KCentOS5A ~]# netstat -nap | grep nrpe
tcp 0 0 192.168.1.9:5666 0.0.0.0:* LISTEN 21659/nrpe
unix 2 [ ] DGRAM 23374 21659/nrpe
-------------------------------------------------------
8.將NRPE運行添加加入系統啓動腳本中
[root@KCentOS5A ~]# echo "/usr/local/nagios/bin/nrpe -c /usr/local/nagios/etc/nrpe.cfg -d" >> /etc/rc.d/rc.local
到此,被監控主機要作的工做已經完成了。
六.在Nagios監測服務器上安裝NRPE核心擴展插件程序
相對被檢測主機來講,Nagios監測服務器上作的NRPE安裝就比較簡單了,並且它主要監測別人而不是被別人監測,因此它不須要將NRPE做爲守護進程運行起來,只要擁有NRPE的擴展插件功能就能夠了。
1.解壓NRPE壓縮包
[root@KCentOS5C ~]# tar -zxvf nrpe-2.9.tar.gz
2.進入NRPE包目錄
[root@KCentOS5C ~]# cd nrpe-2.9
3.預配置NRPE安裝程序
[root@KCentOS5C nrpe-2.9]# ./configure
4.編譯NRPE程序
[root@KCentOS5C nrpe-2.9]# make all
5.安裝NRPE擴展插件程序
[root@KCentOS5C nrpe-2.9]# make install-plugin
Nagios 只要擁有NRPE的擴展插件功能就能夠了,因此在Nagios監測服務器安裝NRPE工做到這步就能夠了。接下來要作的就是在Nagios監測服務器上配 置NRPE的擴展插件命令,使得Nagios監測服務器可以定義nrpe命令,從而能夠定義出「遠程系統監測服務」。
七.在監控主機上配置NRPE的服務
1.查看新擴展插件check_nrpe的使用方法
[root@KCentOS5C ~]# /usr/local/nagios/libexec/check_nrpe -h|less
-------------------------------------------------------
Usage: check_nrpe -H [-n] [-u] [-p ] [-t ] [-c ]
使用方式:check_nrpe -H 主機名 -p NRPE端口 -c NRPE命令名
Options:
選項:
= The address of the host running the NRPE daemon
主機,運行着NRPE守護進程的遠程被監測主機名,而且該主機名必須在host裏定義過。
[port] = The port on which the daemon is running (default=5666)
端口,被監測的遠程主機上運行NRPE的端口,默認是5666,若是是默認就不用指定。
[command] = The name of the command that the remote daemon should run
命令,這些命令名必須是被監測主機上NRPE守護進程運行着的。
-------------------------------------------------------
2.在command.cfg命令定義文件中添加NRPE命令。
[root@KCentOS5C ~]# vi /usr/local/nagios/etc/commands.cfg
-------------------------------------------------------
# NRPE Command
添加NRPE功能命令。
define command(
command_name nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
-------------------------------------------------------
這裏要說明幾點:
(1)這裏定義的命令名就叫做nrpe。
(2)$USER1$/check_nrpe會經過引用resource.cfg得到/usr/local/nagios/libexec/check_nrpe這個絕對路徑。
(3)-H $HOSTADDRESS$ 用來得到指定被監測主機的IP地址,$HOSTADDRESS$變量會經過定義主機名查找到host段中的IP地址。
(4)-c $ARG1$ 用來指定被監測主機上NRPE守護進程運行着的NRPE命令名。
6.在Nagios監控服務器上而後按照NRPE命令定義來添加NRPE遠程監控服務:
在hosts.cfg 添加
實現監控119服務器
硬盤 使用狀況
define host {
host_name 119
alias bj qmail server
address 被監控主機IP
contact_groups BJ-servers
check_command nrpe!check_sda11
max_check_attempts 5
notifi
cat ion_interval 10
notification_period 24x7
notification_options d,u,r
}
在services.cfg 添加
define service {
host_name 119
service_description Disk Using Of Remote System
check_period 24x7
max_check_attempts 4
normal_check_interval 3
retry_check_interval 2
contact_groups BJ-servers
notification_interval 10
notification_period 24x7
notification_options w,u,c,r
check_command nrpe!check_sda11
}
define service {
保證被監控的主機nrpe.cfg裏有check_disk -w 20 -c 10 -p /dev/sda11 #好比要監控第一塊硬盤11號分區
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_sda11]=/usr/local/nagios/libexec/check_disk -w 20 -c 10 -p /dev/sda11
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
本文來自ChinaUnix博客,若是查看原文請點:
http://blog.chinaunix.net/u1/40226/showart_1077850.html
command[check_boot]=/opt/nagios/libexec/check_disk -w 20% -c 10% -p /boot
################ 10.1.1.10 ####################################
define host{
use generic-host
host_name rhel10
alias rhel10
address 10.1.1.10
check_command check-host-alive
max_check_attempts 2
contact_groups admins
}
define service{
use generic-service ; Name of service template to use
host_name rhel10
service_description PING
check_command check-host-alive
}
define service{
use generic-service ; Name of service template to use
host_name rhel10
service_description check disk
check_command
nrpe!check_boot
check_period 24x7
max_check_attempts 4
normal_check_interval 3
retry_check_interval 2
}