Zabbix 是一個開源的監控軟體,廣泛用於監控網路和應用程序的健康狀況。它的架構主要包含以下幾個組件:
Zabbix Server:Zabbix Server 是整個監控系統的核心,負責收集和處理監控數據,進行告警,以及存儲監控數據。主要部署在 Linux 中,在本書裡主要以 Rocky Linux 9 為主,搭配 Podman 實做以 Container 進行安裝與建置,也可以安裝在 Red Hat Enterprise Linux 9 裡。
Zabbix Database:Zabbix 使用數據庫來存儲所有配置信息和收集到的數據。支持的數據庫包括 MySQL、PostgreSQL、SQLite 等,本書主要使用 MySQL Server 8,並採用作業系統內建的的版本,此版本有被 Zabbix 7.0 LTS 所支援,為了統一安全性與一致的更新來源,不另外使用其它安裝來源。
Zabbix Web Interface:Zabbix 提供一個基於網頁的用戶界面,用於配置監控設置、查看監控數據和圖表、設置警報等。這個界面是用 PHP 編寫的,需要部署在網頁服務器上(如Apache、Nginx),同 Zabbix Server,本書使用 Container 進行安裝。
Zabbix Agent(可選):Zabbix Agent 安裝在需要監控的目標主機上(可以是 Linux、Windows 等作業系統)。Agent 負責收集主機的各種信息,如CPU、記憶體、磁碟和網路使用情況,並將這些數據發送到 Zabbix Server,Zabbix 不是一定需要,但安裝的話可以讓監控更有彈性,包含使用 Agent 執行自定 Script 取得相關數據進行細膩度更高的整合需求。
Zabbix Proxy(可選):Zabbix Proxy 是一個可選組件,用於分散監控負荷和簡化復雜網路的管理。Proxy 收集代理其管理的主機的數據,然後統一發送給 Zabbix Server,在較多監控項的情境之下,使用 Proxy 機制能夠有效減低 Server 的負載,Proxy 基本上是 Server 的分身,所以它一樣會有應用程式和資料庫等組件,在本書使用和 Zabbix Server 一樣的環境。
這些組件可以靈活部署,以適應不同的監控需求和環境。例如,對於大型網路,可能需要多個 Zabbix Server 和 Proxy 來分散監控負荷;對於小型環境,則可能只需要一個 Zabbix Server 和直接連接的 Agent。
圖: Zabbix 基本結構
在被控的作業系統中不一定非要安裝 Zabbix Agent。Zabbix 提供了多種監控方式,Zabbix Agent 是其中一種,主要用於主動收集被監控主機的詳細信息。除此之外,Zabbix 還支持其他監控方法,這些方法可以在沒有安裝 Zabbix Agent 的情況下使用:
簡單檢查(Simple Checks):這些是無需安裝 Agent 就可以進行的基本檢查,例如 ping 測試或檢查某個TCP/UDP 端口是否開放。
SNMP(Simple Network Management Protocol)監控:這種方法適用於許多網路設備(如路由器、交換機)和支持 SNMP 的服務器。它可以收集設備的性能和配置信息。
IPMI(Intelligent Platform Management Interface)監控:IPMI 用於監控硬件狀態,例如溫度、電壓、風扇速度等。
JMX(Java Management Extensions)監控:適用於監控 Java 應用程式。
Web監控:用於監控網站的可用性和性能。
外部檢查和自定義腳本:Zabbix 允許使用外部腳本或自定義命令來擴展其監控能力。
Zabbix Sender 和 Trapper 項目:這些是用於主動將資料推送到 Zabbix Server 的方法。
根據具體監控需求和環境,我們可以選擇不安裝 Zabbix Agent,而使用上述其他方法進行監控。當然,若使用 Zabbix Agent 可以獲得更詳細的數據和更靈活的監控選項。