2. 配置文件
3. 主配置文件nagios.cfg詳解
3.1 Log File
3.2 Object Configuration File
3.3 Object Configuration Directory
3.4 Precached Object File
3.5 Resource File
3.6 Status FIle and Update Interval
3.7 Nagios User and Group
3.8 Temp File and Path
External Command Check Option
Query Socket
Check Workers?
Disable Service Checks When Host Down?
Notificatioins Option?
Log Rotation Method
Log Archive Path
4. 對象配置文件
4.1 對象配置文件概述
1. 概述
2. 配置文件
Nagios配置文件官方說明文檔:https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/toc.html
Nagios配置文件分為四部分:
- Main Configuration File 主配置文件
- Resource File(s) 資源配置文件
- Object Definition Files 對象定義文件
- CGI Configuration File CGI配置文件
Main Configure File
主配置文件包含了一些列用於nagios core daemon工作的指令。該配置文件需要對nagios core daemon和CGI 有可讀權限。
配置文件說明:
1. 行首以#開始的為注釋
2. 變量名必須在行首開始處,並且之前不能擁有空格
3. 變量名區分大小寫
4. 主配置文件中的路徑可能是相對的或絕對的。相對路徑相對於主配置文件的位置。
本系列博客中,Main Configure File位於:/usr/local/globle/softs/monitor/nagios/4.4.1/etc/nagios.cfg
3. 主配置文件nagios.cfg詳解
官方配置文件詳解:https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/configmain.html
nagios.cfg是Nagios監控系統的主要配置文件,是Nagios基本功能的實現。
下面表格中的配置及參數,是本系列博客部署Nagios(版本4.4.1)時的參數,僅供參考。
3.1 Log File
log_file:/usr/local/globle/softs/monitor/nagios/4.4.1/var/nagios.log
nagios運行時的總日志文件。必須是配置文件的第一個選項。默認開啟。
3.2 Object Configuration File
主要有cfg_fileh和cfg_dir兩部分組成
cfg_fie:/usr/local/globle/softs/monitor/nagios/4.4.1/etc/objects/commands.cfg
命令模板配置文件。默認開啟
cfg_file:/usr/local/globle/softs/monitor/nagios/4.4.1/etc/objects/contacts.cfg
聯系人模板配置文件。默認開啟
cfg_file:/usr/local/globle/softs/monitor/nagios/4.4.1/etc/objects/timeperiods.cfg
報警時間模板配置文件。默認開啟
cfg_file:/usr/local/globle/softs/monitor/nagios/4.4.1/etc/objects/templates.cfg
監控模板配置文件。默認開啟
cfg_file:/usr/local/globle/softs/monitor/nagios/4.4.1/etc/objects/localhost.cfg
本機(監控主機)配置文件。默認開啟
cfg_file:/usr/local/globle/softs/monitor/nagios/4.4.1/etc/objects/windows.cfg
windows監控配置。默認關閉
cfg_file:/usr/local/globle/softs/monitor/nagios/4.4.1/etc/objects/switch.cfg
交換機監控配置。默認關閉
cfg_file:/usr/local/globle/softs/monitor/nagios/4.4.1/etc/objects/printer.cfg
打印機監控配置。默認關閉
cfg_dir:/usr/local/globle/softs/monitor/nagios/4.4.1/etc/servers
服務監控目錄。啟用時,位於該目錄下的xxx.cfg文件全部生效,方便用戶自定義配置管理。默認關閉
3.3 Object Configuration Directory
object_cache_file:/usr/local/globle/softs/monitor/nagios/4.4.1/var/objects.cache
對象緩存文件。在Nagios啟動或者重啟時,被CGI讀取使用,避免CGI從配置文件讀取對象配置時,因Nagios對象配置文件修改造成的沖突。
3.4 Precached Object File
precached_object_file:/usr/local/globle/softs/monitor/nagios/4.4.1/var/objects.precache
>此選項確定預緩存對象文件的位置。如果使用-p 命令行選項運行 Nagios, 它將預處理對象配置文件, 並將緩存的配置寫入此文件。 然后, 您可以使用-u 選項啟動 Nagios 以使其讀取此預緩存文件中的對象定義, 而不是標准對象配置文件 (請參見上面的 cfg_file 和 cfg_dir 選項)。使用預緩存對象文件可以加快 (重新) 啟動所需的時間。如果您有一個大的和/或復雜的配置, Nagios 過程。閱讀有關優化 Nagios 的文檔部分, 以找到更有關此功能的工作原理。
3.5 Resource File
resource_file=/usr/local/globle/softs/monitor/nagios/4.4.1/etc/resource.cfg
這是一個可選的資源文件,包含了USERx的宏定義。通過配置多個resource_file可以設置多個資源文件。
CGI不會讀取資源文件,因此敏感的用戶密碼等信息可以定義為此文件中的宏,並且可以將文件權限設置文件600
3.6 Status FIle and Update Interval
status_file=/usr/local/globle/softs/monitor/nagios/4.4.1/var/status.dat
存儲當前所有被監控的服務和主機狀態的文件。它的值被CGI讀取和執行。在nagios重啟時這些內容會被刪除。
status_update_internal=10
該選項確定nagios周期性轉存program,host,servicie的頻率值
3.7 Nagios User and Group
nagios_user=nagios
運行nagios的系統用戶
nagios_group=nagios
運行nagios的用戶組
3.8 Temp File and Path
temp_file=/usr/local/globle/softs/monitor/nagios/4.4.1/var/nagios.tmp
這是nagios更新狀態日志,清除內容文件等划出的臨時目錄。該目錄在nagios啟動時創建,使用和刪除
temp_path=/tmp
nagios為service和host檢查結果創建的臨時目錄
External Command Check Option
check_external_commands=1
該選項允許用戶指定nagios是否檢查外部指令(在下面定義的command file選項)。默認情況下,nagios將會檢查外部命令。如果用戶想啟用CGI命令接口,可以開啟該項。0表示不開啟,1表示開啟。默認開啟。
command_file=/usr/local/globle/softs/monitor/nagios/4.4.1/var/rw/nagios.cmd
該選項是nagios檢查外部命令請求的文件。它也是用戶通過CGI提交的命令的地方。因此對於web server的用戶必須是可寫權限的。權限設置需要在目錄級別而非文件,並且該文件在執行完其內容后總被刪除。默認開啟
Query Socket
query_socket=/usr/local/globle/softs/monitor/nagios/4.4.1/var/rw/nagios.qh
該選項是Query Handler interface創建的socker套接字
Check Workers?
check_worker=10
該項設置指定當nagios core 開始時,有多少worker process應該啟動。worker process 用於執行主機和服務的檢查。
如果未指定,默認的值為每個計算核心1.5個worker process,最小4個worker process
Disable Service Checks When Host Down?
host_down_disable_service_checks=0/1
該項設置將會關閉服務檢查當其所在主機宕機時。雖然在某些環境中是可取的, 但啟用此值可能會扭曲報表值, 因為預期的檢查數量不會執行
Notificatioins Option?
enable_notification=0/1
該項設置決定了當nagios啟動或者重啟時是否發送警告信息。如果禁用,nagios不會發送任何主機或者服務的報警。
注意:如果用戶開啟了【state retention】,nagios將會忽略此項配置,並在(重新)啟動時使用最后一次該選項的配置(存儲在state retention file中),除非禁用掉【use_retained_program_state】選項。
如果用戶在【state retention】啟用時想要改變此項配置(use_retained_program_state開啟),用戶將不得不通過web interface來實現。
lock_file=/var/run/nagios.lock
程序運行時pid的鎖文件
event_broker_options=-1
控制那些數據發送到事件中斷器。0表示不發送,-1表示發送所有。其他值參照文檔。
EVENT BROKER MODULES
該選項指令主要用於指定一個在nagios啟動時被加載的事件中斷模塊。通過定義多個指定來加載多個模塊。
啟動時傳遞給模塊的參數通過空格隔開。
例如:
broker_module=<modulepath> [moduleargs]
breoker_module=/somewhere/module1.0
breoker_module=/somewhere/module2.0 arg1 arg2=3 debud=0
Log Rotation Method
日志輪換方式主要爭對nagios的主日志文件。其值包括:
- n 不進行日志輪換
- h 以小時為單位進行日志輪換
- d 以天為單位進行日志輪換
- w 以周為單位進行日志輪換(每周最后一天)
- m 以月為單位進行日志輪換(每月最后一天)
log_rotation_method=d
默認以天為單位進行日志輪換
Log Archive Path
log_archive_path=/usr/local/globle/softs/monitor/nagios/4.4.1/var/archives**
該選項定義日志輪換歸檔目錄
use_syslog=1
該現象表示是否記錄到syslog中。1表示記錄,0表示不記錄。
log_notification=1
日志notifications級別是否被記錄。1表示記錄,0表示不記錄。
log_service_retries=1
服務檢查重啟記錄是否記錄到日志。1表示記錄,0表示不記錄。
log_host_retries=1
主機檢查重試記錄是否記錄到日志。1表示記錄,0表示不記錄。
log_event_handlers=1
如果不希望host和service事件句柄被記錄到日志,設置為0,反之設置為1。
log_initial_states=0
如果用戶希望記錄所有的主機和服務的開始狀態到日志文件中。如果用戶不使用具有長期狀態的外部應用程序統計報告, 您不需要啟用此選項。 在此情況下, 將值設置為0
log_current_states=1
如果不希望 Nagios 在將日志存儲到主日志文件之后記錄所有當前主機和服務狀態, 可以通過將此值設置為0來禁用此選項。默認值為1。
log_external_commands=1
如果不希望 Nagios 記錄外部命令, 請將此值設置為0。 如果外部指令應該被記錄, 請將此值設置為 1
注意: 此選項不包括對被動服務檢查的日志記錄(請參閱以下選項以控制是否記錄被動檢查)
log_passive_checks=1
如果用戶不希望nagios記錄主動檢查日志,設置為0。反之為1
GLOBAL HOST AND SERVICE EVENT HANDLERS
這些選項允許您指定要為每個主機或服務狀態更改運行的主機和服務事件處理程序命令。
全局事件處理程序在您在每個主機或服務定義中有選擇地指定的事件處理程序之前立即執行。
命令參數是您在主機配置文件中定義的命令定義的簡稱。
有關詳細信息, 請閱讀 HTML 文檔。
4. 對象配置文件
4.1 對象配置文件概述
Nagios的對象包括:服務,服務組,主機,主機組,聯系人,聯系人組,命令集,時間段,通知方式,通知和執行依賴。
Nagios的Object 在主配置文件中的cfg_file和cfg_dir兩個參數定義文件和目錄。
主機和主機組
主機一般是物理設備,如服務器,工作站,路由器,交換機,打印機等;主機一般有IP地址或者MAC地址;主機上有一個或者多個服務運行;主機之間存在父子關系,通常能夠反映真實的網絡連接
主機組是一個或者更多的主機
服務和服務組
服務主要包括:主機資源如CPU負載,磁盤使用,系統負載等;網絡服務,如HTTP,POP3,FTP,SSH等;
服務組是一個或者更多的服務
聯系人和聯系人組
聯系方式定義,報警應答。
時刻和時間段
主機或者服務監控的時間段,通知聯系人的時間段
命令集
包括:主機和服務的檢查,報警,事件處理,其他命令
不難發現:
Nagios實際上不監控行為量化,然后采用宏定義的方式實現批量處理。
比如監控對象顆粒化:主機,主機組,服務,服務組;
時間顆粒化:監控時刻或者時間段,報警時刻或者時間段,通知時刻或者時間段
行為顆粒化:主機(組)檢查行為,服務(組)檢查行為,報警和通知行為,事件處理(控制)行為等
