nagios配置過程詳解
正在學習nagios監控,詳細學習一下配置這塊,共享一下:
1、nagios預設配置檔案介紹
nagios安裝完畢後,預設的配置檔案在/usr/local/nagios/etc目錄下,每個檔案或目錄含義如下表所示:
2、配置檔案之間的關係
在nagios的配置過程中涉及到的幾個定義有:主機、主機組,服務、服務組,聯絡人、聯絡人組,監控時間,監控命令等,從這些定義可以看出,nagios各個配置檔案之間是互為關聯,彼此引用的。
成功配置出一臺nagios監控系統,必須要弄清楚每個配置檔案之間依賴與被依賴的關係,最重要的有四點:
第一:定義監控哪些主機、主機組、服務和服務組
第二:定義這個監控要用什麼命令實現,
第三:定義監控的時間段,
第四:定義主機或服務出現問題時要通知的聯絡人和聯絡人組。
3、開始配置nagios
為了能更清楚的說明問題,同時也為了維護方便,建議將nagios各個定義物件建立獨立的配置檔案:
即為:
建立hosts.cfg檔案來定義主機和主機組
建立services.cfg檔案來定義服務
用預設的contacts.cfg檔案來定義聯絡人和聯絡人組
用預設的commands.cfg檔案來定義命令
用預設的timeperiods.cfg來定義監控時間段
用預設的templates.cfg檔案作為資源引用檔案
(1)templates.cfg檔案
nagios主要用於監控主機資源以及服務,在nagios配置中稱為物件,為了不必重複定義一些監控物件,Nagios引入了一個模板配置檔案,將一些共性的屬性定義成模板,以便於多次引用。這就是templates.cfg的作用。
下面詳細介紹下templates.cfg檔案中每個引數的含義:
- define contact {
- name generic-contact #聯絡人名稱,
-
- service_notification_period 24x7 #當服務出現異常時,傳送通知的時間段,這個時間段“7x24"在timeperiods.cfg檔案中定義
-
- host_notification_period 24x7 #當主機出現異常時,傳送通知的時間段,這個時間段“7x24"在timeperiods.cfg檔案中定義
-
- service_notification_options w,u,c,r #這個定義的是服務“通知可以被髮出的情況”。w即warn,表示警告狀態,u即unknown,表示不明狀態,c即critical,表示緊急狀態,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 {
- .........
- .........
-
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 7x24 #主機故障時,傳送通知的時間範圍,其中“7x24”在timeperiods.cfg中進行了定義,下面會陸續講到。
- notification_interval 120 #在主機出現異常後,故障一直沒有解決,nagios再次對使用者發出通知的時間。單位是分鐘。如果你覺得,所有的事件只需要一次通知就夠了,可以把這裡的選項設為0 、
- notification_options d,u,r #定義主機在什麼狀態下可以傳送通知給使用者,d即down,表示當機狀態,u即unreachable,表示不可到達狀態,r即recovery,表示重新恢復狀態。
- contact_groups admins #指定聯絡人組,這個“admins”在contacts.cfg檔案中定義。
- }
- define service{
- use 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 0
- 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再次對使用者發出通知的時間。單位是分鐘。如果你認為,所有的事件只需要一次通知就夠了,可以把這裡的選項設為0。
- notification_period 24x7 #指定“傳送通知”的時間段,也就是可以在什麼時候傳送通知給使用者。
- }
(2)resource.cfg檔案
resource.cfg是nagios的變數定義檔案,檔案內容只有一行:
- $USER1$=/usr/local/nagios/libexec
其中,變數$USER1$指定了安裝nagios外掛的路徑,如果把外掛安裝在了其它路徑,只需在這裡進行修改即可。需要注意的是,變數必須先定義,然後才能在其它配置檔案中進行引用。
(3)理解Nagios巨集及其工作機制
Nagios配置非常靈活,繼承和引用是一大特徵,另一個重要特徵就是可以在命令列的定義裡使用巨集,通過定義巨集,nagios可以靈活的獲取主機、服務和其它物件的資訊。
巨集的工作機制
在執行命令之前,nagios將對命令裡的每個巨集替換成它們應當取得的值。這種巨集替換髮生在Nagios執行各種型別的巨集時候。例如主機和服務的檢測、通知、事件處理等。
巨集的分類:
預設巨集、按需而成的巨集、使用者自定製巨集等。
預設巨集:
主機IP地址巨集
當在命令定義中使用主機或服務巨集時,巨集將要執行所用的值指向主機或服務所帶有值。看下面這個例子,假定在check_ping命令定義裡使用了一個主機物件,例如這樣:
- define host{
- host_name ixdba
- address 192.168.12.246
- 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.12.246 -w 100.0,90% -c 200.0,60%
命令引數巨集
同樣你可以向命令傳遞引數,這樣可以保證命令定義更具通用性。引數指定在物件(象主機或服務)中定義,用一個“!”來分隔,例如這樣:
- define service{
- host_name linuxbox
- service_description PING
- check_command check_ping!200.0,80%!400.0,40%
- ...
- }
在上例中,服務的檢測命令中含有兩個引數(請參考$ARGn$巨集),而$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.12.246 -w 200.0,80% -c 400.0,40%
Nagios可用的全部的巨集
主機巨集
$HOSTNAME$ 主機簡稱(如"web"),取自於主機定義裡的host_name域
$HOSTADDRESS$ 主機地址。取自於主機定義裡的address域
服務巨集
$SERVICESTATE$ 服務狀態描述,有w,u,c
$SERVICEDESC$ 對當前服務的描述
聯絡人巨集
$CONTACTNAME$ 表示聯絡人,在聯絡人檔案中定義
通知巨集
$NOTIFICATIONTYPE$ 返回下面資訊:("PROBLEM", "RECOVERY", "ACKNOWLEDGEMENT", "FLAPPINGSTART", "FLAPPINGSTOP", "FLAPPINGDISABLED", "DOWNTIMESTART", "DOWNTIMEEND", or "DOWNTIMECANCELLED").
日期/時間巨集
$LONGDATETIME$ 當前的日期/時間戳
檔案巨集
$LOGFILE$ 日誌檔案的儲存位置。
$MAINCONFIGFILE$ 主配置檔案的儲存位置。
其他巨集
$ADMINEMAIL$ 全域性的管理員EMail地址
$ARGn$ 指向第n個命令傳遞引數(通知、事件處理、服務檢測等)。Nagios支援最多32個引數巨集
(4)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$ #命令具體的執行方式,“-H $HOSTADDRESS$” 是定義目標主機的地址,這個地址在hosts.cfg檔案中定義了。
- }
- #下面是notify-host-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$" | /bin/mail -s "** $NOTIFICATIONTYPE$ Service Alert: $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$ **" $CONTACTEMAIL$
- }
- #下面是notify-host-by-email命令的定義
- define command{
- command_name check-host-alive #命令名稱,用來檢測主機狀態。
- command_line $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -p 5 #這裡的變數$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 1”說明每次探測傳送一個包。
- }
- #下面是notify-host-by-email命令的定義
- define command{
- command_name check_ftp
- command_line $USER1$/check_ftp -H $HOSTADDRESS$ $ARG1$ #$ARG1$是指在呼叫這個命令的時候,命令後面的第一個引數。
- }
- #下面是check_http命令的定義
- define command{
- command_name check_http
- command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
- }
- #下面是check_ssh命令的定義
- define command{
- command_name check_ssh
- command_line $USER1$/check_ssh $ARG1$ $HOSTADDRESS$
- }
(5) hosts.cfg檔案
此檔案預設不存在,需要手動建立,hosts.cfg主要用來指定被監控的主機地址以及相關屬性資訊,一個配置好的例項如下:
- define host{
- use linux-server #引用主機linux-server的屬性資訊,linux-server主機在templates.cfg檔案中進行了定義。
- host_name web #主機名
- alias ixdba-web #主機別名
- address 192.168.12.251 #被監控的主機地址,這個地址可以是ip,也可以是域名。
- }
- define host{
- use linux-server
- host_name mysql
- alias ixdba-mysql
- address 192.168.12.237
- }
-
- define hostgroup{ #定義一個主機組
- hostgroup_name sa-servers #主機組名稱,可以隨意指定。
- alias sa servers #主機組別名
- members web,mysql #主機組成員,其中“web”、“mysql”就是上面定義的兩個主機。
- }
(6) services.cfg檔案
此檔案預設也不存在,需要手動建立,services.cfg檔案主要用於定義監控的服務和主機資源,例如監控http服務、ftp服務、主機磁碟空間、主機系統負載等等。
- ################# ixdba web #####################
- define service{
- use local-service #引用local-service服務的屬性值,local-service在 templates.cfg檔案中進行了定義。
- host_name web #指定要監控哪個主機上的服務,“web”在hosts.cfg檔案中進行了定義。
- service_description PING #對監控服務內容的描述,以供維護人員參考。
- check_command check_ping!100.0,20%!500.0,60%
-
#指定檢查的命令, check_ping命令在commands.cfg中定義,後跟兩個引數,命令與引數間用!分割。
- }
- define service{
- use local-service
- host_name web
- service_description SSH
- check_command check_ssh # check_ssh命令也在commands.cfg中定義。
- }
- define service{
- use local-service
- host_name web
- service_description SSHD
- check_command check_tcp!22
- }
(7) contacts.cfg檔案
contacts.cfg是一個定義聯絡人和聯絡人組的配置檔案,當監控的主機或者服務出現故障,nagios會通過指定的通知方式(郵件或者簡訊)將資訊發給這裡指定的聯絡人或者使用者。
- define contact{
- contact_name sasystem #聯絡人名稱 (自定義)
- use generic-contact #引用generic-contact的屬性資訊,其中“generic-contact”在templates.cfg檔案中進行定義
- alias sa-system #聯絡人別名 (自定義)
- email ixdba@126.com #聯絡人的郵件地址
- }
-
- define contactgroup {
- contactgroup_name admins #聯絡人組名稱
- alias system administrator group #聯絡人組描述
- members sasystem #聯絡人組成員,其中“sasystem”就是上面定義的聯絡人
- }
(8) timeperiods.cfg檔案
此檔案只用於定義監控的時間段,下面是一個配置好的例項:
- #下面是定義一個名為24x7的時間段,即監控所有時間段
- define timeperiod{
- timeperiod_name 24x7
- alias 24 Hours A Day, 7 Days A Week
- sunday 00:00-24:00
- monday 00:00-24:00
- tuesday 00:00-24:00
- wednesday 00:00-24:00
- thursday 00:00-24:00
- friday 00:00-24:00
- saturday 00:00-24:00
- }
-
- #下面是定義一個名為workhours的時間段,即工作時間段。
- define timeperiod{
- timeperiod_name workhours
- alias Normal Work Hours
- monday 09:00-17:00
- tuesday 09:00-17:00
- wednesday 09:00-17:00
- thursday 09:00-17:00
- friday 09:00-17:00
- }
(9) cgi.cfg檔案
此檔案用來控制相關cgi指令碼,如果想在nagios的web監控介面執行cgi指令碼,例如重啟nagios程式、關閉nagios通知、停止nagios主機檢測等,這時就需要配置cgi.cfg檔案了。
由於nagios的web監控介面驗證使用者為ixdba,所以只需在cgi.cfg檔案中新增此使用者的執行許可權就可以了,需要修改的配置資訊如下:
- default_user_name=ixdba
- authorized_for_system_information=nagiosadmin,ixdba
- authorized_for_configuration_information=nagiosadmin,ixdba
- authorized_for_system_commands=ixdba
- authorized_for_all_services=nagiosadmin,ixdba
- authorized_for_all_hosts=nagiosadmin,ixdba
- authorized_for_all_service_commands=nagiosadmin,ixdba
- authorized_for_all_host_commands=nagiosadmin,ixdba
(10) nagios.cfg檔案
Nagios.cfg預設的路徑為/usr/local/nagios/etc/nagios.cfg,是nagios的核心配置檔案,所有的物件配置檔案都必須在這個檔案中進行定義才能發揮其作用,這裡只需將物件配置檔案在Nagios.cfg檔案中進行引用即可。
- log_file=/usr/local/nagios/var/nagios.log
- “log_file”變數用來定義nagios日誌檔案的路徑。
- cfg_file=/usr/local/nagios/etc/hosts.cfg
- cfg_file=/usr/local/nagios/etc/services.cfg
- cfg_file=/usr/local/nagios/etc/commands.cfg
- cfg_file=/usr/local/nagios/etc/contacts.cfg
- cfg_file=/usr/local/nagios/etc/timeperiods.cfg
- cfg_file=/usr/local/nagios/etc/templates.cfg
- “cfg_file”變數用來引用物件配置檔案,如果有更多的物件配置檔案,在這裡依次新增即可。
- object_cache_file=/usr/local/nagios/var/objects.cache
- 該變數用於指定一個“所有物件配置檔案”的副本檔案,或者叫物件緩衝檔案
- resource_file=/usr/local/nagios/etc/resource.cfg
- 該變數用於指定nagios資原始檔的路徑,可以在Nagios.cfg中定義多個資原始檔。
-
- status_file=/usr/local/nagios/var/status.dat
- 該變數用於定義一個狀態檔案,此檔案用於儲存nagios的當前狀態、註釋和當機資訊等。
-
- status_update_interval=10
- 該變數用於定義狀態檔案(即status.dat)的更新時間間隔,單位是秒,最小更新間隔是1秒。
-
- nagios_user=nagios
- 該變數指定了Nagios程式使用哪個使用者執行。
- nagios_group=nagios
- 該變數用於指定Nagios使用哪個使用者組執行。
-
- check_external_commands=1
- 該變數用於設定是否允許nagios在web監控介面執行cgi命令,也就是是否允許nagios在web介面下執行重啟nagios、停止主機/服務檢查等操作。“1”為執行,“0”為不允許。
-
- command_check_interval=2
- 該變數用於設定nagios對外部命令檢測的時間間隔,如果指定了一個數字加一個"s"(如10s),那麼外部檢測命令的間隔是這個數值以秒為單位的時間間隔。如果沒有用"s",那麼外部檢測命令的間隔是以這個數值的“時間單位”的時間間隔。
-
- interval_length=60
- 該變數指定了nagios的時間單位,預設值是60秒,也就是1分鐘,即在nagios配置中所有的時間單位都是分鐘。
==================================================================================================================================================================================
主配置檔案 nagios.cfg 需要更改的地方:
#cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
interval_length=1 ; 間隔時間基準由 60s 改為 1s
command_check_interval=10s ; 命令檢查時間間隔,-1 表示儘可能頻繁的進行檢查
date_format=iso8601 ; 日期格式
objects/contacts.cfg 用來定義聯絡人:
define contact {
contact_name sa
alias System Administrator
service_notification_period 24×7
host_notification_period 24×7
service_notification_options w,u,c,r
host_notification_options d,u,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email admin@test.com
}
定義聯絡人組
define contactgroup {
contactgroup_name admins
alias Administrator Group
members sa ; 新增其它聯絡人用 “,” 分隔
}
主機監控的配置
define host {
host_name host_name ; 簡短的主機名稱。
alias alias ; 別名,可以更詳細的說明主機。
address address ; IP 地址,也可以寫主機名。如果不定義這個值, nagio 將會用 host_name 去尋找主機。
parents host_names ; 上一節點的名稱,也就是指從 nagios 伺服器到被監控主機之間經過的節點,可以是路由器、交換機、主機等等。
hostgroups hostgroup_names ; 簡短的主機組名稱。
check_command command_name ; 檢查命令的簡短名稱,如果此項留空, nagios 將不會去判斷主機是否 alive 。
max_check_attempts 整數 ; 當檢查命令的返回值不是 “OK” 時,重試的次數。
check_interval 數字 ; 迴圈檢查的間隔時間。
active_checks_enabled [0/1] ; 是否啟用 “active_checks”
passive_checks_enabled [0/1] ; 是否啟用 “passive_checks” ,及“被動檢查”
check_period timeperiod_name ; 檢測時間段簡短名稱,這只是個名稱,具體的時間段要寫在其他的配置檔案中。
obsess_over_host [0/1] ; 是否啟用主機作業系統探測。
check_freshness [0/1] ; 是否啟用 freshness 檢查。freshness 檢查是對於啟用被動檢查模式的主機而言的,其作用是定期檢查主機報告的狀態資訊,如果該狀態資訊已經過期,freshness 將會強制做主機檢查。
freshness_threshold 數字 ; fressness 的臨界值,單位為秒。 如果定義為 “0″ ,則為自動定義。
event_handler command_name ; 當主機發生狀態改變時,採用的處理命令的簡短的名字(可以在 commands.cfg 中對其定義)
event_handler_enabled [0/1] ; 是否啟用 event_handler
low_flap_threshold 數字 ; 抖動的下限值。抖動,即在一段時間內,主機(或服務)的狀態值頻繁的發生變化。
high_flap_threshold 數字 ; 抖動的上限值。
flap_detection_enabled [0/1] ; 是否啟用抖動檢查。
process_perf_data [0/1] ; 是否啟用 processing of performance data
retain_status_information [0/1] ; 程式重啟時,是否保持主機狀態相關的資訊。
retain_nonstatus_information [0/1] ; 程式重啟時,是否保持主機狀態無關的資訊。
contact_groups contact_groups ; 聯絡人組,在此組中的聯絡人都會收到主機的提醒資訊。
notification_interval 整數 ; 重複傳送提醒資訊的最短間隔時間。預設間隔時間是 “60″ 分鐘。如果這個值設定為 “0″ ,將不會傳送重複提醒。
notification_period timeperiod_name ; 傳送提醒的時間段。非常重要的主機(服務)定義為 24×7 ,一般的主機(服務)就定義為上班時間。如果不在定義的時間段內,無論發生什麼問題,都不會傳送提醒。
notification_options [d,u,r,f] ; 傳送提醒包括的情況: d = 狀態為 DOWN , u = 狀態為 UNREACHABLE , r = 狀態恢復為 OK , f = flapping
notifications_enabled [0/1] ; 是否開啟提醒功能。”1″ 為開啟,”0″ 為禁用。一般,這個選項會在主配置檔案 (nagios.cfg) 中定義,效果相同。
stalking_options [o,d,u] ; 持續狀態檢測引數,o = 持續的 UP 狀態 , d = 持續的 DOWN 狀態 , u = 持續的 UNREACHABLE 狀態
}
服務監控的配置
define service {
host_name host_name
service_description service_description
servicegroups servicegroup_names
is_volatile [0/1]
check_command command_name
max_check_attempts
normal_check_interval
retry_check_interval
active_checks_enabled [0/1]
passive_checks_enabled [0/1]
check_period timeperiod_name
parallelize_check [0/1]
obsess_over_service [0/1]
check_freshness [0/1]
freshness_threshold
event_handler command_name
event_handler_enabled [0/1]
low_flap_threshold
high_flap_threshold
flap_detection_enabled [0/1]
process_perf_data [0/1]
retain_status_information [0/1]
retain_nonstatus_information [0/1]
notification_interval
notification_period timeperiod_name n
otification_options [w,u,c,r,f]
notifications_enabled [0/1]
contact_groups contact_groups
stalking_options [o,w,u,c]
}
服務監控的配置和主機監控的配置較為相似,就不一一說明了。
間隔時間的計算方法為:
normal_check_interval x interval_length 秒
retry_check_interval x interval_length 秒
notification_interval x interval_length 秒
主機監控配置的例子
define host {
host_name web1
alias web1
address 192.168.0.101
contact_groups admins
check_command check-host-alive
max_check_attempts 5
notification_interval 0
notification_period 24×7
notification_options d,u,r
}
對主機 web1 進行 24×7 的監控,預設會每 10 秒檢查一次狀態,累計五次失敗就傳送提醒,並且不再重複傳送提醒。
服務監控配置的例子
define service {
host_name web1
service_description check_http
check_period 24×7
max_check_attempts 3
normal_check_interval 30
contact_groups admins
retry_check_interval 15
notification_interval 3600
notification_period 24×7
notification_options w,u,c,r
check_command check_http
}
配置解釋: 24×7 監控 web1 主機上的 HTTP 服務,檢查間隔為 30 秒, 檢查失敗後每 15 秒再進行一次檢查,累計三次失敗就認定是故障併傳送提醒。
聯絡人組是 admins 。提醒後恢復到 30 秒一次的 normal_check_interval 檢查。如果服務仍然沒有被恢復,每個小時傳送一次提醒。
如果要檢測其他服務,例如,要檢查 ssh 服務是否開啟,更改如下兩行:
service_description check_ssh
check_command check_ssh
為方便管理,對配置檔案的分佈做了如下修改:
nagios.cfg 中增加了:
cfg_dir=/usr/local/nagios/etc/hosts
cfg_dir=/usr/local/nagios/etc/services
在 hosts 目錄中,為不同型別的主機建立了配置檔案,如: app.cfg cache.cfg MySQL.cfg
web.cfg
並建立了 hostgroup.cfg 檔案對主機進行分組,如:
define hostgroup {
hostgroup_name app-hosts
alias APP Hosts
members app1,app2
}
在 services 目錄中建立了各種服務的配置檔案,如: disk.cfg http.cfg load.cfg mysql.cfg
並建立了 servicegroup.cfg 檔案對服務進行分組,如:
define servicegroup {
servicegroup_name disk
alias DISK
members cache1,check_disk,cache2,check_disk
}
相關文章
- Nagios配置檔案詳解iOS
- Windows下Jekyll配置過程詳解Windows
- [轉]:xmake編譯配置過程詳解編譯
- 【sharpedge 】.NET配置檔案解析過程詳解
- MapReduce過程詳解
- Nagios伺服器端配置檔案詳解(2)iOS伺服器
- 詳解MeterSphere 配置外部Mysql5.7的全過程MySql
- Nagios監控MySQL報錯:NRPE: Unable to read output的詳細解決過程iOSMySql
- nginx配置https詳細過程NginxHTTP
- Linux 上配置 syslog 伺服器過程詳解Linux伺服器
- PHP 協程實現過程詳解PHP
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- SSL/TLS 握手過程詳解TLS
- RabbitMQ安裝過程詳解MQ
- 轉:DNS解析過程詳解DNS
- mongo 儲存過程詳解Go儲存過程
- 【elasticsearch】搜尋過程詳解Elasticsearch
- mysql儲存過程詳解MySql儲存過程
- 儲存過程的詳解儲存過程
- oracle建庫過程詳解Oracle
- Redis複製過程詳解Redis
- Nginx實現叢集的負載均衡配置過程詳解Nginx負載
- Centos 7安裝與配置nagios監控詳細圖解(二)CentOSiOS圖解
- Centos 7安裝與配置nagios監控詳細圖解(一)CentOSiOS圖解
- Webpack安裝配置及打包詳細過程Web
- Hive SQL 編譯過程詳解HiveSQL編譯
- Linux啟動過程詳解Linux
- LumaQQ安裝過程詳解(轉)
- MySQL儲存過程詳解 mysql 儲存過程linkMySql儲存過程
- Mybatis詳解(二) sqlsession的建立過程MyBatisSQLSession
- 【Node】詳解模組的實現過程
- SpringIOC初始化過程--詳解Spring
- Ceph pg unfound處理過程詳解
- 三-類的載入過程詳解
- 詳解Linux 程式編譯過程Linux編譯
- 「過程詳解」async await綜合題AI
- Nginx支援Socket轉發過程詳解Nginx
- SQL語句執行過程詳解SQL