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

來源:互聯網
上載者:User

標籤:

本文由秀依林楓提供友情贊助,首發於爛泥行天下

nagios安裝完畢後,我們現在就來配置nagios。有關nagios的安裝,可以參考《爛泥:學習Nagios(一):Nagios安裝》這篇文章。

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

注意:最新版的nagios可在web頁面查看其啟動並執行PID。

一、nagois監控對象

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

1.1籠統對象

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

網路服務包括主機(含網路裝置)存活狀態、web服務、ftp服務、資料庫服務、自訂服務等。

主機資源套件括系統負載、當前IP連結數、磁碟空間使用方式、當前進程數、自訂資源等。

1.2 詳細對象

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監控的對象,那麼我們是通過哪些方法監控這些對象的呢,即通過哪些監控載體來實現監控的?

nagios給我們提供了多種監控方法,比較常見的有NRPE、SNMP、指令碼。

NRPE方式在windows、Linux上都有對應的用戶端軟體,而SNMP方式需要在windows、Linux上安裝SNMP相關的組件。對於指令碼方式的監控,我們可以使用shell、perl等指令碼。

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

三、nagios通知方式

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

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

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

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

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

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

四、nagios檔案目錄

nagios以及其外掛程式安裝並配置完畢後,整個目錄層次如下:

ll /usr/local/nagios/

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

etc目錄用來存放nagios的設定檔。

libexec目錄用來存放nagios的監控外掛程式。

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

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

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

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

五、nagios設定檔

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

5.1 nagios設定檔簡介

查看nagios的設定檔,如下:

/usr/local/nagios

tree -L 2 ./etc/

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

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

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

5.2 nagios設定檔之間的關係

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

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

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

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

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

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

5.2 cgi.cfg檔案介紹

cgi.cfg檔案是用來控制nagios的相關cgi指令碼。如果想在nagios的web監控介面執行相關的cgi指令碼,例如重啟nagios進程、關閉nagios通知、停止nagios主機檢測等,這時就需要配置cgi.cfg檔案。

在《爛泥:學習Nagios(一):Nagios安裝》文章中,我們已經提到nagios預設管理員是nagiosadmin。

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

egrep -v "^#|^$" cgi.cfg

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

htpasswd htpasswd.users admin

cat htpasswd.users

5.3 nagios.cfg檔案介紹

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

nagios.cfg設定檔的內容比較多,我們在此只介紹比較重要的部分。

查看nagios.cfg檔案內容,如下:

egrep -v "^#|^$" nagios.cfg

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指令。如下所示:

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

說明:

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的宿主使用者可寫。並且注意,這個檔案所在的目錄的許可權必須被Apache可寫,而不單指這檔案,因為這個檔案在工作當中是頻繁被寫入和刪除的。

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

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

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

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

interval_length=10s

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

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

5.4 resource.cfg檔案介紹

resource.cfg是nagios的變數定義檔案,檔案內容只有一行。如下:

$USER1$=/usr/local/nagios/libexec

其中,變數$USER1$指定安裝nagios外掛程式的路徑。

如果把外掛程式安裝在了其它路徑,只需在這裡進行修改即可。

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

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

5.4.1 宏的工作機制

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

5.4.2 宏的分類

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

預設宏,以主機IP地址宏為例。

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

看下面這個例子,假如在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宏的優美之處在於你可以只用一個命令定義來完成無限個主機的檢測,並且每個主機可以使用相同的命令來進行檢測,而在對它們檢測之前將把主機地址正確地進行替換。

命令參數宏

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

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命令是這樣定義的:

define command{

  command_name 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官網進行查看。

5.4.3 nagios可用的宏

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

主機宏:

$HOSTNAME$主機簡稱,取自於主機定義裡的host_name。$HOSTADDRESS$主機地址,取自於主機定義裡的address。

服務宏:

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

$SERVICEDESC$對當前服務的描述。

連絡人宏:

$CONTACTNAME$表示連絡人,在連絡人contacts.cfg檔案中定義。

通知宏:

$NOTIFICATIONTYPE$返回下面資訊:("PROBLEM", "RECOVERY", "ACKNOWLEDGEMENT","FLAPPINGSTART","FLAPPINGSTOP","FLAPPINGDISABLED","DOWNTIMESTART","DOWNTIMEEND",or"DOWNTIMECANCELLED")。

日期/時間宏:

$LONGDATETIME$當前的日期/時間戳。

檔案宏:

$LOGFILE$記錄檔的儲存位置。$MAINCONFIGFILE$主設定檔的儲存位置。

其他宏:

$ADMINEMAIL$全域管理員email地址。

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

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

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

當然也可以查看nagioc中文版的串連,如下:

http://nagios-cn.sourceforge.net/nagios-cn/advance.html

5.5 commands.cfg檔案介紹

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

egrep -v "^#|^$" commands.cfg

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

define command{

   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命令的定義:

define command{

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命令的定義:

define command{

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。

5.6 contacts.cfg檔案介紹

contacts.cfg是定義連絡人和連絡人群組的設定檔。當監控的主機或者服務出現故障時,nagios會通過指定的通知方式,將資訊發給這裡指定的連絡人。

egrep -v "^$|^#" contacts.cfg

define contact{

contact_name nagiosadmin

use generic-contact

alias Nagios Admin

email [email protected] }

define contactgroup{

contactgroup_name admins

alias Nagios Administrators

members nagiosadmin }

contact_name行定義連絡人名稱。

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

alias行定義連絡人別名。

email行定義連絡人的郵件地址。

contactgroup_name行定義連絡人群組名稱。

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

5.7 timeperiods.cfg檔案介紹

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

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

egrep -v "^#|^$" timeperiods.cfg

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

5.8 templates.cfg檔案介紹

為了不必重複定義一些監控對象,nagios引入了一個模板設定檔templates.cfg,將一些共性的屬性定義成模板,以便於多次引用。

templates.cfg通用模板定義,包括監控主機模板generic-host、linux_server,監控服務範本local_service,連絡人模板generic-contact(並非真正的連絡人,真正的連絡人在contacts.cfg中定義)。

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

define contact{

name generic-contact

定義連絡人名稱。

service_notification_period 24x7

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

host_notification_period 24x7

當主機出現異常時,發送通知的時間段,這個時間段“24x7"在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

}

define host{

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 24x7

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

register 0 }

define host{

name linux-server

定義主機名稱。

use generic-host

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

check_period 24x7

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

check_interval 5

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

retry_interval 1

重試檢查時間間隔,單位是分鐘。

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檔案中定義。

register 0 }

define service{

name generic-service

定義服務名稱。

active_checks_enabled 1

passive_checks_enabled 1

parallelize_check 1

obsess_over_service 1

check_freshness 0

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

is_volatile 1

check_period 24x7

這裡的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  24x7

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

register  0 }

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.