隨著企業擴大和網站的擴建,增加伺服器及服務是必然的。當伺服器及服務擴充到一定數量的時候,人為地檢查或是被動地等別人提醒伺服器及服務的執行情況就不可行了。這時就需要有一個工具幫助你去監控所有的伺服器、服務或是其他應用程式執行的工作,這些工作都被稱為監控物件,當這些監控物件出現問題時,根據需要按照指定的方式進行通知,以便於及時處理。這種情況要比被BOSS指著鼻子跟你說要強多了。
因此,Nagios對於網路、系統管理員來說是必不可少的工具。正確地使用Nagios能夠為自己和企業帶來很好的"效益"。
本書內容
本書分為9個部分共25章,內容詳細地說明了Nagios伺服器的安裝和使用、Nagios的基礎知識、Nagios監控理論、安裝前後的目錄結構、設定檔、設定物件、外掛程式開發,對Linux伺服器、Windows伺服器及路由器和交換機的host及service的監控,圖形化Nagios監控資料、Nagios XI (商業版Nagios)等。
目錄
前言
第1部分 認識Nagios
01 Nagios的檢測機制
1.1 兩種檢測方式
1.1.1 主動檢測
1.1.2 被動檢測
1.1.3 狀態型態
1.2 外部指令和事件處理常式
1.2.1 外部指令
1.2.2 事件處理常式
1.3 兩種檢測物件
1.3.1 主機檢測
1.3.2 服務檢測
1.3.3 檢測和處理"擺動"狀態
1.4 六種監控策略
1.4.1 "可變"服務機制
1.4.2 "跟蹤"狀態機制
1.4.3 快取檢測
1.4.4 服務和主機"新鮮度"檢測機制
1.4.5 預測相依性檢測
1.4.6 被動主機狀態轉換
1.5 決定網路主機的狀態和可達性
1.5.1 設定父/子關係
1.5.2 可達性邏輯的運作
1.5.3 UNREACHABLE狀態和通知
1.6 最佳化Nagios
1.6.1 快速啟動選項
1.6.2 Nagios最佳化發揮最大效能
1.6.3 使用內嵌Perl解譯器
1.6.4 分散式監控
1.6.5 效能資料
1.6.6 使用use_large_installation_tweaks選項
1.7 Nagios與變數
1.7.1 了解巨集變數及其如何工作
1.7.2 自訂物件變數
02 實現監控
2.1 監控公開提供的服務
2.1.1 用於監控服務的外掛程式
2.1.2 監控HTTP
2.1.3 監控FTP
2.1.4 監控SSH
2.1.5 監控SMTP
2.1.6 監控POP3
2.1.7 監控IMAP服務
2.2 監控Windows機器
2.2.1 先決條件
2.2.2 安裝Windows代理
2.2.3 設定Nagios
2.3 監控Linux/UNIX機器
2.4 監控網路印表機
2.4.1 先決條件
2.4.2 設定Nagios
2.5 監控路由器和交換機
2.5.1 先決條件
2.5.2 設定Nagios
03 相關設定
3.1 CGI設定
3.1.1 自訂CGI的頁眉和頁尾
3.1.2 增強CGI的安全和認證
3.1.3 在CGI中的認證和授權
3.2 Nagios的設定與驗證
3.2.1 Nagios的設定檔
3.2.2 Nagios設定檔驗證
3.3 設定聯絡人待命規則
3.3.1 方案1:假日和週末
3.3.2 方案2:隔日交替通知
3.3.3 方案3:隔周交替通知
3.3.4 方案4:假期通知
04 Nagios的高可用性
4.1 方案1:容錯監控
4.1.1 容錯監控目標
4.1.2 網路拓撲圖
4.1.3 初始化程式設定
4.1.4 初始化設定
4.1.5 事件處理常式指令的定義
4.1.6 事件處理指令稿
4.1.7 時間間隔
4.1.8 特殊情況
4.2 方案2:容錯移轉監控
4.2.1 容錯移轉監控的目標
4.2.2 初始化程式設定
4.2.3 Master 處理程序檢測
4.2.4 額外的問題
05 分散式監控的實現
5.1 DNX
5.1.1 DNX的優點
5.1.2 下載和安裝
5.1.3 DNX的設定檔
5.1.4 效果
5.1.5 關於實現HA
5.2 Nagios Fusion
5.2.1 Nagios Fusion的優點
5.2.2 下載和安裝Nagios Fusion
5.3 MNTOS
5.3.1 MNTOS的優點
5.3.2 下載和安裝MNTOS
第2部分 走進Nagios
06 安裝前的目錄結構
6.1 相關目錄
6.1.1 contrib/目錄
6.1.2 tools/目錄
6.2 相關檔案
07 安裝Nagios
7.1 設定安裝
7.2 分析Makefile檔案
7.2.1 第一部分:變數設定
7.2.2 第二部分:make 指令的選項
7.2.3 第三部分:make install 指令的選項
7.2.4 第四部分:以不同結構為基礎建立資料封包
7.3 編譯Nagios
7.3.1 執行make all
7.3.2 執行make X-install
7.4 啟動/停止Nagios服務
7.5 安裝Nagios Plugins
08 安裝後的目錄結構
8.1 bin/目錄
8.1.1 bin/nagios
8.1.2 bin/nagiostats
8.2 etc/目錄
8.2.1 etc/cgi.cfg
8.2.2 etc/nagios.cfg
8.2.3 etc/resource.cfg
8.2.4 etc/objects/commands.cfg
8.2.5 etc/objects/contacts.cfg
8.2.6 etc/objects/localhost.cfg
8.2.7 etc/objects/printer.cfg
8.2.8 etc/objects/switch.cfg
8.2.9 etc/objects/templates.cfg
8.2.10 etc/objects/timeperiods.cfg
8.2.11 etc/objects/windows.cfg
8.3 libexec/目錄
8.3.1 安裝Nagios外掛程式之前
8.3.2 安裝Nagios外掛程式之後
8.4 sbin/目錄
8.4.1 sbin/status.cgi
8.4.2 sbin/statusmap.cgi
8.4.3 sbin/statuswml.cgi
8.4.4 sbin/statuswrl.cgi
8.4.5 sbin/tac.cgi
8.4.6 sbin/outages.cgi
8.4.7 sbin/config.cgi
8.4.8 sbin/cmd.cgi
8.4.9 sbin/extinfo.cgi
8.4.10 sbin/showlog.cgi
8.4.11 sbin/history.cgi
8.4.12 sbin/notifications.cgi
8.4.13 sbin/trends.cgi
8.4.14 sbin/avail.cgi
8.4.15 sbin/histogram.cgi
8.4.16 sbin/summary.cgi
8.5 share/目錄
8.5.1 share/contexthelp
8.5.2 share/docs
8.5.3 share/images
8.5.4 share/includes
8.5.5 share/locale
8.5.6 share/ssi
8.5.7 share/stylesheets
8.5.8 share/index.php
8.5.9 share/config.inc.php
8.5.10 share/main.php
8.5.11 share/robots.txt
8.5.12 share/side.php
8.6 var/目錄
8.6.1 var/archives
8.6.2 var/nagios.lock
8.6.3 var/nagios.log
8.6.4 var/objects.cache
8.6.5 var/objects.precache
8.6.6 var/retention.dat
8.6.7 var/rw/nagios.cmd
8.6.8 var/spool/checkresults
8.6.9 var/status.dat
第3部分 使用Nagios
09 監控Linux系統下的host和service
9.1 認識NRPE
9.1.1 圖解NRPE
9.1.2 使用方法
9.2 安裝NRPE
9.2.1 用戶端安裝
9.2.2 伺服器端安裝
9.3 監控host和service
9.3.1 建立host和service定義
9.3.2 自訂監控
9.4 升級NRPE
9.4.1 監控主機升級
9.4.2 遠端主機升級
10 監控Windows系統下的host和service
10.1 認識NSClient++
10.1.1 圖解NSClient++
10.1.2 使用方法
10.2 安裝NSClient++
10.2.1 用戶端安裝
10.2.2 伺服器端安裝
10.3 監控host和service
10.3.1 建立host和service定義
10.3.2 自訂監控
11 監控公開提供的Service
11.1 對公網提供的服務
11.2 對內網提供的服務
12 監控其他裝置
12.1 路由器
12.2 交換機
12.3 網路印表機
13 升級Nagios
13.1 從早期3.x版本升級Nagios
13.2 從2.x 版本升級安裝Nagios
13.3 從RPM升級安裝Nagios
第4部分 物件設定
14 設定檔概述
14.1 14種物件設定檔
14.1.1 host定義
14.1.2 hostgroup定義
14.1.3 service定義
14.1.4 servicegroup定義
14.1.5 contact 定義
14.1.6 contactgroup定義
14.1.7 timeperiod定義
14.1.8 command定義
14.1.9 hostdependency定義
14.1.10 servicedependency定義
14.1.11 hostescalation定義
14.1.12 serviceescalation定義
14.1.13 extendedhost資訊定義
14.1.14 extendedservice資訊定義
14.2 host和service相依性
14.2.1 服務相依性
14.2.2 主機相依性
15 物件繼承與物件定義技巧
15.1 物件繼承
15.1.1 繼承介紹
15.1.2 定義格式
15.1.3 本機變數和繼承變數的比較
15.1.4 繼承鏈
15.1.5 使用不完整物件定義作為模版
15.1.6 自訂物件變數
15.1.7 取消繼承的字串值
15.1.8 增加繼承的字串值
15.1.9 隱含繼承
15.1.10 擴充中的隱含/增加繼承
15.1.11 "!" 功能
15.1.12 多個繼承來源
15.1.13 多重繼承來源的優先權
15.2 物件定義技巧
15.2.1 正規表示法比對
15.2.2 service定義
15.2.3 service擴充定義
15.2.4 service相依定義
15.2.5 host擴充定義
15.2.6 host相依定義
15.2.7 host組
第5部分 圖形化Nagios 資料
16 使用PNPNagios
16.1 PNPNagios的安裝與設定
16.1.1 軟體相依性
16.1.2 下載和安裝
16.1.3 安裝後的結構
16.1.4 相關檔案
16.2 PNPNagios的工作模式
16.2.1 Synchronous模式
16.2.2 Bulk模式
16.2.3 使用NPCD的Bulk模式
16.2.4 使用npcdmod的Bulk模式
16.2.5 Gearman模式
16.3 使用PNPNagios
16.3.1 Synchronous模式下的設定
16.3.2 Bulk模式下的設定
16.3.3 使用NPCD的Bulk模式下的設定
16.3.4 使用npcdmod的Bulk模式下的設定
16.3.5 Gearman模式下的設定
16.4 實例
16.4.1 使用Bulk模式
16.4.2 使用NPCD的Bulk模式
17 使用MRTG
17.1 nagiostats工具
17.1.1 使用資訊
17.1.2 容易讀懂的輸出
17.1.3 分析資料與MRTG整合
17.2 使用MRTG繪製Nagios工作效能資料圖
17.2.1 MRTG設定檔樣本
17.2.2 圖例分析
17.3 實例
17.3.1 安裝MRTG
17.3.2 設定MRTG
17.3.3 執行MRTG
17.3.4 設定Apache存取
17.3.5 產生的造訪頁面
第6部分 實現Nagios 通知
18 概述通知
18.1 通知
18.1.1 通知策略
18.1.2 篩檢程式
18.1.3 發送通知的方式
18.2 通知擴充
19 通知方式
19.1 使用電腦簡訊
19.1.1 Linux命令列下使用電腦簡訊
19.1.2 Nagios與簡訊結合
19.2 使用139電子郵件
19.2.1 註冊139信箱
19.2.2 在Nagios中增加聯絡人
19.3 其他方式
第7部分 圖解Nagios 前端介面
20 使用Nagios的Web介面
20.1 一般選項
20.2 目前狀態選項
20.3 報告檢視選項
20.4 系統組態選項
21 相關的Nagios前端程式
21.1 Web介面
21.2 Linux命令列介面
21.3 手機圖形介面
第8部分 Nagios 的擴充
22 Addon和Plugin
22.1 Nagios Addons
22.1.1 有效的Addon
22.1.2 取得Addon
22.2 Nagios Plugins
22.2.1 可用的外掛程式
22.2.2 取得外掛程式
22.2.3 使用Plugin的方法
22.2.4 Plugin API
22.3 Nagios Plugin API
22.3.1 傳回識別碼
22.3.2 Plugin 輸出規格
22.3.3 Plugin輸出舉例
22.3.4 Plugin 輸出長度的約束
22.3.5 Perl Plugins
23 Nagios外掛程式開發
23.1 對開發平台的要求
23.2 Nagios外掛程式輸出的約定
23.2.1 將文字僅列印在一行
23.2.2 詳細輸出
23.2.3 螢幕輸出
23.2.4 外掛程式傳回識別碼
23.2.5 設定值和範圍
23.2.6 效能資料
23.2.7 翻譯
23.3 系統指令和說明文件
23.4 Perl外掛程式
23.5 執行時間逾時
23.5.1 使用DEFAULT_SOCKET_TIMEOUT
23.5.2 為網路外掛程式增加警告
23.6 外掛程式選項
23.6.1 選項處理
23.6.2 門檻值及門檻範圍的使用
23.7 測試
23.7.1 測試外掛程式
23.7.2 測試C 函數庫函數
23.8 程式準則
23.8.1 C coding
23.8.2 Crediting sources
23.8.3 CVS 註釋
23.8.4 開發人員的翻譯工作
23.9 傳送新的外掛程式和更新
23.9.1 更新的傳送
23.9.2 捐獻外掛程式的傳送
23.9.3 新外掛程式的傳送
第9部分 商業版Nagios XI 伺服器
24 走進Nagios XI
24.1 安裝Nagios XI
24.1.1 下載Nagios XI
24.1.2 安裝過程
24.1.3 安裝歸納
24.2 安裝後的目錄結構
24.2.1 相關服務
24.2.2 商業價格
24.3 有關NRDP
24.3.1 NRDP要比NSCA更好使用
24.3.2 NRDP的工作原理
24.3.3 下載和安裝NRDP
24.3.4 測試NRDP API
24.3.5 使用NRDP用戶端
25 造訪Web介面
25.1 Home選項
25.1.1 快速檢視
25.1.2 詳細檢視
25.1.3 效能資料圖
25.1.4 網路狀態圖
25.1.5 事件管理
25.1.6 監控Nagios引擎處理程序
25.2 Views選項
25.2.1 檢視工具
25.2.2 訂製檢視
25.3 Dashboards選項
25.3.1 儀表板工具
25.3.2 我的儀表板
25.3.3 增加Dashlets
25.4 Report選項
25.4.1 我的報告
25.4.2 有效報告
25.4.3 資料視覺化
25.4.4 遺留報告
25.5 Configure選項
25.5.1 執行設定監控精靈
25.5.2 進入Nagios核心設定管理
25.5.3 帳戶設定
25.6 Help選項
25.7 Admin選項
25.7.1 檢視系統狀態
25.7.2 使用者管理
25.7.3 系統組態
25.7.4 監控設定
25.7.5 檢測輸出傳輸
25.7.6 系統擴充
前言
第1部分 認識Nagios
01 Nagios的檢測機制
1.1 兩種檢測方式
1.1.1 主動檢測
1.1.2 被動檢測
1.1.3 狀態型態
1.2 外部指令和事件處理常式
1.2.1 外部指令
1.2.2 事件處理常式
1.3 兩種檢測物件
1.3.1 主機檢測
1.3.2 服務檢測
1.3.3 檢測和處理"擺動"狀態
1.4 六種監控策略
1.4.1 "可變"服務機制
1.4.2 "跟蹤"狀態機制
1.4.3 快取檢測
1.4.4 服務和主機"新鮮度"檢測機制
1.4.5 預測相依性檢測
1.4.6 被動主機狀態轉換
1.5 決定網路主機的狀態和可達性
1.5.1 設定父/子關係
...