您好,登錄后才能下訂單哦!
本文首發于爛泥行天下
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 nagios@localhost }
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 }
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。