Nagios的WEB配置
# htpasswd -c /etc/nagios/htpasswd.users nagiosadmin 123456
建一個WEB訪問的用戶之后,在瀏覽器輸入http://ip/nagios/,輸入相應的用戶和密碼就可以就看到Nagios的web界面了。
WEB用到的配置文件是/etc/nagios/cgi.cfg,更改配置可修改這個配置文件。
# vi /etc/nagios/cgi.cfg
use_authentication=1 #使用用戶認證
authorized_for_system_information=nagiosadmin
authorized_for_configuration_information=nagiosadmin
authorized_for_system_commands=nagiosadmin #多個用戶之間用逗號隔開
authorized_for_all_services=nagiosadmin
authorized_for_all_hosts=nagiosadmin
authorized_for_all_service_commands=nagiosadmin
authorized_for_all_host_commands=nagiosadmin
hosts.cfg這段是用來定義一個被監控的主機。
host_name #這一項是用來定義標識主機的名字。我們用這個名字在host group和service里標識這個主機。一個主機能定義多個服務。使用適當時,宏$HOSTNAME$里存放了這一項的值。
alias #這一項用來定義主機的一個完整名字或描述。主要是和使你能理容易的標識一個主機。使用適當時,宏$HOSTALIAS$里存放了這一項的值。
address #這一項是用來定義主機的地址。一般而言是主機的IP。當然,你也能夠使用一個FQDN來標識你的主機,在沒有可訪問
DNS服務器服務的情況下這種方法會引起問題。使用適當時,宏$ HOSTADDRESS $里存放了這一項的值。
max_check_attempts #這一項用來定義在檢測返回結果不是OK時,nagios重試檢測命令的次數。設置這個值為1會導致nagios一次也不重試就報警。
check_period #這一項用一個time period項的名字來定義在哪段時間內激活對這臺主機的主動檢測。time period是定義在別的文件里的配置項,我們可以在這里用名字來引用她。
contact_groups #這是一個聯系組列表。我們用聯系組的名字來引用她們。多個聯系組間用“,”來分隔。
notification_interval #這一項用來定義當一個服務仍然down或unreachable時,我們間隔多久重發一次通知給聯系組。
notification_period #這一項用一個time period定義來標識什么時間段內給聯系組送通知。這里我們用time period定義的名字來引用她。
notification_options #這一項用來決定發送通知的時機。選項有:d = 當有down狀態時發送通知,u = 當有unreachable狀態時發送通知, r = 當有服務recoveries時發送通知,f = 當主機啟動或停機時發送通知。如果你給一個n選項,那么永遠不會發送通知。
}
define hostgroup{ #這段是用來定義一個被監控的主機組。
hostgroup_name #主機組名稱,通常定義得較短
alias #主機組別名,通常定義得較長
members #主機組成員
}
services.cfg這段是用來定義一個被監控的服務。
host_name #主機名稱
service_description #服務描述
check_command #執行命令
max_check_attempts #最大失敗嘗試次數,值為1時只報警不重新檢測
normal_check_interval #常規檢測間隔時間,默認為60分鐘(常規檢測是指無論服務狀態是否正常,檢測次數達到“最大次數”時)
retry_check_interval #失敗嘗試間隔時間,默認為60分鐘(失敗嘗試是指服務狀態不正常,檢查次數達到“最大次數”時)
check_period #檢測時間段
notification_interval #當服務狀態不正常時通知聯系人的間隔時間,值為0時不通知聯系人
notification_period #通知聯系人時間段
notification_options #通知聯系人選項,w警告,u未知,c危急,f啟動和停止,n不發送通知
contact_groups #聯系人組
}
define servicegroup{ #這段是用來定義一個被監控的服務組。
servicegroup_name #服務組名稱,通常定義得較短
alias #服務組別名,通常定義得較長
members #服務組成員
}
contacts.cfg這段是用來定義一個聯系人。
contact_name #這個指令用來定義一個聯系人的簡稱。他會在定義contactgroup時被引用到。在相應的環境中,宏定義$CONTACTNAME$會包含這個值。
alias #這個指令是為了定義一個聯系人的具體的描述。在相應的環境中,宏定義$CONTACTALIAS$會包含這個值。
host_notification_period #這個指令是為了定義,能夠通知Contact中定義的那個簡稱聯系人,關于主機有問題或者恢復正常狀態的時間段。你可以把他想象成能夠通知Contact關于主機的在線時間。
service_notification_period #這個指令是為了定義,能夠通知Contact中定義的那個簡稱聯系人,關于服務的問題或恢復正常的時間段。
host_notification_options #這個指令為了定義主機在什么狀態下會給聯系人發通知。各個參數的描述如下:d=當主機的狀態處于down時,發送通知;f=當主機狀態處于stop時發送通知。r=當主機恢復up狀態時發送通知。n=什么狀態下都不發送通知(w-warning , u-unknown,c-critical,r-recovery;d-down,u-unreachable)。
service_notification_options #這個指令為了定義服務在什么狀態下會給聯系人發通知。各個參數的描述如下:w=當服務處于警告狀態時發送通知 u=當服務的狀態處于unknown時,發送通知;f=當服務狀態處于啟動和停止時發送通知。c=當服務處于Critical狀態時發送通知。n=什么狀態下都不發送通知。
host_notification_commands #這個指令是為了定義一個通知聯系人關于主機問題或恢復正常的聯系手段的一個列表。多個手段之間用逗號隔開。
service_notification_commands#這個指令是為了定義一個通知聯系人關于服務問題或恢復正常的聯系手段的一個列表。多個手段之間用逗號隔開。
email #這個指令是為了定義聯系人的email地址。這個將取決于你是如何定義你的notification commands.它可以用來給聯系人發送緊急郵件。在相應的環境中。宏定義$CONTACTEMAIL$將會包含它的值。
}
define contactgroup{ #這段是用來定義一個聯系人組。
contactgroup_name #聯系組名稱,通常定義得較短
alias #聯系組別名,通常定義得較長
members #聯系組成員
}
timeperiods.cfg時間段名稱,通常定義得較短
alias #時間段別名,通常定義得較長
sunday #星期日時間段
monday #星期一時間段
tuesday #星期二時間段
wednesday #星期三時間段
thursday #星期四時間段
friday #星期五時間段
saturday #星期六時間段
}
commands.cfg定義命令的簡稱
command_line #定義當服務進行時Nagios要執行的動作。在命令執行以前,所有合法的宏都要被他們的值代替。
}
define command{
command_name #
define timeperiod{
timeperiod_name #
define contact{ #
define service{ #
define host{ #