目录

一、监控系统的功能概述

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

    Profinet 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) 什么是第一类对象? 第一类对象是指能够像 普通值 一样使用的对象,通常可以赋值给变量、传递给函数、作为函数返回值等。在很多编程语言中,函数本身不被视为第一类对象&#…