详细介绍nagios基本配置
生活随笔
收集整理的這篇文章主要介紹了
详细介绍nagios基本配置
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
配置文件路徑/usr/local/nagios/etc/objects
類型名 ? ? ? ? ? ? ? ?包含文件 ? ? ? ? ? ? 作用
基類配置文件 ? ?templates.cfg ? ? ? 定義基類
時間配置文件 ? ?timeperiods.cfg ? ?定義控制時間
聯系人文件 ? ? contacts.cfg ? 定義聯系人信息和聯系人組
監控文件 ? ? ?localhost.cfg ? ?定義監控主機和監控的服務,主要是linux系統的主機
命令定義文件 ? commands.cfg ?定義插件參數和如何發送短信、郵件等
1、時間定義段
在時間定義段里,可以自己定義好幾個指定的時間段并給與命名。Nagios應該在什么時間內做什么工作,對于Nagios自己來說并不是直接引用時間參數,而是引用用戶自己定義的時間段的命名,Nagios只會參考和引用用戶定義過的時間段名。?
define timeperiod{
使用define定義關鍵字timepriod表示該定義段內定義的是時間段。段內的定義請使用兩個大括號來包括。段內的定義項一行一項,時間格式請按照以下。另外,如果要定義多個時間段的話,那么必須要寫多個define timeperiod {} 段。?
? ? ? ? timeperiod_name all_days
通過timeperiod_name來指定時間段名。這里我定義了一個時間段名為all_days“全天”,然后時間設定從周一到周日全天24小時。?
? ? ? ? alias ? ? ? ? ? 24 Hours A Day, 7 Days A Week
通過alias來指定時間段的說明信息。?
? ? ? ? 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
以上為時間格式。前面是星期名,后面是24小時制的時間格式。
? ? ? ? }?
# 'workhours' timeperiod definition
這個是Nagios默認定義的一個時間段,名字叫做workhours“工作時段”,定義的時間也是周一到周五的早上9點到晚上的17點。多樣化的時間段可以豐富Nagios功能配置的靈活性。當Nagios在進行只在工作時間才有必要進行的操作而休息時間沒有這種必要的時候,就可以使用該時間段進行配置參與。?
define timeperiod{
?timeperiod_name workhours
?alias ?"Normal" Working 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
?}?
# 'nonworkhours' timeperiod definition
這個也是Nagios默認定義的一個時間段,名字叫做nonworkhours“非工作時段”,定義的時間為周一到周五的晚上17到早上9點以及雙休日全天。當Nagios在進行只有在休息時間才進行的操作而在工作時間內不進行的情況下,就可以使用該時間段進行配置參與。?
define timeperiod{
?timeperiod_name nonworkhours
?alias ?Non-Work Hours
?sunday ?00:00-24:00
?monday ?00:00-09:00,17:00-24:00
?tuesday ?00:00-09:00,17:00-24:00
?wednesday 00:00-09:00,17:00-24:00
?thursday 00:00-09:00,17:00-24:00
?friday ?00:00-09:00,17:00-24:00
?saturday 00:00-24:00
?}?
# 'none' timeperiod definition
這個是Nagios默認的最后一個時間段,名字叫做none“無時間”,也沒有定義的時間段。還不是很清楚這個時間段會用在什么情況呢,也許一些永遠都不希望Nagios執行的操作會用此時間段參與配置吧?哈。?
define timeperiod{
?timeperiod_name none
?alias ?No Time Is A Good Time
?}
2.聯系人定義段
在Nagios的諸多工作中都會涉及到聯系人。當發生監測超出閥值,或者產程告警等情況時,Nagios都會以Email甚至更多方式來告知指定的聯系人。聯系人應該是系統當中存在的用戶或者是Email的別名用戶,以便于接收到重要的消息通知。?
define contact{
使用define定義關鍵字contact表示該定義段內定義的是聯系人段。段內的定義請使用兩個大括號來包括。段內的定義項一行一項。另外,如果要定義多個聯系人段的話,那么必須要寫多個define contact {} 段。?
? ? ? ? contact_name ? ? ? ? ? ? ? ? ? ?nagios-admin
通過contact_name來指定聯系人名,這個名應該是系統內用戶名或者是Email用戶別名(推薦后者)。同時,這個聯系人名也將會是Nagios認可的注冊聯系人名。(這里我偷懶,在系統中直接useradd添加了nagios-admin這個用戶)?
? ? ? ? alias ? ? ? ? ? ? ? ? ? ? ? ? ? Nagios Admin
通過alias來指定該聯系人的說明信息。?
? ? ? ? service_notification_period ? ? all_days
設定服務事件通知時間段,后面指定時間段名。請注意,這里后面跟的參數為定義過的timeperiods的時間段名。?
? ? ? ? host_notification_period ? ? ? ?all_days
設定主機事件通知時間段,后面指定時間段名。請注意,這里后面跟的參數為定義過的timeperiods的時間段名。?
? ? ? ? service_notification_options ? ?w,u,c,r
設定觸發服務事件通知的選項,這里后面跟上一些級別類型參數:
w代表warning告警;
u代表unknown未知;
c代表critical嚴重;
r代表recover恢復;
d代表down奔潰。?
? ? ? ? host_notification_options ? ? ? d,r
設定觸發主機事件通知的選項,后面也跟上級別類型參數。?
? ? ? ? service_notification_commands ? notify-by-email
設定服務事件通知的命令,該命令的具體內容在command.cfg里定義。?
? ? ? ? host_notification_commands ? ? ?host-notify-by-email
設定主機時間通知的命令,該命令的具體內容在command.cfg里定義。?
? ? ? ? email ? ? ? ? ? ? ? ? ? ? ? ? ? nagios-admin@localhost
設定通知郵件的聯系人的Email地址。
? ? ? ? }
?
聯系人組就是將若干聯系人聚合起來的組。?
define contactgroup{
使用define定義關鍵字contactgroup表示該定義段內定義的是聯系人組段。段內的定義請使用兩個大括號來包括。段內的定義項一行一項。另外,如果要定義多個聯系人組段的話,那么必須要寫多個define contactgroup {} 段。?
? ? ? ? contactgroup_name ? ? ? admins
通過contactgroup_name來指定聯系人組名。?
? ? ? ? alias ? ? ? ? ? ? ? ? ? Nagios Administrators
通過alias來指定該聯系人組名的簡要信息。?
? ? ? ? members ? ? ? ? ? ? ? ? nagios-admin
通過members來指定組成員,組成員必須是contect里定義過的聯系人。
? ? ? ? }
?
3.主機定義段
主機定義段定義了Nagios監測的主機對象,Nagios只監測的在主機定義段里定義過的主機名。主機定義段里面有個一個十分有趣的地方,就是他能夠定義主機類,在主機類當中定義一些公共屬性,然后定義個別主機的時候并不需要把每個屬性都一一定義出來,而只需要引用和繼承之前的主機類,就能夠繼承主機類當中的公共屬性,有趣的是類還能繼承類。事先多定義幾個不同的類,在大規模部署監測主機的時候效率將特別高。?
## Generic host definition template - This is NOT a real host, just a template!
默認Nagios就定義了通用主機的大類generic-host。在這個類中定義了無論什么系統和條件的所有主機都會共有的一些屬性。?
define host{
使用define定義關鍵字host表示該定義段內定義的是主機段,也可以是主機類。段內的定義請使用兩個大括號來包括。段內的定義項一行一項。另外,如果要定義多個主機段的話,那么必須要寫多個define host {} 段。?
? ? ? ? name ? ? ? ? ? ? ? ? ? ? ? ? ? ?generic-host ? ?; The name of this host template
通過name來指定主機類名,這里的generic-host就是一個主機類名。?
? ? ? ? notifications_enabled ? ? ? ? ? 1 ? ? ? ?; Host notifications are enabled
設定啟用主機事件通知?
? ? ? ? event_handler_enabled ? ? ? ? ? 1 ? ? ? ?; Host event handler is enabled
設定啟用主機事件處理程序?
? ? ? ? flap_detection_enabled ? ? ? ? ?1 ? ? ? ?; Flap detection is enabled
設定啟用狀態抖動監測。?
? ? ? ? failure_prediction_enabled ? ? ?1 ? ? ? ?; Failure prediction is enabled
設定啟用故障預測?
? ? ? ? process_perf_data ? ? ? ? ? ? ? 1 ? ? ? ?; Process performance data
設定啟用進程性能數據記錄?
? ? ? ? retain_status_information ? ? ? 1 ? ? ? ?; Retain status information across program restarts
設定啟用狀態信息保存功能。當Nagios重新啟動的時候不會是空數據,而是先顯示上次離線時最后保留的狀態數據。?
? ? ? ? retain_nonstatus_information ? ?1 ? ? ? ?; Retain non-status information across program restarts
設定啟用非狀態信息保存功能。當Nagios重新啟動的時候不會是空數據,而是先顯示上次離線時最后保留的非狀態數據。?
?notification_period ?all_days ? ?; Send host notifications at any time
設定事件通知的工作時間段。后面要跟上定義過的時間段名,這里用全天時間段。?
? ? ? ? register ? ? 0 ? ? ? ?; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
設定非注冊。此項register為0值的時候Nagios會理解到該定義段是主機類而為實體主機的定義段。因此,在自定義主機類段的時候,記得也要加入這一個屬性,用來向Nagios表明該段為主機類段。
? ? ? ? }
?
以下再建立一個Linux主機類段linux-server。這個類同時也繼承了之前的通用主機類generic-host類,也就是說類也可以繼承類。這樣的關系和設定將使得主機設定進一步靈活。?
define host{
?name ? ?linux-server ? ? ? ? ?; The name of this host template
?use ? ? ?generic-host ? ? ? ? ; This template inherits other values from the generic-host template
通過use來指定要繼承的主機類名。類也可以繼承類。?
?check_period ? all_days ? ? ? ? ? ? ? ? ? ? ? ?; By default, Linux hosts are checked round the clock
?max_check_attempts ?10 ? ? ? ? ? ? ? ? ? ? ; Check each Linux host 10 times (max)
設定監測失敗后的最大嘗試次數。?
? check_command ? ? ?check-host-alive ? ; Default command to check Linux hosts
設定監測主機存活的命令。
?notification_period ?workhours ? ; Linux admins hate to be woken up, so we only notify during the day
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ; Note that the notification_period variable is being overridden from
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ; the value that is inherited from the generic-host template!
?notification_interval ?15 ? ? ? ? ? ?; Resend notification every 15 seconds.
設定監測主機的時間間隔,單位為秒?
?notification_options ?d,u,r ? ? ? ? ; Only send notifications for specific host states
設定監測指定主機產生的事件通知的條件選項。這里后面跟上一些級別類型參數:
w代表warning告警;
u代表unknown未知;
c代表critical嚴重;
r代表recover恢復;
d代表down奔潰。?
?contact_groups ? admins ? ; Notifications get sent to the admins by default
指定聯系人組,這里的聯系人組名必須是定義過的。?
?register ? 0 ? ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
設定register表明本段定義的是一個主機類,而不是實體主機。
?}
?注:nagios默認還有其幾個主機類,如windows-server
以下為實體主機的定義了,它的配置文件在/usr/local/nagios/etc/objects/localhost.cfg。首先必須要有localhost本地主機的定義段,否則很多基本功能都會有問題。?
define host{
? ? ? ? use ? ? ? ? ? ? ? ? ? ? linux-server ? ? ? ? ? ?
通過use來繼承linux-server這個之前專為Linux主機定義的類。?
? ? ? ? host_name ? ? ? ? ? localhost
通過host_name來指定主機名,這里是localhost。另外必須要知道的是,這里定義的主機名,和真正監測對象的主機的主機名并不一定要完全對的上,這里定義的主機名只是一個在Naigos系統中注冊的、定義的、Nagios能夠識別的主機標示而已。?
? ? ? ? alias ? ? ? ? ? ? ? ? ? ?localhost
通過alias寫上一些對該主機的描述。?
? ? ? ? address ? ? ? ? ? ? ? ? 127.0.0.1
通過address來指定該主機的IP地址。Nagios對監測對象的主要根據是這個IP地址。
? ? ? ? }
4.服務定義段
默認Nagios已經定義了一個通用服務大類generic-service,這個類當中定義的屬性是無論什么服務都必須的屬性。?
define service{
使用define定義關鍵字service表示該定義段內定義的是服務段,也可以是服務類。段內的定義請使用兩個大括號來包括。段內的定義項一行一項。另外,如果要定義多個服務段的話,那么必須要寫多個define service {} 段。?
? ? ? ? name ? ? ? ? ? ? ? ? ? ? ? ? ? ?generic-service ?; The 'name' of this service template
通過name來指定服務類名,這里的generice-service是一個類名。?
? ? ? ? active_checks_enabled ? ? ? ? ? 1 ? ? ? ? ; Active service checks are enabled
設定啟用活動監測服務。?
? ? ? ? passive_checks_enabled ? ? ? ? ?1 ? ? ? ? ?; Passive service checks are enabled/accepted
設定啟用被動監測服務。?
? ? ? ? parallelize_check ? ? ? ? ? ? ? 1 ? ? ? ? ; Active service checks should be parallelized (disabling this can lead to major performance problems)
設定啟用并發活動監測服務。?
? ? ? ? obsess_over_service ? ? ? ? ? ? 1 ? ? ? ? ; We should obsess over this service (if necessary)
設定啟用服務防停滯。?
? ? ? ? check_freshness ? ? ? ? ? ? ? ? 0 ? ? ? ? ; Default is to NOT check service 'freshness'
設定關閉更新監測。?
? ? ? ? notifications_enabled ? ? ? ? ? 1 ? ? ? ? ; Service notifications are enabled
設定啟用事件通知。?
? ? ? ? event_handler_enabled ? ? ? ? ? 1 ? ? ? ? ; Service event handler is enabled
設定啟用事件處理程序。?
? ? ? ? flap_detection_enabled ? ? ? ? ?1 ? ? ? ? ; Flap detection is enabled
設定啟用狀態抖動監測。?
? ? ? ? failure_prediction_enabled ? ? ?1 ? ? ? ? ; Failure prediction is enabled
設定啟用故障預測。?
? ? ? ? process_perf_data ? ? ? ? ? ? ? 1 ? ? ? ? ; Process performance data
設定啟用進程性能數據記錄。?
? ? ? ? retain_status_information ? ? ? 1 ? ? ? ? ; Retain status information across program restarts
設定啟用狀態信息保存功能。當Nagios重新啟動的時候不會是空數據,而是先顯示上次離線時最后保留的狀態數據。?
? ? ? ? retain_nonstatus_information ? ?1 ? ? ? ? ; Retain non-status information across program restarts
設定啟用非狀態信息保存功能。當Nagios重新啟動的時候不會是空數據,而是先顯示上次離線時最后保留的非狀態數據。?
? ? ? ? is_volatile ? ? ? ? ? ? ? ? ? ? 0 ? ? ? ? ; The service is not volatile
設定服務非易失。?
? ? ? ? register ? ? ? ? ? ? ? ? ? ? ? ?0 ? ? ? ? ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
設定非注冊。此項register為0值的時候Nagios會理解到該定義段是主機類而為實體主機的定義段。因此,在自定義主機類段的時候,記得也要加入這一個屬性,用來向Nagios表明該段為主機類段。
? ? ? ? }
efine service{
? ? ? ? name ? ?local-service ? ? ; The name of this service template
? ? ? ? use ? ?generic-service ? ?; Inherit default values from the generic-service definition
通過use來繼承generic-service這個類。類也是能夠繼承類的。?
? ? ? ? check_period ? ? ? ? ? ? ?all_days ? ? ? ? ; The service can be checked at any time of the day
? ? ? ? max_check_attempts ? ? ? ? ? 2 ? ; Re-check the service up to 4 times in order to determine its final (hard) state
設定監測失敗后最嘗試次數。?
? ? ? ? normal_check_interval ? ? ? ? ?5 ? ; Check the service every 5 minutes under normal conditions
設定正常監測服務的間隔,單位秒。?
? ? ? ? retry_check_interval ? ? ? ? ? ?1 ? ; Re-check the service every minute until a hard state can be determined
設定監測失敗后嘗試的間隔,單位秒。?
? ? ? ? contact_groups ? ? ? ? ? ?admins ? ; Notifications get sent out to everyone in the 'admins' group
設定聯系組。?
?notification_options ? ? ? ? w,u,c,r ? ; Send notifications about warning, unknown, critical, and recovery events
設定監測指定服務產生的事件通知的條件選項。這里后面跟上一些級別類型參數:
w代表warning告警;
u代表unknown未知;
c代表critical嚴重;
r代表recover恢復;
d代表down奔潰。?
? ? ? ? notification_interval ? ? ? ? ? 15 ? ; Re-notify about service problems every hour
設定服務通知的間隔。?
? ? ? ? notification_period ? ? ? ?all_days ? ; Notifications can be sent out at any time
設定服務通知運行時間。?
? ? ? ? register ? ? ? ? ? ? ? ? ? ? ? ?0 ? ? ? ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
設定register表明本段定義的是一個服務類,而不是具體的服務。
?}
類型名 ? ? ? ? ? ? ? ?包含文件 ? ? ? ? ? ? 作用
基類配置文件 ? ?templates.cfg ? ? ? 定義基類
時間配置文件 ? ?timeperiods.cfg ? ?定義控制時間
聯系人文件 ? ? contacts.cfg ? 定義聯系人信息和聯系人組
監控文件 ? ? ?localhost.cfg ? ?定義監控主機和監控的服務,主要是linux系統的主機
命令定義文件 ? commands.cfg ?定義插件參數和如何發送短信、郵件等
1、時間定義段
在時間定義段里,可以自己定義好幾個指定的時間段并給與命名。Nagios應該在什么時間內做什么工作,對于Nagios自己來說并不是直接引用時間參數,而是引用用戶自己定義的時間段的命名,Nagios只會參考和引用用戶定義過的時間段名。?
define timeperiod{
使用define定義關鍵字timepriod表示該定義段內定義的是時間段。段內的定義請使用兩個大括號來包括。段內的定義項一行一項,時間格式請按照以下。另外,如果要定義多個時間段的話,那么必須要寫多個define timeperiod {} 段。?
? ? ? ? timeperiod_name all_days
通過timeperiod_name來指定時間段名。這里我定義了一個時間段名為all_days“全天”,然后時間設定從周一到周日全天24小時。?
? ? ? ? alias ? ? ? ? ? 24 Hours A Day, 7 Days A Week
通過alias來指定時間段的說明信息。?
? ? ? ? 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
以上為時間格式。前面是星期名,后面是24小時制的時間格式。
? ? ? ? }?
# 'workhours' timeperiod definition
這個是Nagios默認定義的一個時間段,名字叫做workhours“工作時段”,定義的時間也是周一到周五的早上9點到晚上的17點。多樣化的時間段可以豐富Nagios功能配置的靈活性。當Nagios在進行只在工作時間才有必要進行的操作而休息時間沒有這種必要的時候,就可以使用該時間段進行配置參與。?
define timeperiod{
?timeperiod_name workhours
?alias ?"Normal" Working 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
?}?
# 'nonworkhours' timeperiod definition
這個也是Nagios默認定義的一個時間段,名字叫做nonworkhours“非工作時段”,定義的時間為周一到周五的晚上17到早上9點以及雙休日全天。當Nagios在進行只有在休息時間才進行的操作而在工作時間內不進行的情況下,就可以使用該時間段進行配置參與。?
define timeperiod{
?timeperiod_name nonworkhours
?alias ?Non-Work Hours
?sunday ?00:00-24:00
?monday ?00:00-09:00,17:00-24:00
?tuesday ?00:00-09:00,17:00-24:00
?wednesday 00:00-09:00,17:00-24:00
?thursday 00:00-09:00,17:00-24:00
?friday ?00:00-09:00,17:00-24:00
?saturday 00:00-24:00
?}?
# 'none' timeperiod definition
這個是Nagios默認的最后一個時間段,名字叫做none“無時間”,也沒有定義的時間段。還不是很清楚這個時間段會用在什么情況呢,也許一些永遠都不希望Nagios執行的操作會用此時間段參與配置吧?哈。?
define timeperiod{
?timeperiod_name none
?alias ?No Time Is A Good Time
?}
2.聯系人定義段
在Nagios的諸多工作中都會涉及到聯系人。當發生監測超出閥值,或者產程告警等情況時,Nagios都會以Email甚至更多方式來告知指定的聯系人。聯系人應該是系統當中存在的用戶或者是Email的別名用戶,以便于接收到重要的消息通知。?
define contact{
使用define定義關鍵字contact表示該定義段內定義的是聯系人段。段內的定義請使用兩個大括號來包括。段內的定義項一行一項。另外,如果要定義多個聯系人段的話,那么必須要寫多個define contact {} 段。?
? ? ? ? contact_name ? ? ? ? ? ? ? ? ? ?nagios-admin
通過contact_name來指定聯系人名,這個名應該是系統內用戶名或者是Email用戶別名(推薦后者)。同時,這個聯系人名也將會是Nagios認可的注冊聯系人名。(這里我偷懶,在系統中直接useradd添加了nagios-admin這個用戶)?
? ? ? ? alias ? ? ? ? ? ? ? ? ? ? ? ? ? Nagios Admin
通過alias來指定該聯系人的說明信息。?
? ? ? ? service_notification_period ? ? all_days
設定服務事件通知時間段,后面指定時間段名。請注意,這里后面跟的參數為定義過的timeperiods的時間段名。?
? ? ? ? host_notification_period ? ? ? ?all_days
設定主機事件通知時間段,后面指定時間段名。請注意,這里后面跟的參數為定義過的timeperiods的時間段名。?
? ? ? ? service_notification_options ? ?w,u,c,r
設定觸發服務事件通知的選項,這里后面跟上一些級別類型參數:
w代表warning告警;
u代表unknown未知;
c代表critical嚴重;
r代表recover恢復;
d代表down奔潰。?
? ? ? ? host_notification_options ? ? ? d,r
設定觸發主機事件通知的選項,后面也跟上級別類型參數。?
? ? ? ? service_notification_commands ? notify-by-email
設定服務事件通知的命令,該命令的具體內容在command.cfg里定義。?
? ? ? ? host_notification_commands ? ? ?host-notify-by-email
設定主機時間通知的命令,該命令的具體內容在command.cfg里定義。?
? ? ? ? email ? ? ? ? ? ? ? ? ? ? ? ? ? nagios-admin@localhost
設定通知郵件的聯系人的Email地址。
? ? ? ? }
?
聯系人組就是將若干聯系人聚合起來的組。?
define contactgroup{
使用define定義關鍵字contactgroup表示該定義段內定義的是聯系人組段。段內的定義請使用兩個大括號來包括。段內的定義項一行一項。另外,如果要定義多個聯系人組段的話,那么必須要寫多個define contactgroup {} 段。?
? ? ? ? contactgroup_name ? ? ? admins
通過contactgroup_name來指定聯系人組名。?
? ? ? ? alias ? ? ? ? ? ? ? ? ? Nagios Administrators
通過alias來指定該聯系人組名的簡要信息。?
? ? ? ? members ? ? ? ? ? ? ? ? nagios-admin
通過members來指定組成員,組成員必須是contect里定義過的聯系人。
? ? ? ? }
?
3.主機定義段
主機定義段定義了Nagios監測的主機對象,Nagios只監測的在主機定義段里定義過的主機名。主機定義段里面有個一個十分有趣的地方,就是他能夠定義主機類,在主機類當中定義一些公共屬性,然后定義個別主機的時候并不需要把每個屬性都一一定義出來,而只需要引用和繼承之前的主機類,就能夠繼承主機類當中的公共屬性,有趣的是類還能繼承類。事先多定義幾個不同的類,在大規模部署監測主機的時候效率將特別高。?
## Generic host definition template - This is NOT a real host, just a template!
默認Nagios就定義了通用主機的大類generic-host。在這個類中定義了無論什么系統和條件的所有主機都會共有的一些屬性。?
define host{
使用define定義關鍵字host表示該定義段內定義的是主機段,也可以是主機類。段內的定義請使用兩個大括號來包括。段內的定義項一行一項。另外,如果要定義多個主機段的話,那么必須要寫多個define host {} 段。?
? ? ? ? name ? ? ? ? ? ? ? ? ? ? ? ? ? ?generic-host ? ?; The name of this host template
通過name來指定主機類名,這里的generic-host就是一個主機類名。?
? ? ? ? notifications_enabled ? ? ? ? ? 1 ? ? ? ?; Host notifications are enabled
設定啟用主機事件通知?
? ? ? ? event_handler_enabled ? ? ? ? ? 1 ? ? ? ?; Host event handler is enabled
設定啟用主機事件處理程序?
? ? ? ? flap_detection_enabled ? ? ? ? ?1 ? ? ? ?; Flap detection is enabled
設定啟用狀態抖動監測。?
? ? ? ? failure_prediction_enabled ? ? ?1 ? ? ? ?; Failure prediction is enabled
設定啟用故障預測?
? ? ? ? process_perf_data ? ? ? ? ? ? ? 1 ? ? ? ?; Process performance data
設定啟用進程性能數據記錄?
? ? ? ? retain_status_information ? ? ? 1 ? ? ? ?; Retain status information across program restarts
設定啟用狀態信息保存功能。當Nagios重新啟動的時候不會是空數據,而是先顯示上次離線時最后保留的狀態數據。?
? ? ? ? retain_nonstatus_information ? ?1 ? ? ? ?; Retain non-status information across program restarts
設定啟用非狀態信息保存功能。當Nagios重新啟動的時候不會是空數據,而是先顯示上次離線時最后保留的非狀態數據。?
?notification_period ?all_days ? ?; Send host notifications at any time
設定事件通知的工作時間段。后面要跟上定義過的時間段名,這里用全天時間段。?
? ? ? ? register ? ? 0 ? ? ? ?; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
設定非注冊。此項register為0值的時候Nagios會理解到該定義段是主機類而為實體主機的定義段。因此,在自定義主機類段的時候,記得也要加入這一個屬性,用來向Nagios表明該段為主機類段。
? ? ? ? }
?
以下再建立一個Linux主機類段linux-server。這個類同時也繼承了之前的通用主機類generic-host類,也就是說類也可以繼承類。這樣的關系和設定將使得主機設定進一步靈活。?
define host{
?name ? ?linux-server ? ? ? ? ?; The name of this host template
?use ? ? ?generic-host ? ? ? ? ; This template inherits other values from the generic-host template
通過use來指定要繼承的主機類名。類也可以繼承類。?
?check_period ? all_days ? ? ? ? ? ? ? ? ? ? ? ?; By default, Linux hosts are checked round the clock
?max_check_attempts ?10 ? ? ? ? ? ? ? ? ? ? ; Check each Linux host 10 times (max)
設定監測失敗后的最大嘗試次數。?
? check_command ? ? ?check-host-alive ? ; Default command to check Linux hosts
設定監測主機存活的命令。
?notification_period ?workhours ? ; Linux admins hate to be woken up, so we only notify during the day
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ; Note that the notification_period variable is being overridden from
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ; the value that is inherited from the generic-host template!
?notification_interval ?15 ? ? ? ? ? ?; Resend notification every 15 seconds.
設定監測主機的時間間隔,單位為秒?
?notification_options ?d,u,r ? ? ? ? ; Only send notifications for specific host states
設定監測指定主機產生的事件通知的條件選項。這里后面跟上一些級別類型參數:
w代表warning告警;
u代表unknown未知;
c代表critical嚴重;
r代表recover恢復;
d代表down奔潰。?
?contact_groups ? admins ? ; Notifications get sent to the admins by default
指定聯系人組,這里的聯系人組名必須是定義過的。?
?register ? 0 ? ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A TEMPLATE!
設定register表明本段定義的是一個主機類,而不是實體主機。
?}
?注:nagios默認還有其幾個主機類,如windows-server
以下為實體主機的定義了,它的配置文件在/usr/local/nagios/etc/objects/localhost.cfg。首先必須要有localhost本地主機的定義段,否則很多基本功能都會有問題。?
define host{
? ? ? ? use ? ? ? ? ? ? ? ? ? ? linux-server ? ? ? ? ? ?
通過use來繼承linux-server這個之前專為Linux主機定義的類。?
? ? ? ? host_name ? ? ? ? ? localhost
通過host_name來指定主機名,這里是localhost。另外必須要知道的是,這里定義的主機名,和真正監測對象的主機的主機名并不一定要完全對的上,這里定義的主機名只是一個在Naigos系統中注冊的、定義的、Nagios能夠識別的主機標示而已。?
? ? ? ? alias ? ? ? ? ? ? ? ? ? ?localhost
通過alias寫上一些對該主機的描述。?
? ? ? ? address ? ? ? ? ? ? ? ? 127.0.0.1
通過address來指定該主機的IP地址。Nagios對監測對象的主要根據是這個IP地址。
? ? ? ? }
4.服務定義段
默認Nagios已經定義了一個通用服務大類generic-service,這個類當中定義的屬性是無論什么服務都必須的屬性。?
define service{
使用define定義關鍵字service表示該定義段內定義的是服務段,也可以是服務類。段內的定義請使用兩個大括號來包括。段內的定義項一行一項。另外,如果要定義多個服務段的話,那么必須要寫多個define service {} 段。?
? ? ? ? name ? ? ? ? ? ? ? ? ? ? ? ? ? ?generic-service ?; The 'name' of this service template
通過name來指定服務類名,這里的generice-service是一個類名。?
? ? ? ? active_checks_enabled ? ? ? ? ? 1 ? ? ? ? ; Active service checks are enabled
設定啟用活動監測服務。?
? ? ? ? passive_checks_enabled ? ? ? ? ?1 ? ? ? ? ?; Passive service checks are enabled/accepted
設定啟用被動監測服務。?
? ? ? ? parallelize_check ? ? ? ? ? ? ? 1 ? ? ? ? ; Active service checks should be parallelized (disabling this can lead to major performance problems)
設定啟用并發活動監測服務。?
? ? ? ? obsess_over_service ? ? ? ? ? ? 1 ? ? ? ? ; We should obsess over this service (if necessary)
設定啟用服務防停滯。?
? ? ? ? check_freshness ? ? ? ? ? ? ? ? 0 ? ? ? ? ; Default is to NOT check service 'freshness'
設定關閉更新監測。?
? ? ? ? notifications_enabled ? ? ? ? ? 1 ? ? ? ? ; Service notifications are enabled
設定啟用事件通知。?
? ? ? ? event_handler_enabled ? ? ? ? ? 1 ? ? ? ? ; Service event handler is enabled
設定啟用事件處理程序。?
? ? ? ? flap_detection_enabled ? ? ? ? ?1 ? ? ? ? ; Flap detection is enabled
設定啟用狀態抖動監測。?
? ? ? ? failure_prediction_enabled ? ? ?1 ? ? ? ? ; Failure prediction is enabled
設定啟用故障預測。?
? ? ? ? process_perf_data ? ? ? ? ? ? ? 1 ? ? ? ? ; Process performance data
設定啟用進程性能數據記錄。?
? ? ? ? retain_status_information ? ? ? 1 ? ? ? ? ; Retain status information across program restarts
設定啟用狀態信息保存功能。當Nagios重新啟動的時候不會是空數據,而是先顯示上次離線時最后保留的狀態數據。?
? ? ? ? retain_nonstatus_information ? ?1 ? ? ? ? ; Retain non-status information across program restarts
設定啟用非狀態信息保存功能。當Nagios重新啟動的時候不會是空數據,而是先顯示上次離線時最后保留的非狀態數據。?
? ? ? ? is_volatile ? ? ? ? ? ? ? ? ? ? 0 ? ? ? ? ; The service is not volatile
設定服務非易失。?
? ? ? ? register ? ? ? ? ? ? ? ? ? ? ? ?0 ? ? ? ? ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
設定非注冊。此項register為0值的時候Nagios會理解到該定義段是主機類而為實體主機的定義段。因此,在自定義主機類段的時候,記得也要加入這一個屬性,用來向Nagios表明該段為主機類段。
? ? ? ? }
efine service{
? ? ? ? name ? ?local-service ? ? ; The name of this service template
? ? ? ? use ? ?generic-service ? ?; Inherit default values from the generic-service definition
通過use來繼承generic-service這個類。類也是能夠繼承類的。?
? ? ? ? check_period ? ? ? ? ? ? ?all_days ? ? ? ? ; The service can be checked at any time of the day
? ? ? ? max_check_attempts ? ? ? ? ? 2 ? ; Re-check the service up to 4 times in order to determine its final (hard) state
設定監測失敗后最嘗試次數。?
? ? ? ? normal_check_interval ? ? ? ? ?5 ? ; Check the service every 5 minutes under normal conditions
設定正常監測服務的間隔,單位秒。?
? ? ? ? retry_check_interval ? ? ? ? ? ?1 ? ; Re-check the service every minute until a hard state can be determined
設定監測失敗后嘗試的間隔,單位秒。?
? ? ? ? contact_groups ? ? ? ? ? ?admins ? ; Notifications get sent out to everyone in the 'admins' group
設定聯系組。?
?notification_options ? ? ? ? w,u,c,r ? ; Send notifications about warning, unknown, critical, and recovery events
設定監測指定服務產生的事件通知的條件選項。這里后面跟上一些級別類型參數:
w代表warning告警;
u代表unknown未知;
c代表critical嚴重;
r代表recover恢復;
d代表down奔潰。?
? ? ? ? notification_interval ? ? ? ? ? 15 ? ; Re-notify about service problems every hour
設定服務通知的間隔。?
? ? ? ? notification_period ? ? ? ?all_days ? ; Notifications can be sent out at any time
設定服務通知運行時間。?
? ? ? ? register ? ? ? ? ? ? ? ? ? ? ? ?0 ? ? ? ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
設定register表明本段定義的是一個服務類,而不是具體的服務。
?}
總結
以上是生活随笔為你收集整理的详细介绍nagios基本配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 遍历Map keySet和entryS
- 下一篇: Log4j简单记录