天天看點

學習Nagios(二):Nagios配置

說明:為了和nagios版本的保持一直,我們在此使用的是nagios最新版nagios-4.1.0rc1。

注意:最新版的nagios可在web頁面檢視其運作的pid。

學習Nagios(二):Nagios配置
學習Nagios(二):Nagios配置

<b>一、nagois監控對象</b>

nagios監控的對象比較多,我們可以從顆粒度的不同進行劃分,分為籠統對象和詳細對象。

<b>1.1</b><b>籠統對象</b>

nagios監控的籠統對象可以分為兩種類型:網絡服務和主機資源。

網絡服務包括主機(含網絡裝置)存活狀态、web服務、ftp服務、資料庫服務、自定義服務等。

主機資源包括系統負載、目前ip連結數、磁盤空間使用情況、目前程序數、自定義資源等。

<b>1.2 </b><b>詳細對象</b>

nagios監控的詳細對象,有以下對象:

網站監控、主流資料庫監控、協定監控、作業系統監控、應用監控、應用伺服器監控、網絡監控、動力環境監控、存儲監控、郵件監控、安全監控、日志監控、虛拟化監控。

網站監控主要包括網站、網站應用、網站内容、http、ssl等。

主流資料庫監控主要包括mysql、oracle、db2、mssql等。

協定監控主要包括http、dns、ftp、snmp、smtp、ssh、ldap、imap、pop、icmp、dhcp等。

作業系統監控主要包括linux、windows、unix、solaris、aix、hp-ux等。

應用監控主要包括服務、程序等。

應用伺服器監控主要包括tomcat、jboss、websphere、weblogic、java、jmx等。

網絡監控主要包括路由器、交換機、防火牆等。

日志監控主要包括windows事件日志、syslog等。

動力環境監控主要包括溫濕度、煙霧傳感器、浸水、幹接點、ups、apc等。

如果想要詳細了解nagios監控的對象,我們可以去nagios官網進行檢視。如下:

http://www.nagios.com/solutions

學習Nagios(二):Nagios配置

<b>二、nagios監控方法</b>

前面我們說了nagios監控的對象,那麼我們是通過哪些方法監控這些對象的呢,即通過哪些監控載體來實作監控的?

nagios給我們提供了多種監控方法,比較常見的有nrpe、snmp、腳本。

nrpe方式在windows、linux上都有對應的用戶端軟體,而snmp方式需要在windows、linux上安裝snmp相關的元件。對于腳本方式的監控,我們可以使用shell、perl等腳本。

對于以上三種方式,建議根據實際的業務進行選擇。比如:要監控網絡裝置的相關情況,我們一般是通過snmp方式的。而對于os來說,我們最常見的是通過nrpe和snmp方式。

<b>三、nagios通知方式</b>

監控的主要目的是當監控的對象發生故障或資源緊張時及時通知相關人員,以便問題得到迅速的處理。

nagios為了友善我們的管理工作,給我們提供了至少3種通知方式。

web方式:通過浏覽器觀看被監控的對象,正常狀态下,其狀态(status)是以藍色填充并顯示一個ok。

郵件通知:當發生故障同時達到設定重試次數和探測間隔時間時,發送郵件給管理者或相關人員,報告問題的大緻情況。

手機短信:這是非常有用和及時的功能了,一旦發生故障,手機短信可以及時提醒你。

一般情況下,這三者是同時進行的:上班時間開個浏覽器看頁面顯示、定時收取郵件、手機24小時線上。

<b>四、nagios檔案目錄</b>

nagios以及其插件安裝并配置完畢後,整個目錄層次如下:

ll /usr/local/nagios/

學習Nagios(二):Nagios配置

bin目錄用來存放nagios的執行程式,包括nagios、nrpe等。

etc目錄用來存放nagios的配置檔案。

libexec目錄用來存放nagios的監控插件。

sbin目錄用來存放nagios cgi檔案,也就是執行外部指令所需檔案所在的目錄。

share目錄用來存放nagios網頁檔案,也就是存放web頁面的目錄。

include目錄用來存放nagios cgi檔案的外部調用。

var目錄用來存放nagios日志檔案、lock檔案等檔案。

<b>五、nagios配置檔案</b>

nagios目錄介紹完畢後,我們再來介紹nagios的配置檔案。nagios配置檔案預設都在/usr/local/nagios/etc目錄下。

<b>5.1 nagios</b><b>配置檔案簡介</b>

檢視nagios的配置檔案,如下:

/usr/local/nagios

tree -l 2 ./etc/

學習Nagios(二):Nagios配置

通過上圖,我們可以很明顯的看到所有的配置檔案。下面來介紹每個配置檔案具體作用。如下:

cgi.cfg用于控制cgi通路的配置檔案。

htpasswd.users用于存放nagios管理者使用者名和密碼的檔案。

nagios.cfg是nagios主配置檔案,所有的cfg配置檔案(外部調用除外)必須都在此檔案中引用cfg配置檔案才能生效。

resource.cfg變量定義檔案,又稱為資源檔案。該檔案中定義的變量,可以被其他配置檔案引用,如$user1$。

objects是一個目錄,此目錄下的檔案主要用于定義nagios的監控對象。

commands.cfg是nagios監控指令的定義檔案,其中定義的指令可以被其他配置檔案引用。

contacts.cfg是定義nagios監控對象出現故障時,通知的聯系人和聯系人組的配置檔案。

localhost.cfg是定義監控本地主機的配置檔案。

templates.cfg是定義主機和服務的一個模闆配置檔案。

timeperiods.cfg是定義nagios監控時間段的配置檔案。

services.cfg是存放具體被監控服務的相關配置内容。該配置檔案預設是不存在的,需要自己手工建立,并且要建立在services目錄下。同時還需要在nagios.cfg檔案指定services目錄。如下:

egrep -v “^#|^$” nagios.cfg

cfg_dir=/usr/local/nagios/etc/services

學習Nagios(二):Nagios配置

hosts.cfg存放具體被監控的主機相關配置。該配置檔案預設是不存在的,需要自己手工建立,并且要建立在hosts目錄下。同時還需要在nagios.cfg檔案指定hosts目錄。與services.cfg使用方法相同。

<b>5.2 nagios</b><b>配置檔案之間的關系</b>

在nagios的配置過程中涉及到定義有:主機、主機組,服務、服務組,聯系人、聯系人組,監控時間,監控指令等。從這些定義可以看出,nagios各個配置檔案之間是互為關聯、彼此引用的。

要成功配置出一台nagios監控系統,必須要弄清楚各個配置檔案之間依賴與被依賴的關系,最重要的有四點:

第一:定義監控哪些主機、主機組、服務和服務組。

第二:定義這個監控要用什麼指令實作。

第三:定義監控的時間段。

第四:定義主機或服務出現問題時要通知的聯系人和聯系人組。

<b>5.2 cgi.cfg</b><b>檔案介紹</b>

cgi.cfg檔案是用來控制nagios的相關cgi腳本。如果想在nagios的web監控界面執行相關的cgi腳本,例如重新開機nagios程序、關閉nagios通知、停止nagios主機檢測等,這時就需要配置cgi.cfg檔案。

如果我們要添加一個新管理者admin的話,我們就需要修改cgi.cfg檔案添加此使用者的相關執行權限即可。如下:

egrep -v “^#|^$” cgi.cfg

學習Nagios(二):Nagios配置

cgi.cfg檔案修改完畢,我們還需要把admin使用者添加到htpasswd.users檔案中使用htpasswd指令。如下:

htpasswd htpasswd.users admin

cat htpasswd.users

學習Nagios(二):Nagios配置

<b>5.3 nagios.cfg</b><b>檔案介紹</b>

nagios.cfg是nagios的主配置檔案,預設的路徑為/usr/local/nagios/etc/nagios.cfg。所有的對象配置檔案都必須在這個檔案中進行定義才能發揮其作用,這裡隻需将對象配置檔案在nagios.cfg檔案中引用即可。

nagios.cfg配置檔案的内容比較多,我們在此隻介紹比較重要的部分。

檢視nagios.cfg檔案内容,如下:

學習Nagios(二):Nagios配置

log_file=/usr/local/nagios/var/nagios.log

用于定義nagios在何處建立其日志檔案。

說明:

log_file變量用于定義nagios在何處建立其日志檔案。如果你使用了nagios日志輪詢功能,那麼nagios将在每小時、每天、每周或每月對日志進行輪詢。

cfg_file=/usr/local/nagios/etc/objects/commands.cfg

用于定義nagios監控指令的配置檔案。

cfg_file變量用來引用對象配置檔案,如果有更多的對象配置檔案,我們隻需在nagios.cfg檔案中依次添加即可。

對象配置檔案中一般包含主機、主機組、聯系人、聯系人組、服務、指令等對象的定義。

如果要使nagios處理所有在特定目錄中包含的對象配置檔案,那麼我們可以使用cfg_dir指令。如下所示:

學習Nagios(二):Nagios配置

cfg_dir變量用于引用一個目錄裡包含的所有對象配置檔案。所有在這個目錄下的且以.cfg為字尾名的檔案将被作為對象配置檔案來處理。

另外,nagios将會遞歸該目錄下的子目錄并處理其子目錄下的全部配置檔案。你也可以把配置放入不同的目錄并且用cfg_dir=語句來指向每個待處理的目錄。

cfg_file=/usr/local/nagios/etc/objects/contacts.cfg

用于引用nagios聯系人的配置檔案。

cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg

用于引用nagios監控時段的配置檔案。

cfg_file=/usr/local/nagios/etc/objects/templates.cfg

用于引用nagios監控對象的模版檔案。

cfg_file=/usr/local/nagios/etc/objects/localhost.cfg

用于引用nagios監控本地( linux )主機的配置檔案。

resource_file=/usr/local/nagios/etc/resource.cfg

resource_file變量用于定義nagios資源配置檔案,可以在nagios.cfg中定義多個資源檔案。

status_file=/usr/local/nagios/var/status.dat

status_file變量用于定義nagios的狀态檔案,此檔案用于儲存nagios目前的狀态、當機資訊等。它會在每次nagios重新啟動的時候被清空删除。

status_update_interval=10

該變量用于定義狀态檔案(即status.dat)的更新時間間隔,機關是秒,最小更新間隔是1秒,預設是10秒。

nagios_user=nagios

該變量指定nagios程序使用哪個使用者運作。

nagios_group=nagios

該變量指定nagios使用哪個使用者組運作。

check_external_commands=1

該變量用于設定是否允許nagios在web監控界面運作cgi指令,也就是是否允許nagios在web界面下執行重新開機nagios、停止主機、服務檢查等操作。其中1表示允許,0表示不允許。

command_file=/usr/local/nagios/var/rw/nagios.cmd

定義nagios用來檢查外部指令請求的檔案。這個檔案同樣也是使用者操作送出與cgi指令寫入的地方,是以這個檔案必須對于相關服務可寫,一般是針對apache的宿主使用者可寫。<b>并且注意,這個檔案所在的目錄的權限必須被apache可寫,而不單指這檔案,因為這個檔案在工作當中是頻繁被寫入和删除的。</b>

lock_file=/usr/local/nagios/var/nagios.lock

定義nagios運作時用來儲存它的pid檔案。

temp_file=/usr/local/nagios/var/nagios.tmp

定義nagios臨時檔案路徑。它将在nagios運作時不停地被建立、使用和删除。

log_rotation_method=d

定義nagios的日志輪詢方式,預設是每天輪詢。

值為n表示none,不做輪詢。值為h表示hourly,每小時輪詢一次(每小時的開始)。值為d表示daily,每天輪詢一次(每天的午夜)。值為w表示weekly,每周輪詢一次(每周六的晚上)。值為m表示monthly,每月輪詢一次(每上個月的最後一天的午夜)。

log_archive_path=/usr/local/nagios/var/archives

定義nagios日志的歸檔路徑。

command_check_interval=10s

該變量用于定義nagios對外部指令檢測的間隔,預設為10秒。如果這個數值不加上機關的話,預設機關為分鐘。例如1就是表示1分鐘,nagios每分鐘檢測一次。

service_check_timeout=60

定義服務檢測的逾時時間,預設為60秒。如果服務檢查時間超過所定義的時間,則顯示為critical狀态。

host_check_timeout=30

定義主機檢測的逾時時間,預設為30秒。若主機檢查時間超過所定義的時間,則顯示為critical狀态。

event_handler_timeout=30

定義事件處理最長時間,預設為30秒。若事件處理最長時間超出所定義的時間,則nagios會發出一條warning警告資訊并記錄到日志中。

notification_timeout=30

定義通知資訊發送的時間間隔,預設為30秒。

interval_length=60

該變量用于定義nagios檢測時間間隔的機關,預設值是60秒,即1分鐘。也就是說在nagios中,檢測時間間隔預設是以分鐘為機關的。

這樣定義以後其他地方需要用到時間機關長度的,預設都為分鐘。在配置模版檔案templates.cfg中定義主機和服務時,就是以該值為基礎的。如下:

egrep -v “^#|^$” templates.cfg

check_interval 5

retry_interval 1

學習Nagios(二):Nagios配置

表示檢查間隔為5*60s(5分鐘),即每5分鐘檢查一次。重試檢查時間間隔為1分鐘,最多重試檢查10次。

<b>注意:nagios在ok狀态時,用check_interval定義的時間間隔來監控,出現問題後,切換為retry_interval和max_check_attempts進行監控,當重試次數達到max_check_attempts值後觸發首次報警,同時恢複為check_interval進行監控,并用notification_interval定義的時間間隔來發送報警。故障恢複正常後,在最近的check_interval點發送ok通知,完成報警周期。</b>

對于一些敏感度要求高的服務,這明顯不能滿足我們的要求,是以可以将其調小,如調整為10秒:

interval_length=10s

這樣就提高了檢查的靈敏度,但有些服務又不需要如此高的靈敏度,如磁盤空間(不會一下就增加很多),則可以在定義check_interval是增大其數值。

注意:靈敏度和誤報率是成正比的,檢查間隔越小,出現誤報的可能性越大。是以,建議根據實際情況調整到合适的值。

<b>5.4 resource.cfg</b><b>檔案介紹</b>

resource.cfg是nagios的變量定義檔案,檔案内容隻有一行。如下:

$user1$=/usr/local/nagios/libexec

學習Nagios(二):Nagios配置

其中,變量$user1$指定安裝nagios插件的路徑。

如果把插件安裝在了其它路徑,隻需在這裡進行修改即可。

需要注意的是,變量必須先定義,然後才能在其它配置檔案中進行引用,同時該變量也是可以通過宏進行定義。

nagios的一個重要特征就是可以在指令行的定義裡使用宏,通過定義宏,nagios可以靈活的擷取主機、服務和其它對象的資訊。

<b>5.4.1 </b><b>宏的工作機制</b>

在執行指令之前,nagios将對指令裡的每個宏替換成它們應當取得的值。這種宏替換發生在nagios執行各種類型的宏時候。例如主機和服務的檢測、通知、事件處理等。

<b>5.4.2 </b><b>宏的分類</b>

根據宏的不同,我們可以把宏分成:預設宏、按需而成的宏、使用者自定義宏。

<b>預設宏,以主機ip位址宏為例。</b>

當在指令定義中使用主機或服務宏時,宏将要執行時所用的值指向主機或服務所帶的值。

看下面這個例子,假如在check_ping指令定義裡使用了一個主機對象,如下:

define host{

host_name ilanni

address 192.168.1.247

check_command check_ping }

define command{

command_name check_ping

command_line /usr/local/nagios/libexec/check_ping -h $hostaddress$ -w 100.0,90% -c 200.0,60% }

那麼執行這個主機檢測指令時,最終執行的将是這樣的:

/usr/local/nagios/libexec/check_ping -h 192.168.1.247 -w 100.0,90% -c 200.0,60%

nagios宏的優美之處在于你可以隻用一個指令定義來完成無限個主機的檢測,并且每個主機可以使用相同的指令來進行檢測,而在對它們檢測之前将把主機位址正确地進行替換。

<b>指令參數宏</b>

同樣你也可以向指令傳遞參數,這樣可以保證指令定義更具通用性。參數指定在對象(像主機或服務)中定義,用一個“!”來分隔,例如這樣:

define service{

host_name ilanniservice

service_description ping

check_command check_ping!200.0,80%!400.0,40% }

上例中,服務的檢測指令中含有兩個參數,$arg1$宏将是”200.0,80%”,$arg2$将是”400.0,40%”(都不帶引号)。假如check_ping指令是這樣定義的:

command_line /usr/local/nagios/libexec/check_ping -h $hostaddress$ -w $arg1$ -c$arg2$ }

那麼對于服務的檢測指令最終将是這樣的:

/usr/local/nagios/libexec/check_ping -h 192.168.1.247 -w 200.0,80% -c 400.0,40%

另外,按需而成的宏和使用者自定義宏,在此我們就不做過多介紹。如果想要深入學習有關nagios宏的相關知識的話,可以去nagios官網進行檢視。

<b>5.4.3 nagios</b><b>可用的宏</b>

nagios可用的宏比較多,但是每個指令最多支援32個參數宏。在此我們介紹幾個經常使用的宏。

<b>主機宏:</b>

$hostname$主機簡稱,取自于主機定義裡的host_name。$hostaddress$主機位址,取自于主機定義裡的address。

<b>服務宏:</b>

$servicestate$目前服務的狀态,有w、u、c、r。其中w即warn,表示警告狀态。u即unknown,表示狀态不明。c即criticle,表示緊急狀态。r即recover,表示恢複狀态。

$servicedesc$對目前服務的描述。

<b>聯系人宏:</b>

$contactname$表示聯系人,在聯系人contacts.cfg檔案中定義。

<b>通知宏:</b>

$notificationtype$傳回下面資訊:(“problem”, “recovery”, “acknowledgement”,”flappingstart”,”flappingstop”,”flappingdisabled”,”downtimestart”,”downtimeend”,or”downtimecancelled”)。

<b>日期/時間宏:</b>

$longdatetime$目前的日期/時間戳。

<b>檔案宏:</b>

$logfile$日志檔案的儲存位置。$mainconfigfile$主配置檔案的儲存位置。

<b>其他宏:</b>

$adminemail$全局管理者email位址。

$argn$指向第n個指令傳遞參數(通知、事件處理、服務檢測等)。

如果想檢視nagios所有宏的資訊,可以在nagios的官方網站進行檢視。如下:

http://nagios.sourceforge.net/docs/nagioscore/4/en/toc.html

學習Nagios(二):Nagios配置

當然也可以檢視nagioc中文版的連接配接,如下:

<a href="http://nagios-cn.sourceforge.net/nagios-cn/advance.html">http://nagios-cn.sourceforge.net/nagios-cn/advance.html</a>

學習Nagios(二):Nagios配置

<b>5.5 commands.cfg</b><b>檔案介紹</b>

commands.cfg是nagios監控指令的定義檔案,該檔案預設是存在的,無需修改即可使用。當然如果有新指令需要加入時,隻需在此檔案中添加即可。這裡并未列出該檔案的所有内容,僅僅介紹在配置中經常使用到的一些指令。

egrep -v “^#|^$” commands.cfg

學習Nagios(二):Nagios配置

下面是notify-host-by-email指令的定義:

command_name notify-host-by-email

command_line /usr/bin/printf “%b” “*****nagios*****\n\nnotification type: $notificationtype$\nhost:$hostname$\nstate: $hoststate$\naddress:$hostaddress$\ninfo: $hostoutput$\n\ndate/time:$longdatetime$\n”|/bin/mail -s “** $notificationtype$ host alert:$hostname$ is $hoststate$**”$contactemail$ }

command_name行定義指令名稱,即定義了一個主機異常時發送郵件的指令。

command_line行定義指令具體的執行方式,其中“-h $hostaddress$”是定義目标主機的位址。

下面是notify-service-by-email指令的定義:

command_name notify-service-by-email

command_line /usr/bin/printf “%b” “*****nagios*****\n\nnotification type: $notificationtype$\n\nservice: $servicedesc$\nhost: $hostalias$\naddress: $hostaddress$\nstate: $servicestate$\n\ndate/time: $longdatetime$\n\nadditional info:\n\n$serviceoutput$\n”|/bin/mail -s “** $notificationtype$service alert: $hostalias$/$servicedesc$is $servicestate$**”$contactemail$ }

command_name行定義指令名稱,即定義了一個服務異常時發送郵件的指令。

command_line指令具體的執行方式,“-h $hostaddress$”是定義目标主機的位址,這個位址在hosts.cfg檔案中定義了。

下面是check-host-alive指令的定義:

command_name check-host-alive

command_line $user1$/check_ping -h $hostaddress$ -w 3000.0,80% -c 5000.0,100% -p 5 }

command_name行定義指令名稱,用來檢測主機的狀态。

command_line這裡的變量$user1$是在resource.cfg檔案中進行定義的,即$user1$=/usr/local/nagios/libexec,最後check_ping的完整路徑為/usr/local/nagios/libexec/check_ping。

“-w 3000.0,80%”中“-w”說明後面的一對值對應的是“warning”狀态,“80%”是其臨界值。“-c 5000.0,100%”中“-c”說明後面的一對值對應的是“critical”,“100%”是其臨界值。“-p 5”表示發送5個資料包。

check_ping指令的參數:

-h 目标主機位址。

-w warning警告狀态:響應時間(毫秒),丢包率(%)的閥值。

-c critical危險狀态:響應時間(毫秒),丢包率(%)的閥值。

-p 發送包的個數,預設5個包。

-t 逾時時間,預設10秒。

-4|-6 使用ipv4|ipv6 位址,預設ipv4。

<b>5.6 contacts.cfg</b><b>檔案介紹</b>

contacts.cfg是定義聯系人和聯系人組的配置檔案。當監控的主機或者服務出現故障時,nagios會通過指定的通知方式,将資訊發給這裡指定的聯系人。

egrep -v “^$|^#” contacts.cfg

define contact{

contact_name nagiosadmin

use generic-contact

alias nagios admin

email nagios@localhost }

define contactgroup{

contactgroup_name admins

alias nagios administrators

members nagiosadmin }

學習Nagios(二):Nagios配置

contact_name行定義聯系人名稱。

use行表示引用generic-contact的屬性資訊,其中generic-contact在templates.cfg檔案中進行定義。

alias行定義聯系人别名。

email行定義聯系人的郵件位址。

contactgroup_name行定義聯系人組名稱。

members行定義聯系人組成員,其中“nagiosadmin”就是上面定義的聯系人。

<b>5.7 timeperiods.cfg</b><b>檔案介紹</b>

timeperiods.cfg檔案用于定義監控的時間段。

下面是定義一個名為24×7的時間段,即監控所有時間段。如下:

egrep -v “^#|^$” timeperiods.cfg

學習Nagios(二):Nagios配置

注意:timeperiod_name行定義的時間段名稱中不能有空格。

<b>5.8 templates.cfg</b><b>檔案介紹</b>

為了不必重複定義一些監控對象,nagios引入了一個模闆配置檔案templates.cfg,将一些共性的屬性定義成模闆,以便于多次引用。

templates.cfg通用模闆定義,包括監控主機模闆generic-host、linux_server,監控服務模闆local_service,聯系人模闆generic-contact(并非真正的聯系人,真正的聯系人在contacts.cfg中定義)。

下面詳細介紹下templates.cfg檔案中每個參數的含義:

name generic-contact

定義聯系人名稱。

service_notification_period 24×7

當服務出現異常時,發送通知的時間段,這個時間段“24×7″在timeperiods.cfg檔案中定義。

host_notification_period 24×7

當主機出現異常時,發送通知的時間段,這個時間段“24×7″在timeperiods.cfg檔案中定義。

service_notification_options w,u,c,r

定義通知可以發出的狀态。w即warn,表示警告狀态。u即unknown,表示狀态不明。c即criticle,表示緊急狀态。r即recover,表示恢複狀态。也就是說在服務出現警告狀态、未知狀态、緊急狀态和重新恢複狀态時都發送通知給使用者。

host_notification_options d,u,r

定義主機在什麼狀态下需要發送通知給使用者。d即down,表示當機狀态。u即unreachable,表示不可到達狀态。r即recovery,表示重新恢複狀态。

service_notification_commands notify-service-by-email

定義服務發生故障時,發送通知的方式,這裡定義的是郵件,其中“notify-service-by-email”在commands.cfg檔案中定義。

host_notification_commands notify-host-by-email

定義主機發生故障時,發送通知的方式,這裡定義的是郵件,其中“notify-host-by-email”在commands.cfg檔案中定義。

register 0

}

name generic-host

定義主機名稱。這裡的主機名,并不是直接對應到真正機器的主機名,而是對應到在主機配置檔案裡所設定的主機名。

notifications_enabled 1

event_handler_enabled 1

flap_detection_enabled 1

failure_prediction_enabled 1

process_perf_data 1

retain_status_information 1

retain_nonstatus_information 1

notification_period 24×7

指定發送通知的時間段,也就是可以在什麼時候發送通知給使用者。

register 0 }

name linux-server

定義主機名稱。

use generic-host

use表示引用,也就是将主機generic-host的所有屬性引用到linux-server中來。在nagios配置中,很多情況下會用到引用。

check_period 24×7

這裡的check_period告訴nagios檢查主機的時間段。

nagios對主機的檢查時間間隔,這裡是5分鐘。

重試檢查時間間隔,機關是分鐘。

max_check_attempts 10

nagios對主機的最大檢查次數,也就是nagios在檢查發現某主機異常時,并不馬上判斷為異常狀況,而是多試幾次,因為有可能隻是一時網絡太擁擠,或是一些其他原因,讓主機受到了一點影響,這裡的10就是最多試10次的意思。

check_command check-host-alive

指定檢查主機狀态的指令,其中“check-host-alive”在commands.cfg檔案中定義。

notification_period workhours

當主機故障時,發送通知的時間範圍,其中“workhours”在timeperiods.cfg中進行定義。

notification_interval 120

在主機出現異常後,故障一直沒有解決,nagios再次對使用者發出通知的時間,機關是分鐘。

notification_options d,u,r

定義主機在什麼狀态下可以發送通知給使用者。d即down,表示當機狀态。u即unreachable,表示不可到達狀态。r即recovery,表示重新恢複狀态。

contact_groups admins

指定聯系人組,這個“admins”在contacts.cfg檔案中定義。

name generic-service

定義服務名稱。

active_checks_enabled 1

passive_checks_enabled 1

parallelize_check 1

obsess_over_service 1

check_freshness 0

is_volatile 1

這裡的check_period告訴nagios檢查服務的時間段。

max_check_attempts 3

nagios對服務的最大檢查次數。

normal_check_interval 10

此選項是用來設定服務檢查時間間隔,也就是說,nagios這一次檢查和下一次檢查之間所隔的時間,這裡是10分鐘。

retry_check_interval  2

contact_groups  admins

指定聯系人組,同上。

notification_options  w,u,c,r

這個定義的是通知可以發出時的狀态。w即warn,表示警告狀态,u即unknown,表示不明狀态。c即criticle,表示緊急狀态。r即recover,表示恢複狀态。也就是在服務出現警告狀态、未知狀态、緊急狀态和重新恢複後都發送通知給使用者。

notification_interval 60

在服務出現異常後,故障一直沒有解決,nagios再次對使用者發出通知的時間,機關是分鐘。

notification_period  24×7

register  0 }

繼續閱讀