Nagios 是許多DevOps團隊用來確保對系統、設備、應用程序和服務進行全面有效跟蹤的流行監控工具。但是,該工具確實有一個陡峭的學習曲線,因此如果沒有經驗或好的教程,設置和開始使用 Nagios 可能會很棘手。本文概述了 Nagios 的功能,并為該工具的新手提供了一個理想的起點。繼續閱讀以了解 Nagios 的基本功能、優勢和架構,并了解公司如何使用該工具來確保對 IT 環境的持續監控。

什么是持續監控?
持續監控是不斷檢測、報告和響應 IT 系統內的風險和事件的過程。這個過程是至關重要的DevOps 安全實踐,并且有多個目標:
- 提供對系統性能的實時洞察。
- 就 IT 基礎架構的整體健康和安全提供反饋。
- 增強 IT 運營和DevOps 管道的可見性。
- 在問題導致停機或數據泄露之前確定事件的原因并采取緩解措施。
持續跟蹤的需求來自手動監控的問題,因為傳統跟蹤太容易出現:
- 減慢CI/CD 管道中的部署。
- 導致生產中的性能問題。
- 冗長且具有挑戰性的根本原因分析。
快速檢測、報告和響應威脅的能力對于公司的整體網絡安全至關重要。持續監控也是SecOps團隊中的一種標準做法,因為整個環境的可靠、實時洞察力可以改進:
- 威脅情報。
- 根本原因分析。
- 事件響應。
- 事后取證。
其他流行的持續監控術語是ConMon和持續控制監控 (CCM)。
為什么 ConMon 很重要?
持續監控是現代網絡安全的一個重要方面。完善的 ConMon 解決方案允許安全團隊:
- 快速檢測系統問題(網絡錯誤、內存不足、端口故障、系統崩潰、服務器無法訪問等)。
- 在問題影響用戶或業務生產力之前解決問題。
- 識別基礎架構中的安全和合規風險。
- 通過及時的警報系統和自動事件響應降低網絡攻擊的風險。
- 準確識別問題的根本原因。
- 保持高水平的系統正常運行時間和可用性。
- 使用精確的歷史分析來規劃基礎設施升級。
- 跟蹤應用更新后的用戶體驗和行為(對多個團隊至關重要的能力,包括開發、質量保證和客戶服務)。
什么是 Nagios?
Nagios 是一個用于監控系統、網絡和 IT 基礎設施的開源應用程序。該工具允許用戶跟蹤以下狀態和性能:
- 硬件(路由器、交換機、防火墻、專用服務器、工作站、打印機等)。
- 網絡。
- 應用。
- 服務。
- 業務流程。
- 操作系統(Windows、Linux、Unix 和 OSX)。
Nagios 定期檢查關鍵閾值和指標,以監控系統更改和潛在問題。如果軟件遇到問題,該工具會通知管理員,還可以運行自動腳本來控制和糾正這種情況。
您可以使用 Nagios 來監控:
- 內存和磁盤使用情況。
- CPU 負載。
- 正在運行的進程數。
- 日志文件。
- 系統可用性。
- 響應時間。
- URL 和內容監控指標。
- 服務和網絡協議(SMTP、POP3、HTTP 等)。
該工具有兩種主要變體:
- Nagios Core:該軟件的免費版本,允許用戶跟蹤所有重要指標。
- Nagios XI:?Core 的付費擴展版本,提供用于監控的高級組件和工具。
由于該解決方案的可擴展性、效率和靈活性,該軟件是 DevOps 圈子中常用的首選工具。
為什么我們需要 Nagios?
與所有強大的 ConMon 工具一樣,Nagios 無需手動監控。與識別和修復基礎設施錯誤相比,團隊可以專注于更有影響力的任務。Nagios 還對所有環境、設備和系統的監控進行標準化和集中化。
DevOps 和 SecOps 團隊經常將 Nagios 視為首選持續監控工具的其他原因是:
- 甚至 Nagios 的免費版本也允許用戶監控所有關鍵任務組件和指標。
- 該工具的高可擴展性使團隊能夠跟蹤數千臺設備和 100,000 多個節點環境。
- 該軟件可以快速檢測所有類型的網絡/服務器問題并有效地找出根本原因。
- Nagios 擅長監控數據庫服務器(SQL Server、Oracle、MySQL、Postgres等)。
Nagios 的好處
以下是使用 Nagios 進行持續監控的主要好處:
- 更好的系統可用性和性能。
- 該工具無需定期測試。
- 快速檢測中斷、網站篡改和劫持企圖。
- 容量規劃有助于規劃未來的 IT 升級。
- 由于該工具是開源的,因此熟練的團隊可以調整軟件以適應業務需求。
- Nagios 有一個大型活躍社區的支持,該社區不斷開發新的附加組件。
- Nagios 插件可免費下載和開發,提供了高度的靈活性。
- 該解決方案的警報和響應系統確保了高水平的安全性。
Nagios 功能
以下是 Nagios 監控工具的主要功能:
- 允許團隊為周界和指標設置自定義閾值。如果系統超過設定的限制,Nagios 可以通過 SMS、電子郵件或語音呼叫發送警報。
- 支持基于代理和無代理的配置。Nagios Remote Plugin Executor (NRPE) 代理允許您運行遠程腳本和插件。
- 具有多租戶功能的高度可定制的 UI,允許您為每個用戶分配自定義可見性。
- 多個 API 支持與內部和第三方應用程序的簡單集成。
- 如果系統遇到嚴重問題,配置快照存檔使您能夠恢復到以前的工作設置。
- 分步監控向導可幫助您快速輕松地設置工具。
- 歷史性能和容量規劃有助于在關鍵系統過載之前預測未來使用情況并規劃 IT 升級。
- 強大的日志管理系統。
- 并行處理可確保快速檢測中斷和硬件問題。
- 允許您跨多個位置設置對機器的監控。然后所有設備將輸出發送到中央 Nagios 服務器。
- 使用拓撲來確定依賴關系。
- 允許用戶使用父主機定義網絡層次結構。
納吉奧斯架構
Nagios 在主機服務器上運行(通常作為守護程序),并且該工具的操作依賴于服務器代理架構。在需要監控的網元上設置代理,代理與 Nagios 服務器通信。該工具通過代理檢索指標,并根據事件和設置閾值做出決策。
Nagios 與系統通信的另一種方式是通過本機協議,例如 SNMP 或 WMI。根據設置,代理和基于協議的監控都可以是:
- 活動:服務器向交換機或服務器等元素伸出援手,并詢問它們的狀態。
- 被動:受監控的系統會定期或在發生事件時向服務器發送信息。
Nagios 架構具有三個主要組件:
- 插件:在 Nagios 服務器上運行并與需要監控的本地和遠程主機通信的可配置插件。
- 進程調度器:調度器定期檢查插件并根據結果執行操作(例如提醒員工或啟動自動腳本來解決問題)。
- 圖形用戶界面 (GUI):這是 Nagios 系統的用戶界面,用戶通過該界面與工具交互并查看監控數據。
雖然您可以使用基于 Web 的 GUI 與該工具進行交互,但團隊也可以在命令行界面 (CLI) 中工作。

Nagios 插件
插件是獨立的附加組件和擴展,允許用戶:
- 定義受監控系統的目標和參數。
- 檢查主機或服務的狀態。
插件要么是編譯的二進制文件(用 C、C++ 等編寫),要么是用戶從命令行運行的可執行腳本(Shell、Perl、PHP 等)。插件在 Nagios 服務器上運行,使用戶能夠通過代理或本地協議監控遠程和本地主機。Nagios 使用插件生成的結果來確定:
- 主機的狀態。
- 如果事件需要立即發出警報或 GUI 上的簡單日志。
- 是否運行自動腳本來解決問題。
Nagios 插件分為三種類型:
- 官方插件:?Nagios 開發和維護了大約 50 個官方插件。
- 社區插件:社區成員開發了超過 3,000 個可用的第三方插件。
- 自定義插件:如果您的團隊具備合適的技能,該工具的開源特性允許您創建自定義插件。
所有插件都遵循狀態碼。下表解釋了默認退出代碼狀態及其描述:
退出代碼 | 狀態 | 描述 |
---|---|---|
0 | 好的 | 系統工作正常 |
1 | 警告 | 系統繼續運行,但需要注意 |
2 | 危急 | 系統無法正常工作 |
3 | 未知 | 插件無法評估主機或服務的狀態 |
Nagios GUI
圖形用戶界面 (GUI) 提供了 Nagios 中進行的所有進程的概覽。Nagios XI GUI 提供最關鍵的監控數據的查看,并有六個子菜單:
- 快速查看:包含不同 Dashlet 的可自定義界面,用戶可以根據自己的需要添加、刪除和操作。快速視圖是您可以找到戰術概覽的地方,它是您當前監控的所有主機和服務的總體摘要。

- 詳細信息:此菜單顯示所有主機和服務的詳細摘要。詳細信息選項卡顯示為每個主機運行的所有統計信息、命令和服務。

- 圖表:此菜單顯示了每個主機的所有受監控服務的一系列可擴展性能圖表。

- Maps:所有主機和父子關系的圖形狀態圖。您可以將地圖視為氣球或樹狀圖(或為其他一些地圖選項安裝自定義插件)。

- 事件管理:此菜單匯總了服務和主機的所有當前通知和警報。

- 監控過程:此菜單顯示有關工具內部操作的數據。

在頂部菜單中,您會發現:
- 視圖:快速訪問每個用戶獨有的一組視圖。對于希望在網絡運營中心 (NOC) 的墻上監視器上顯示數據的網絡管理員很有用。
- 儀表板:可定制的儀表板,顯示特定于各個 Nagios 用戶的重要相關數據。
- 報告:此菜單提供了一種為主機和服務生成統計數據和圖形報告的簡便方法。
- 配置:配置菜單允許您在監控向導的幫助下設置新的監控進程。
- 工具:您可以使用 Web 瀏覽器從 Nagios 快速訪問的實用程序。
- 幫助:直接訪問 Nagios 支持資源和團隊。

Nagios 核心安裝
下面的分步指南顯示了如何在 Ubuntu 20.04 上安裝 Nagios Core。
第 1 步:檢查系統更新
1.您應該首先在網上查看最新的可用軟件包:
$ sudo apt update
2.接下來,將系統包升級到最新版本:
$ sudo apt upgrade
第 2 步:安裝必備軟件包
更新系統后,您需要安裝運行 Core 所需的包。在命令行中輸入以下代碼:
$ sudo apt install wget unzip vim curl gcc openssl build-essential libgd-dev libssl-dev libapache2-mod-php php-gd php apache2
第 3 步:下載 Nagios 核心
下載 Nagios 核心。為此,請瀏覽到官方Git 存儲庫并選擇最新版本。或者,您可以從官方網站下載該工具。在撰寫本文時,Nagios 的最新版本是 4.4.6,因此我們使用以下命令來提取工具:
$ export VER="4.4.6"
現在,使用curl
命令:
$ curl -SL https://github.com/NagiosEnterprises/nagioscore/releases/download/nagios-$VER/nagios-$VER.tar.gz | tar -xzf -
此命令會下載一個名為nagios-4.4.6的目錄并將其添加到您當前的工作目錄中。
第 4 步:安裝 Nagios
我們現在需要通過從源代碼編譯來安裝 Core。
1. 導航到 Nagios 目錄:
$ cd nagios-4.4.6
2. 運行配置腳本:
$ ./configure

3. 運行make all
命令以編譯 CGI 旁邊的程序:
$ sudo make all
4.接下來,我們需要創建組用戶:
$ sudo make install-groups-users
$ sudo usermod -a -G nagios www-data
5. 現在在您的 Ubuntu 系統上安裝 Nagios Core:
$ sudo make install

6. 如您所見,屏幕上出現了一些附加說明。運行以下命令將init
腳本安裝在/lib/systemd/system路徑中:
$ sudo make install-init
7.接下來,安裝目錄并配置權限:
$ sudo make install-commandmode
8. 最后,在/usr/local/nagios/etc/中安裝示例配置文件:
$ sudo make install-config
第 5 步:設置 Apache 和 Nagios UI
1. 您需要啟用 Nagios Web 界面所需的 Apache 模塊,因此運行以下命令:
$ sudo make install-webconf
$ sudo a2enmod rewrite cgi
$ sudo systemctl restart apache2
2. 為經典的 Nagios 監控主題鍵入以下命令:
$ sudo make install-classicui
第 6 步:創建第一個 Nagios 用戶
我們現在需要創建一個可以登錄 Nagios 的用戶。以下命令創建一個名為nagadmin的用戶:
$ sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagadmin
您需要為用戶提供密碼并確認(默認情況下,密碼存儲在/usr/local/nagios/etc/htpasswd.users中)。
第 7 步:安裝 Nagios 插件
查看官方存儲庫中最新可用的插件(在撰寫本文時,最新發布的版本是 2.3.3)。
1. 要下載插件,請鍵入以下命令:
$ VER="2.3.3"
$ curl -SL https://github.com/nagios-plugins/nagios-plugins/releases/download/release-$VER/nagios-plugins-$VER.tar.gz | tar -xzf -
2. 此命令在您當前的工作目錄中創建一個新目錄 (?nagios-plugins-2.3.3 )。要安裝插件,您首先需要導航到新目錄:
$ cd nagios-plugins-2.3.3
3. 現在從源代碼編譯插件:
$ ./configure --with-nagios-user=nagios --with-nagios-group=nagios
$ sudo make install
4. 要確保所有配置都井然有序,請運行以下命令:
$ sudo /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
第 8 步:啟動 Nagios 守護進程
1.最后一步是啟動Nagios服務,我們通過以下命令實現:
$ sudo systemctl enable --now nagios
2. 要確保該工具正在運行,請使用以下命令:
$ sudo systemctl status nagios

3. 您現在可以通過打開瀏覽器并導航到http://server-IP/nagios?URL 來訪問該工具。
4. 出現提示后,輸入第 6 步中定義的憑據以登錄,您就可以開始監控了。
使用 Nagios 的缺點
Nagios 雖然功能豐富,但并不是一個完美的工具。以下是使用 Nagios 的主要缺點:
- 該界面可以用大量數據壓倒初學者。
- 雖然 Nagios Core 是免費的,但許多功能(例如向導、深度圖表和交互式儀表板)只有在您購買 Nagios XI 時才能使用。
- 某些配置文件可能難以配置。
- 該解決方案無法監控網絡吞吐量。
- 該工具將每個設備(服務器、路由器、交換機等)視為主機。
- 該工具需要大量定制和調整以使其適用于特定環境。
出色的監控能力,即使是免費版的工具
對于任何尋求可靠系統監控的企業來說,Nagios 都是一個不錯的選擇。如果您的團隊以前從未使用過該工具,請考慮免費設置 Nagios Core 并直接測試該工具的功能。使用 Core 幾周后,您將知道團隊是否需要 XI。無論哪種方式,您的 IT 監控都會得到巨大的改進。