本書分為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? 系統擴充
前言 隨著企業擴大和網站的擴建,增加伺服器及服務是必然的。當伺服器及服務擴充到一定數量的時候,人為地檢查或是被動地等別人提醒伺服器及服務的執行情況就不可行了。 這時就需要有一個工具幫助你去監控所有的伺服器、服務或是其他應用程式執行的工作,這些工作都被稱為監控物件,當這些監控物件出現問題時,根據需要按照指定的方式進行通知,以便於及時處理。這種情況要比被BOSS指著鼻子跟你說要強多了。 因此,Nagios對於網路、系統管理員來說是必不可少的工具。正確地使用Nagios能夠為自己和企業帶來很好的"效益"。