一、名詞定義與必要packages:
(1) Server為Monitoring Host
- $ yum install -y httpd php gcc glibc glibc-common \
gd gd-devel openssl openssl-devel
- nagios-3.4.1.tar.gz (Nagios Core)
- nagios-plugins-1.4.15.tar.gz (Nagios plugins)
- nrpe-2.13.tar.gz (NRPE)
(2) Client為Remote Host
- $ yum install -y httpd php gcc glibc glibc-common \
gd gd-devel openssl openssl-devel xinetd
- nagios-plugins-1.4.15.tar.gz (Nagios plugins)
- nrpe-2.13.tar.gz (NRPE)
二、重要設定、目錄結構與注意事項:
(1) Server目錄結構與設定:
- 安裝完nagios後,目錄會落在 /usr/local/nagios
- nagios自己的偵測工具目錄落在 /usr/local/nagios/libexec
如:/usr/local/nagios/libexec/check_disk -w 20% -c 10% /
(觀看自己Root space下的空間,若剩餘20%空間就發"WARNING"
若剩餘10%空間就發"CRITICAL")
- 要監控哪些機器的設定檔皆位在 /usr/local/nagios/etc/objects
(localhost.cfg 裡有範例檔,可以參考它來設定)
- 定義nagios自己設定檔要使用的commands,
請在此檔案修改:/usr/local/nagios/etc/objects/commands.cfg
(2) Client目錄結構與設定:
- 安裝完nagios-plugins後,目錄也是落在 /usr/local/nagios
- nagios自己的偵測工具目錄也是落在 /usr/local/nagios/libexec
- Client端主要的NRPE設定檔位於:/usr/local/nagios/etc/nrpe.cfg
如:command[check_root_space]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
(定義Client端的NRPE本機端的指令,用在cfg檔裡"check_command"。
此例子指令名稱為"check_root_space",
指令功用為"/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /")
三、cfg檔設定實例
用途與說明:我們要使用Server去撈出Client的Root space(/),那就要藉由Server端的Nagios去跟Client端的NRPE要Client資訊(Root space)。
step 1. (Server)
$ vim /usr/local/nagios/etc/nagios.cfg
--------------------------------加入-----------------------------------
cfg_file=/usr/local/nagios/etc/objects/samplehost.cfg
------------------------------------------------------------------------
此samplehost.cfg的設定我們會在step 4說明
※若要指定目錄,可以使用cfg_dir
step 2. (Client)
$ vim /usr/local/nagios/etc/nrpe.cfg
--------------------------------加入-----------------------------------
command[check_root_space]=/usr/local/nagios/libexec/check_disk -w 20% -c 10% -p /
------------------------------------------------------------------------
此"check_root_space"指令定義,我們會在step 4的"check command"使用
step 3. (Server)
$ vim /usr/local/nagios/etc/objects/commands.cfg
--------------------------------加入-----------------------------------
define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}
------------------------------------------------------------------------
此"check_nrpe"指令定義,我們會在step 4的"check command"使用
step 4. (Server)
$ vim /usr/local/nagios/etc/objects/samplehost.cfg
--------------------------------加入-----------------------------------
define hostgroup {
hostgroup_name myGroup1
alias Linux Servers
members sampleHost
}
define host {
use linux-server
host_name sampleHost
alias sampleHost
address 192.168.1.2
hostgroups MyGroup1
}
define service {
use generic-service
host_name sampleHost
service_description Root Partition
check_command check_nrpe!check_root_space
}
------------------------------------------------------------------------
四、除錯
可以使用以下指令來確認我們的設定檔(cfg)有沒有寫錯:
$ /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
若沒有問題,我們再重新啟動nagios
$ service nagios restart
參考資料來源:http://library.nagios.com/library/products/nagioscore/manuals/