部署 Zabbix 企業級分布式監控

目錄

一、監控系統的功能概述

1、監控的定義

2、監控的五個層次

(1)基礎設施監控

(2)系統層監控

(3)應用層監控

(4)業務監控

(5)端用戶體驗監控

二、監控系統的實現原理

1、模塊組成

2、采集協議

3、監控模式

4、代理架構

三、監控系統的開源產品

四、Zabbix 系統概述

1、初識 Zabbix

2、Zabbix 的功能特性

3、Zabbix 角色及架構

五、部署流程

1、資源清單

2、基礎環境配置(所有節點)

3、部署 Zabbix Server(04)

4、Zabbix 頁面配置

5、部署 Proxy(03)

6、部署 Agent

?編輯

7、擴展:解決圖像字體顯示問題


一、監控系統的功能概述

1、監控的定義

監控在中文字義上包含 “檢測” 和 “預防”,對應英文 “Monitoring”。在計算機領域,監控可劃分為 5 種類型:

  • 應用性能監控
  • 業務交易監控
  • 網絡性能監控
  • 操作系統監控
  • 網絡站點監控

2、監控的五個層次

(1)基礎設施監控

  • 負責人員:運維人員。
  • 監控對象:網絡、交換機、路由器等低層硬件設備。
  • 核心指標:網絡流量、丟包情況、錯包情況、連接數等。
  • 重要性:設備可靠性直接影響上層服務應用穩定性。

(2)系統層監控

  • 涵蓋對象:物理機、虛擬機、操作系統等。
  • 核心指標:CPU 使用率、內存占用率、磁盤 IO、網絡帶寬情況。

(3)應用層監控

  • 關聯對象:與服務緊密相關,涉及 URL 訪問、服務性能、SQL、Cache 等。
  • 監控指標:URL 訪問性能、調用數、延遲;服務錯誤率;慢 SQL;緩存命中率、性能;服務響應時間等。

(4)業務監控

  • 定義:針對直接影響業務交易的關鍵環節。
  • 示例(交易網站):用戶登錄、注冊、下單、支付情況等。
  • 作用:為運營和高管提供數據支持,輔助戰略決策。

(5)端用戶體驗監控

  • 監控對象:用戶通過 app、h5、pc 端使用應用程序的體驗。
  • 監控內容:用戶端性能、返回碼;用戶所在城市地區、運營商情況;接入渠道問題;客戶端操作系統及瀏覽器版本等。
  • 重要性:及時感知因 BUG 或性能問題導致的用戶體驗差問題。

二、監控系統的實現原理

1、模塊組成

監控系統基本模型由兩部分構成:

  • 數據采集部分
  • 數據存儲、分析告警、展示部分

2、采集協議

按照支持的協議方式,監控 IT數據采集可以分為兩種:專用客戶端采集和公用協議采集。

分類包含內容
專用客戶端采集私有協議、專有客戶端
公用協議采集SNMP、IPMI、SSH、Telnet

3、監控模式

?監控系統數據采集的工作模式可以分為被動模式和主動模式。被動模式指的是服務器端到客戶端采集數據;主動模式是客戶端主動上報數據到服務器。

模式數據流向適用場景服務端負載
主動模式Agent → Server大規模分布式環境
被動模式Server → Agent小規模集中式環境

4、代理架構

  1. 適用場景:大規模監控環境,被監控節點多、監控類型多,數據和網絡連接開銷大。
  2. 作用:分攤服務器端性能開銷,支持跨地域、跨網絡分布式監控。
  3. 常見架構:C/S/P 架構(Client/Proxy/Server)。

三、監控系統的開源產品

產品名稱特點及功能
Zabbix企業級運維監控平臺,支持監控服務器、網絡設備、Web 應用等;適配多系統(Linux、AIX、Windows 等);基于 GPLv2 許可證,開源免費。
Prometheus+GrafanaPrometheus 為開源系統監控和警報工具包,主要監控基礎設施(服務器、數據庫、Web 服務等)。
Cacti網絡流量監測圖形分析工具,連接 RRDToo1 生成網絡數據圖表;具備強大數據和用戶管理功能,支持與 LDAP 結合驗證,可自定義模板。
Nagios監控系統運行狀態和網絡信息,支持監控本地 / 遠程主機及服務,提供異常通知;可監控網絡協議、操作系統、應用程序等多種組件。
Checkmk高可擴展監控工具,支持服務器、網絡、資產等監控;分基礎版(開源免費無限制)和企業版(附加功能);部署快、自動化程度高、配置靈活。
OpenNMS企業級基于 Java/XML 的分布式監控平臺,顯示網絡終端和服務器狀態配置;專為 Linux 設計,支持多系統;可通過 JMX、WMI、SNMP 等多種協議收集指標。
NetdataLinux 性能實時監測工具,支持 Linux 系統、應用程序、SNMP 服務等實時監控;運行于物理機、虛擬機等多種設備;監控指標多、收集速度快,支持數萬指標并發監控。
LibreNMS開源網絡監控系統,易安裝配置,支持多平臺;功能廣泛(協議支持、性能監控、警報等);支持多供應商設備及協議,可自動發現網絡。

四、Zabbix 系統概述

1、初識 Zabbix

  1. 定義:企業級分布式開源監控系統解決方案,基于 Web 界面提供分布式系統及網絡監控功能。
  2. 開發者:由 Alexei Vladishev 創建,目前由 Zabbix SIA 主導開發和支持。
  3. 監控對象:網絡參數、服務器、虛擬機、應用程序、服務、數據庫、網站、云等的健康和完整性。
  4. 核心功能:靈活通知機制(電子郵件告警)、報告和數據可視化(支持容量規劃)、支持輪詢和 trapping、Web 前端訪問、免費開源(GPLv2 許可證)。

2、Zabbix 的功能特性

  1. 數據收集:支持可用性及性能檢測;兼容 SNMP、IPM、MX 監控;支持自定義檢測和間隔收集數據;包含 Server、Proxy、Agent 三種角色。
  2. 靈活的閾值定義:自定義問題閥值(觸發器),存儲于后端數據庫。
  3. 高級告警配置:支持告警升級、自定義接收者及方式;告警信息可配置,支持宏變量;通過遠程命令實現自動化動作。
  4. 實時繪圖:內置繪圖方法實現監控數據實時繪圖。
  5. 擴展的圖形化顯示:支持自定義多監控項視圖;生成網絡拓撲、自定義面板和幻燈片(支持 dashboard 顯示);生成監控報告。
  6. 歷史數據存儲:數據存儲于數據庫;歷史數據可配置;內置數據清理機制。
  7. 配置簡單:一次配置長期監控(除非調整或刪除);支持通過模板添加監控設備。
  8. 模板使用:模板可添加組監控;支持繼承。
  9. 網絡自動發現:自動發現網絡設備、Agent 自動注冊;自動發現文件系統、網卡設備、SNMP OID 等。
  10. 快速的 Web 接口:Web 前端基于 PHP 編寫,訪問無障礙。
  11. Zabbix API:提供程序級訪問接口,方便第三方程序接入。
  12. 權限系統:安全權限認證;用戶可限制允許維護的列表。
  13. 全特性、Agent 易擴展:可部署于監控目標;支持 Linux 及 Windows。
  14. 二進制守護進程:C 語言開發,高性能、低內存消耗;易移植。
  15. 應對復雜環境:通過 Zabbix Proxy 實現遠程監控。

3、Zabbix 角色及架構

  1. Zabbix Server:服務端守護進程,接收 Zabbix Agentd、Zabbix Proxy 提交的數據,也可主動獲取數據。
  2. Zabbix Agent:客戶端守護進程,負責收集客戶端數據(如 CPU 負載、內存、硬盤使用情況等)。
  3. Zabbix Proxy:代理守護進程,功能類似 Server,作為中轉站將收集的數據提交給 Server。
  4. Zabbix Web:Web 界面,管理員通過其管理配置和查看監控信息,可與 Server 同機或獨立部署。
  5. 整體架構:包含監控客戶端(Zabbix Agent)、監控代理服務器(Zabbix Proxy)、監控服務器(Zabbix Server)及前端界面(PHP 編寫);支持主動 / 被動模式,涉及端口 10050(Agent)、10051(Server/Proxy)、80(Web);數據庫支持 MySQL、Oracle、PostgreSQL、SQLite 等;支持無 Agent 監控(通過 Telnet、SNMP、IPMI、SSH 等)。

五、部署流程

1、資源清單

操作系統配置主機名IP 地址角色
openEuler 24.032C4Gserver01(01)192.168.10.101Zabbix 服務端
openEuler 24.032C4Gserver02(02)192.168.10.102Zabbix proxy
openEuler 24.032C4Gproxy(03)192.168.10.103被監控節點
openEuler 24.032C4Gzabbix(04)192.168.10.104被監控節點

2、基礎環境配置(所有節點)

關閉防火墻

systemctl stop firewalld
systemctl disable firewalld

關閉 SELinux

setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config 

修改主機名

01
hostnamectl set-hostname server01
bash02
hostnamectl set-hostname server02
bash03
hostnamectl set-hostname proxy
bash04
hostnamectl set-hostname zabbix
bash

3、部署 Zabbix Server(04)

添加 Zabbix 源

rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
dnf clean all

安裝軟件包

dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
dnf -y install mysql
dnf -y install mysql-server-8.0.41
dnf -y install https://w.rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/net-snmp-libs-5.9.1-17.el9.x86_64.rpm

備注:Zabbix 6.4.8 要求軟件版本:

MySQL 8.0.30-8.1.X、MariaDB 10.5.00-11.1.X、Nginx 1.20 或更高、PHP 7.4.0-8.2.X。

配置數據庫

systemctl start mysqld
systemctl enable mysqld
mysql -uroot

執行 SQL 語句:

sql

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
FLUSH PRIVILEGES;
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'zabbix';
grant all privileges on zabbix.* to zabbix@localhost;
create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by 'zabbix';
create user zabbix@'%' identified by 'zabbix';
grant all privileges on zabbix_proxy.* to zabbix@localhost;
grant all privileges on zabbix_proxy.* to zabbix@'%';
set global log_bin_trust_function_creators=1;
quit;

導入數據

zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
[root@zabbix ~]# mysql -uroot -p
Enter password: 123456

執行 SQL 語句:

set global log_bin_trust_function_creators= 0;
quit;

配置 Zabbix Server

修改/etc/zabbix/zabbix_server.conf文件,

#在大約 129 行取消注釋并修改密碼
DBPassword=zabbix。

配置 Zabbix 頁面

修改/etc/nginx/conf.d/zabbix.conf文件,

#取消注釋
server {listen          8080;server_name     _;

啟動服務

systemctl restart zabbix-server zabbix-agent nginx php-fpm 
systemctl enable zabbix-server zabbix-agent nginx php-fpm

4、Zabbix 頁面配置

登錄 Zabbix:訪問http://192.168.10.104:8080/

設置語言:選擇合適語言(如中文)。

檢查環境:通過 “檢查必要條件” 頁面確認環境是否滿足。

配置數據庫連接:按頁面提示填寫數據庫連接信息。

主機名設置:保持默認即可,確認時區(系統默認 UTC+0000,可根據需求調整)。

安裝前匯總:檢查配置參數,無誤后點擊 “下一步”。

完成安裝:提示 “Zabbix 前端已經配置好了” 即完成。

登錄:默認賬號Admin,默認密碼zabbix

5、部署 Proxy(03)

添加 Zabbix 源

rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
dnf clean all

安裝軟件包

dnf -y install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy mysql
dnf -y install https://www.rpmfind.net/linux/centos-stream/9-stream/AppStream/x86_64/os/Packages/net-snmp-libs-5.9.1-17.el9.x86_64.rpm

導入數據

Zabbix Server 節點執行(04):
mysql -uroot -p123456
set global log_bin_trust_function_creators=1;
exit
Proxy 節點執行(IP 地址修改為 Zabbix Server 的 IP)(03):
[root@proxy ~]# cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix_proxy -h 192.168.10.104
Enter password: zabbix
Zabbix Server 節點執行(04):
mysql -uroot -p123456
set global log_bin_trust_function_creators=0;
exit

配置 Zabbix Proxy:修改/etc/zabbix/zabbix_proxy.conf文件

Server=192.168.10.104    #32行,Zabbix Server 節點 IP。
Hostname=Zabbix proxy    #42行,后續 Web 頁面添加時需保持一致,可默認不修改。
DBHost=192.168.10.104    #157行,Zabbix Server 節點 IP。
DBPassword=zabbix    #194行,數據庫密碼。

啟動服務

systemctl start zabbix-proxy
systemctl enable zabbix-proxy

Web 頁面添加 Proxy:路徑為 “管理 -->Proxy--> 創建 agent 代理”,選擇主動式(默認)。

6、部署 Agent

添加 Zabbix 源

rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
dnf clean all

安裝軟件包

dnf -y install zabbix-agent

配置 Agent:修改/etc/zabbix/zabbix_agentd.conf文件

Server=192.168.10.104    #上報目標 IP,Server 或 Proxy 的 IP
ServerActive=192.168.10.104    #通常與 Server 行配置一致
Hostname=server01    #需與 Server 端 Web 頁面主機名稱一致,可自定義

    啟動服務

    systemctl start zabbix-agent
    systemctl enable zabbix-agent
    

    添加主機

    • 路徑:“數據采集 -- 主機 -> 創建主機”。

    • 配置項:主機名稱(與 Agent 配置文件中 Hostname 一致);
    • 選擇模板(可使用自帶或自定義模板);
    • 選擇主機群組(已有或新建);
    • 添加接口Agent節點(填寫被監控節點 IP)。

    通過 Proxy 上報:步驟類似直接添加主機,需選擇之前創建的 Proxy。

    rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
    dnf clean all
    dnf -y install zabbix-agentvim /etc/zabbix/zabbix_agentd.conf
    Server=192.168.10.103
    ServerActive=192.168.10.103
    Hostname=server02systemctl start zabbix-agent
    systemctl enable zabbix-agent

    注:不要忘記將server02添加到proxy,然后應用

    7、擴展:解決圖像字體顯示問題

    查找 Zabbix 定義字體的 PHP 文件

    [root@zabbix ~]# find / -name defines.inc.php
    /usr/share/zabbix/include/defines.inc.php
    

    查看 Zabbix 字體文件中用的字體

    [root@zabbix~]# grep "ZBX_FONTPATH" /usr/share/zabbix/include/defines.inc.php
    define('ZBX_FONTPATH', realpath('assets/fonts'));//where to search for font(GD>2.0.18)
    [root@zabbix~]# grep "ZBX_GRAPH_FONT_NAME" /usr/share/zabbix/include/defines.inc.php
    define('ZBX_GRAPH_FONT_NAME','graphfont');//fontfile name
    

    查找 Zabbix 的字體文件位置

    [root@zabbix ~]# find / -name graphfont.ttf
    /usr/share/zabbix/assets/fonts/graphfont.ttf
    

    替換字體

    # 上傳msyhl.ttc文件到/usr/share/zabbix/assets/fonts目錄
    [root@zabbix ~]# cd /usr/share/zabbix/assets/fonts
    [root@zabbix fonts]# ls
    graphfont.ttf msyh1.ttc
    [root@zabbix fonts]# ln -snf msyh1.ttc graphfont.ttf
    
    • 備注:-s表示創建軟連接;-f表示強行刪除已存在目標文件;-n表示把符號連接的目的目錄視為一般文件。
    • 操作后刷新頁面觀察效果。

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/news/916013.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/news/916013.shtml
    英文地址,請注明出處:http://en.pswp.cn/news/916013.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    Silly Tavern 教程②:首次啟動與基礎設置

    本文介紹 Silly Tavern 首次啟動后的基礎設置,包括語言切換與 AI 后端連接,重點推薦 無需付費即可使用的免費或低成本方案,涵蓋 Groq、AI Horde、Gemini 和 OpenRouter。 一、啟動 Silly Tavern 并訪問界面 完成安裝后,執行以下命…

    C#解析JSON數據全攻略

    還在為C#處理網絡API返回的復雜JSON數據頭疼嗎?據統計,90%的開發者都曾在JSON解析上栽過跟頭! 本文將手把手教你用C#輕松玩轉JSON數據:- HttpClient獲取網絡JSON數據- System.Text.Json動態解析技巧- 強類型模型轉換實戰- 特殊字…

    8-大語言模型—指令理解:基于 LoRA 的大語言模型指令微調框架

    目錄 1、模型上下文窗口 1.1、增加上下文窗口的微調(Fine-tuning for Longer Context) 1.1.1、 核心目標 1.1.2、關鍵步驟 (1)數據準備:構建長文本訓練集 (2)微調策略:分階段適…

    工業數據中臺:PLC、SCADA、MES 的實時協同架構

    在智能制造升級過程中,工業數據的互聯互通是突破生產效率瓶頸的關鍵。PLC(可編程邏輯控制器)掌控著設備的實時運行參數,SCADA(監控與數據采集系統)負責車間級的狀態監控,MES(制造執行…

    【Golang】Go語言基礎語法

    Go語言基礎語法 文章目錄Go語言基礎語法一、Go標記二、行分隔符三、注釋四、標識符五、字符串連接六、關鍵字七、Go語言的空格八、格式化字符串一、Go標記 Go程序可以由多個標記組成嗎,可以是關鍵字、標識符、常量、字符串、符號。如下Go語句由6個標記組成&#xf…

    WebRTC指紋——深度分析(中篇)

    1. 引言 在上篇中,我們建立了WebRTC審查規避系統分析的理論基礎,探討了技術背景和威脅模型。中篇將深入分析WebRTC協議棧中的具體識別特征,通過對多個主流WebRTC應用的實際協議分析,揭示不同實現之間存在的顯著差異。 這些協議層面的特征差異構成了審查系統進行指紋識別的…

    谷粒商城篇章13--P340-P360--k8s/KubeSphere【高可用集群篇一】

    1 k8s 1.1 簡介 Kubernetes 簡稱 k8s。 是用于自動部署, 擴展和管理容器化應用程序的開源系統。 中文官網: https://kubernetes.io/zh/ 中文社區: https://www.kubernetes.org.cn/ 官方文檔: https://kubernetes.io/zh/docs/h…

    從零搭建 OpenCV 項目(新手向)-- 第二天 OpenCV圖像預處理(一)

    目錄 一、圖像翻轉(鏡像翻轉) 1. 定義 2. OpenCV 函數 3. 數學表達 二、圖像仿射變換 1. 定義 2. 仿射變換的基本原理 3. OpenCV 函數 4. 圖像旋轉 5. 圖像平移 6. 圖像縮放 7. 圖像剪切 8. 為什么會出現黑色背景? 三、圖像色彩…

    貪心算法Day6學習心得

    第一道:738. 單調遞增的數字 - 力扣(LeetCode) 這道題目暴力算法肯定是最容易想到的,先附上暴力的代碼: class Solution { private:// 判斷一個數字的各位上是否是遞增bool checkNum(int num) {int max 10;while (n…

    數據的評估與清洗篇---上手清理索引和列名

    重命名索引和列名 在讀取數據時,如果我們發現數據的索引或者列名亂七八糟的,可以使用DataFrame的rename方法對它們進行重新命名。 df1.rename(index={...})df1.rename(columns={...}) 重命名索引 如果想改索引就把可選參數index指定為一個字典,針對索引,把要修改…

    【ICML2025】時間序列|TimePro:炸裂!線性復雜度實現高效長程多元時間序列預測!

    論文地址:https://arxiv.org/pdf/2505.20774 代碼地址:https://github.com/xwmaxwma/TimePro 為了更好地理解時間序列模型的理論與實現,推薦參考UP “ThePPP時間序列” 的教學視頻。該系列內容系統介紹了時間序列相關知識,并提供配…

    2025真實面試試題分析-iOS客戶端開發

    以下是對iOS客戶端開發工程師面試問題的分類整理、領域占比分析及高頻問題精選(基于??85道問題,總出現次數118次??)。按技術領域整合為??7大核心類別??,按占比排序并精選高頻問題標注優先級(1-5🌟&…

    計算機網絡簡答題(大雪圣期末參考資料)

    1、網絡性能指標/計算機網絡有哪些常用的性能指標?答:速率,帶寬,吞吐量,時延(發送時延、傳播時延、處理時延、排隊時延),時延帶寬積,往返時間RTT和信道(或網絡…

    紅寶書單詞學習筆記 list 76-100

    list 76NO.WordMeaning1staleadj. 不新鮮的;陳腐的2stalln. 小隔間;攤位;牲畜棚;v. 停頓;(使) 熄火;故意拖延3staplen. 訂書釘;主要產品;主要部分;主食;v. 用…

    Vue3 學習教程,從入門到精通,Vue 3 計算屬性(Computed Properties)知識點詳解與案例代碼(15)

    Vue 3 計算屬性(Computed Properties)知識點詳解與案例代碼 在 Vue 3 中,計算屬性(Computed Properties) 是用于基于響應式數據派生新數據的一種方式。計算屬性具有以下特點: 緩存性:只有在依賴…

    2.5 PN-PTCP

    Pro?net Precision Transparent Clock Protocol (PN-PTCP) PN-PTCP(精確透明時鐘協議)是一種專用于 Profinet 的 二層協議,其作用是為網絡中的設備提供高精度的時間同步。用于實現網絡設備的高精度時間同步。

    WordPress與Typecho站點CloudFlare緩存優化實戰指南

    文章目錄 WordPress與Typecho站點CloudFlare緩存加速全攻略 引言 一、CloudFlare緩存基礎原理 1.1 CloudFlare工作流程 1.2 緩存類型 二、基礎配置指南 2.1 CloudFlare賬戶設置 2.2 緩存配置 2.3 頁面規則設置 三、高級緩存策略 3.1 動態內容緩存 WordPress方案: Typecho方案:…

    【OpenCV實現多圖像拼接】

    文章目錄1 OpenCV 圖像拼接核心原理2 OpenCV 圖像拼接實現代碼方法一:使用 OpenCV 內置 Stitcher 類(推薦)方法二:手動實現核心步驟關鍵參數說明3 常見問題處理4 增量式圖像拼接(Incremental Image Stitching&#xff…

    haproxy 算法

    一、靜態算法按照事先定義好的規則輪詢公平調度,不關心后端服務器的當前負載、連接數和響應速度 等,且無法實時修改權重(只能為0和1,不支持其它值),只能靠重啟HAProxy生效。(不管后端死活)1.1、static-rr:基于權重的輪…

    Go 的第一類對象與閉包

    1. Go 的第一類對象(First-Class Citizens) 什么是第一類對象? 第一類對象是指能夠像 普通值 一樣使用的對象,通常可以賦值給變量、傳遞給函數、作為函數返回值等。在很多編程語言中,函數本身不被視為第一類對象&#…