監控對象
網絡服務監控:主機存活檢查,ftp,web等常見服務,數據庫服務監控...
主機資源監控:系統負載,當前ip鏈接數,磁盤空間使用情況,當前進程數..
監控主要目的
監控對象發生故障或資源緊張時及時通知相關人員,以便問題得到迅速處理
監控效果的展現
web方式:通過瀏覽器觀看被監控對象;
# 顏色代表嚴重級別如下所示
綠色 OK 正常
黃色 WARNING 警告
紅色 CRITICAL 嚴重
深黃色 UNKOWN 未知錯誤
郵件通知:達到設定重試次數和探測間隔時間後發送郵件,說明問題的大致情況
手機短信:較爲及時重要的功能
上班時間開着瀏覽器看頁面,打開郵件程序查看,手機24小時開機.
詳解配置文件
配置文件概括總結其作用
nagios.cfg : 主配置文件,nagios進程和CGIs讀取定義和控制nagios行爲,需要修改
cgi.cfg : cgi配置文件,瀏覽器執行諸如重啓nagios服務等,需要修改
resource.cfg : 宏定義文件,定義插件路徑,不需要修改
commands.cfg : 命令定義文件,定義怎麼發送短信,郵件等,需要修改
contactgroups.cfg,contacts.cfg,hostgroups.cfg,hosts.cfg,services.cfg
:監控對象配置文件,如主機配置文件,聯繫人配置文件等
主配置文件包含,並需手動創建
配置文件詳細其參數作用
————nagios.cfg
# 主配置文件,主要管理其他所有跟nagios有關的文件.
# 它定義了nagios的日誌文件,緩衝文件,狀態信息存放文件...
——nagios主要參數及含義
log_file=/var/spool/nagios/nagios.log
# 日誌文件
#cfg_file=/usr/local/etc/nagios/objects/localhost.cfg
# 此處常註釋,爲方便維護,配置目標單獨放
# 此處常註釋,爲方便維護,配置目標單獨放
cfg_file=/usr/local/etc/nagios/objects/cgi.cfg
cfg_file=/usr/local/etc/nagios/objects/resource.cfg
cfg_file=/usr/local/etc/nagios/objects/commands.cfg
cfg_file=/usr/local/etc/nagios/objects/hosts.cfg
cfg_file=/usr/local/etc/nagios/objects/hostgroups.cfg
cfg_file=/usr/local/etc/nagios/objects/services.cfg
cfg_file=/usr/local/etc/nagios/objects/servicegroups.cfg
cfg_file=/usr/local/etc/nagios/objects/contacts.cfg
cfg_file=/usr/local/etc/nagios/objects/contactgroups.cfg
cfg_file=/usr/local/etc/nagios/objects/timeperiods.cfg
cfg_file=/usr/local/etc/nagios/objects/timeperiods.cfg
cfg_file=/usr/local/etc/nagios/objects/templates.cfg
# 配置文件模板
cfg_file=/usr/local/etc/nagios/objects/windows.cfg
cfg_file=/usr/local/etc/nagios/objects/switch.cfg
cfg_file=/usr/local/etc/nagios/objects/printer.cfg
check_extermal_commands=1
# web界面下重啓nagios,停止主機/服務檢查等操作,默認值爲0
command_check_interval=10s
# 命令檢查時間間隔.默認值是1秒
# 命令檢查時間間隔.默認值是1秒
————cgi.cfg
# 只修改管理用戶
authorized_for_system_information=nagiosadmin
# 開始頭爲authorized_for_的都要改爲nagiosadmin
————resource.cfg
————hosts.cfg
define host {
host_name # 定義主機名字,在hostgroups.cfg和services.cfg裏關聯.
# 一個主機能定義多個服務
# 當使用時,宏$HOSTNAME$裏存放這一項的值
alias # 定義一個方便理解的一個主機名字或描述
# 當使用時,宏$HOSTALIAS$裏存放這一項的值
address # 定義主機地址,一般是IP
# 當使用時,宏$HOSTADDRESS$裏存放這一值
max_check_attempt(嘗試)
# 定義了檢測結果返回不是OK時,nagios重試檢測的次數
# 設置值爲1,不重試檢測直接報警
check_period(期)
# 用time_period項的名字,定義在哪段時間內對主機主動檢測
# time_period是定義在別的文件裏的配置項,在這裏用名字引用它
contact_groups(聯繫組)
# 定義聯繫組列表,用聯繫組的名字引用它們.多個組用","隔開
notification_interval(通知_間隔)
# 定義當一個服務仍然down或unreachable時
# 間隔多久重發一次通知給聯繫組
notification_period(通知時間段)
# 定義什麼時間段內給聯繫組發通知
# 可以用time_period定義的名字引用它
notification_options(通知時機)
# 定義發送通知的選項.選項有:
d=當有down狀態時發送通知
u=當有unreachable狀態時發送通知
r=當有服務recoveries時發送通知
f=當主機啓動或停機時發送通知
n=永遠不發送通知
}
————hostgroups.cfg
define hostgroup {
hostgroup_name
# 主機組名稱,通常定義得較短
alias # 主機組別名,通常定義得較長,方便理解
members # 主機組成員
}
————services.cfg
define service {
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不發送通知
nitification_groups
# 聯繫人組
}
————servicegroups.cfg
define servicegroup {
servicegroup_name
# 服務組名稱,通常定義得較短
alias # 服務組別名,通常定義得較長
members # 服務組成員
}
————contacts.cfg
define contact {
contact_name
# 定義聯繫人的簡稱,他與contactgroup關聯
# 使用時,宏定義$CONTACTNAME$存放這個值
alias # 聯繫人的具體描述
# 使用時,宏定義$CONTACTALIAS$存放這個值
host_notification_period
# 定義通知簡稱聯繫人關於主機的問題或恢復正常狀態的時間段
# 可以理解爲主機的在線時間
service_notification_period
# 通知簡稱聯繫人關於服務的問題或恢復正常的時間段
host_notification_options
# 定義主機在什麼狀態下給聯繫人發通知.參數描述如下:
d=主機是down,發通知
f=主機stop時,發通知
r=主機恢復up時,發通知
n=啥狀態都不發通知
service_notification_options
# 定義服務在什麼狀態時給聯繫人發通知
w=警告狀態時,發通知
u=unknown狀態時,發通知
f=啓動和停止時,發通知
c=critival(關鍵,緊要)狀態時,發通知
n=什麼狀態下都不發通知
host_notification_commands (短信,郵箱)
# 定義一個通知聯繫人主機問題或恢復正常的聯繫方式的列表
# 多個列表用","隔開
service_notification_commands (短信,郵箱)
# 定義一個通知聯繫人服務問題或恢復正常的聯繫方式的列表
# 多個列表用","隔開
email # 定義聯繫人的email地址.
# 取決於你是如何定義notification commands,給聯繫人發緊急郵件
# 使用時,宏$CONTACTEMAIL$存放這個值
}
————contactgroup.cfg
define contactgroup {
contactgroup_name
# 聯繫組名稱,通常定義得較短
alias # 聯繫人別名,通常定義得較長
members # 聯繫組成員
}
————timeperiods.cfg
define timeperiod {
timeperiod_name
# 時間名稱,通常定義得較短
alias # 時間段別名,通常定義的較長
sunday # 星期日時間段
monday # 星期一時間段
tuesday # 星期二時間段
wednesday # 星期三時間段
thursday # 星期四時間段
friday # 星期五時間段
saturday # 星期六時間段
}
————commands.cfg
define command {
command_name
# 定義命令的簡稱
command_line
# 定義當服務進行時nagios要執行的動作
# 在命令執行前,所有合法的宏都被他們的值代替
}
需要注意:
石頭大哥([url]http://www.itnms.net/discuz/[/url])的翻譯如下:
簡單說一下,大概的內容,不是嚴格翻譯。
1. 確認check_nrpe 和 nrpe daemon的版本一定要一致。
2. 確認 check_nrpe和nrpe deamon端同時啓用或者禁用ssl支持。
3. 確認nrep.cfg可以被nrpe(或者nagios,反正是執行nrep或者xinetd/inetd程序的)用戶正常讀取。
4. 有關僞隨機設備的問題。這個只會在solaris 8上出現,需要一個補丁Sun patch 112438。
5. 確定nagios主機在xinetd的 only_from中,如果沒有使用xinetd,則要確認nrpe.cfg中的配置。
石頭大哥([url]http://www.itnms.net/discuz/[/url])的翻譯如下:
簡單說一下,大概的內容,不是嚴格翻譯。
1. 確認check_nrpe 和 nrpe daemon的版本一定要一致。
2. 確認 check_nrpe和nrpe deamon端同時啓用或者禁用ssl支持。
3. 確認nrep.cfg可以被nrpe(或者nagios,反正是執行nrep或者xinetd/inetd程序的)用戶正常讀取。
4. 有關僞隨機設備的問題。這個只會在solaris 8上出現,需要一個補丁Sun patch 112438。
5. 確定nagios主機在xinetd的 only_from中,如果沒有使用xinetd,則要確認nrpe.cfg中的配置。
6. 檢查一下你的Windows或者Linux自帶的防火牆,是否把端口給filter掉了。
7. 把nrpe的的log打開,可以發現更多有用的信息。
7. 把nrpe的的log打開,可以發現更多有用的信息。
(Nagios飛信linux系統免費短信報警配置)
CACTI網絡流量監控
1.什麼是cacti和rrdtool
Cacti是一套基於PHP,MySQL,SNMP及RRDTool開發的網絡流量監測圖形分析工具。是通過 snmpget來獲取數據,使用 RRDtool繪畫圖形它提供了非常強大的數據和用戶管理功能,可以指定每一個用戶能查看樹狀結構、host以及任何一張圖,還可以與LDAP結合進行用戶驗證,同時也能自己增加模板,功能非常強大完善。界面友好。
Rrdtool是用來存儲和處理通過SNMP收集到的數據的工具。