当前位置: 首页 > news >正文

部署 Zabbix 企业级分布式监控笔记

部署 Zabbix 企业级分布式监控笔记

一、监控系统基础

(一)监控的定义与类型

  • 定义:监控(Monitoring)包含检测和控制,核心是通过检测实现预防,确保 IT 系统稳定运行。
  • 计算机领域 5 种监控类型:
    • 应用性能监控(监控应用程序响应时间、错误率等)
    • 业务交易监控(监控业务流程如订单提交、支付完成等)
    • 网络性能监控(监控网络带宽、延迟、丢包等)
    • 操作系统监控(监控 OS 的 CPU、内存、磁盘等资源)
    • 数据库监控(补充原文,监控数据库连接数、慢查询等)

(二)监控的层次划分(从底层到上层)

  1. 基础设施监控
    • 负责对象:网络设备(交换机、路由器等)、机房环境(电源、温度等)。
    • 监控指标:网络流量、丢包率、错包率、设备连接数、硬件状态等。
    • 负责角色:运维人员,保障底层硬件稳定性以支撑上层服务。
  2. 系统层监控
    • 负责对象:物理机、虚拟机、操作系统(Linux/Windows 等)。
    • 监控指标:CPU 使用率、内存占用率、磁盘 IO 吞吐量、网络带宽利用率等。
  3. 应用层监控
    • 负责对象:Web 服务、API 接口、中间件、数据库等。
    • 监控指标:URL 访问延迟、接口调用成功率、慢 SQL 数量、缓存命中率、服务响应时间等。
  4. 业务监控
    • 负责对象:核心业务流程(如电商的登录、注册、下单、支付)。
    • 作用:为运营和管理层提供数据支持,辅助战略决策(如用户增长趋势、订单转化率等)。
  5. 端用户体验监控
    • 负责对象:用户端(浏览器、APP、PC 客户端)。
    • 监控指标:页面加载时间、返回错误码、不同地区 / 运营商的访问质量、客户端设备 / 浏览器版本分布等。

(三)监控系统实现原理

  1. 模块组成
    • 数据采集部分:通过 Agent、协议(SNMP 等)收集被监控对象的数据。
    • 数据处理部分:包含数据存储(数据库)、分析告警(触发阈值判断)、展示(Web 界面)。
  2. 采集协议
    • 专用客户端采集:基于私有协议或专属 Agent(如 Zabbix Agent)。
    • 公用协议采集:基于通用协议(SNMP、IPMI、SSH、Telnet 等),适用于无专属 Agent 的设备。
  3. 监控模式
    • 被动模式:Server 主动向 Agent 请求数据,对 Server 开销大,适合小规模环境。
    • 主动模式:Agent 主动向 Server 上报数据,对 Server 开销小,适合大规模环境。
  4. 代理架构(C/S/P 架构)
    • 适用场景:大规模、跨地域监控(如多机房、多网段)。
    • 作用:通过 Proxy 分摊 Server 压力,Proxy 收集数据后转发给 Server,减少网络传输开销。

(四)常见开源监控产品对比

产品名称核心特点
Zabbix企业级分布式监控,支持多类型设备 / 应用,功能全面(告警、绘图、自动发现等)
Prometheus+Grafana时序数据监控,适合云原生环境,Grafana 负责可视化,社区插件丰富
Cacti专注网络流量监控,基于 RRDTool 绘图,用户权限管理灵活
Nagios轻量监控工具,擅长服务状态检测,告警机制成熟,但配置较复杂
Checkmk高可扩展性,支持自动化配置,分基础版(免费)和企业版(增值功能)
OpenNMS基于 Java/XML,支持多协议数据收集,适合分布式网络监控
Netdata实时 Linux 性能监控,指标覆盖广,数据采集速度快
LibreNMS网络设备监控利器,支持自动发现网络拓扑,适配多厂商设备(Cisco、华为等)

二、Zabbix 系统概述

(一)初识 Zabbix

  • 定位:企业级分布式开源监控解决方案,基于 Web 界面,支持网络、服务器、应用等全栈监控。
  • 开发背景:由 Alexei Vladishev 创建,目前由 Zabbix SIA 维护,基于 GPL v2 协议开源(免费使用)。
  • 核心功能:
    • 监控对象:网络参数、服务器资源、虚拟机、数据库、Web 应用等。
    • 特性:灵活告警(邮件、短信等)、数据可视化(图表、拓扑图)、历史数据存储(支持容量规划)。
    • 适用场景:从小型企业到大型企业的 IT 基础设施监控。

(二)Zabbix 的功能特性

  1. 数据收集
    • 支持可用性 / 性能检测、多协议(SNMP、IPMI 等)、自定义检测规则。
    • 角色分工:Server(核心节点)、Proxy(代理节点)、Agent(客户端节点)。
  2. 灵活的阈值定义
    • 通过 “触发器(Trigger)” 自定义告警阈值,阈值规则存储在数据库中。
  3. 高级告警配置
    • 支持告警升级(多次通知未处理时升级接收人)、自定义告警内容(含宏变量)。
    • 可联动远程命令实现自动化修复(如重启服务、清理磁盘)。
  4. 可视化与报告
    • 实时绘图:内置绘图工具展示监控指标趋势。
    • 自定义视图:支持多指标聚合展示、网络拓扑图、自定义仪表盘。
  5. 自动化能力
    • 网络自动发现:自动识别新设备、新磁盘 / 网卡。
    • Agent 自动注册:新节点 Agent 启动后自动接入监控系统。
  6. 扩展性
    • Zabbix API:支持第三方系统集成(如自动化运维平台)。
    • 模板机制:通过模板快速批量配置监控项(支持继承)。

(三)Zabbix 角色及架构

  1. 核心角色
    • Zabbix Server:核心组件,接收 Agent/Proxy 的数据,处理告警、存储数据,提供 API 接口。
    • Zabbix Agent:部署在被监控节点,采集本地数据(CPU、内存等),支持主动 / 被动模式。
    • Zabbix Proxy:代理节点,用于大规模监控,收集数据后转发给 Server,减轻 Server 压力。
    • Zabbix Web:Web 管理界面(PHP 开发),用于配置监控、查看告警和图表。
  2. 整体架构
    • 流程:Agent/Proxy 采集数据 → 发送至 Server → Server 存储至数据库 → Web 界面展示 / 触发告警。
    • 端口:Server 默认端口 10051(接收数据),Agent 默认端口 10050(发送数据)。

三、Zabbix 部署流程(基于 openEuler 24.03)

(一)资源清单(分布式架构)

操作系统配置主机名IP 地址角色
openEuler 24.032C4Gzabbix192.168.10.105Zabbix Server(服务端)
openEuler 24.032C4Gproxy192.168.10.104Zabbix Proxy(代理端)
openEuler 24.032C4Gserver01192.168.10.101被监控节点 1
openEuler 24.032C4Gserver02192.168.10.102被监控节点 2

(二)基础环境配置(所有节点执行)

目的:统一环境,避免依赖冲突或通信障碍。

  1. 关闭防火墙

    [root@localhost~]# systemctl stop firewalld  # 临时关闭防火墙
    [root@localhost ~]# systemctl disable firewalld  # 禁用开机自启
    
    • 作用:避免防火墙拦截 Zabbix 组件间的通信(如 Server 与 Agent 的 10050/10051 端口)。
  2. 关闭 SELinux

    [root@localhost ~]# setenforce 0  # 临时关闭(立即生效)
    [root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config  # 永久关闭(需重启)
    
    • 作用:防止 SELinux 安全策略限制 Zabbix 进程的文件访问或端口通信。
  3. 时间同步

    [root@localhost ~]# timedatectl set-timezone Asia/Shanghai  # 设置时区为上海
    [root@localhost~]# chronyc sources -v  # 同步时间(依赖chrony服务)
    
    • 作用:确保所有节点时间一致,避免日志、告警时间混乱。
  4. 修改主机名

    [root@localhost ~]# hostnamectl set-hostname zabbix  # 分别设置为zabbix、proxy、server01、server02
    
    • 作用:通过主机名区分节点角色,便于管理和配置。

(三)部署 Zabbix Server(在 zabbix 节点执行)

目的:安装 Server 核心组件,配置数据库存储监控数据,启动服务并初始化 Web 界面。

  1. 添加 Zabbix 源

    [root@zabbix~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
    [root@zabbix ~]# dnf clean all  # 清理缓存,确保源生效
    
    • 作用:获取 Zabbix 6.4 版本的官方软件包。
  2. 安装依赖与 Server 组件

    # 安装Zabbix Server、Web界面、数据库驱动等
    [root@zabbix ~]# dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
    # 安装MySQL数据库(存储监控数据)
    [root@zabbix ~]# dnf -y install mysql-server-8.0.41 mysql
    # 安装SNMP依赖(支持SNMP协议监控)
    [root@zabbix ~]# 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 6.4.8 要求 MySQL 8.0.30+、Nginx 1.20+、PHP 7.4.0+。
  3. 配置数据库

    [root@zabbix ~]# systemctl enable mysqld --now  # 启动MySQL并设置开机自启
    [root@zabbix ~]# mysql -uroot  # 登录MySQL(初始无密码)
    

    执行以下 SQL 语句(设置密码、创建数据库和用户):

    ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';  # 设置root密码
    FLUSH PRIVILEGES;  # 刷新权限
    create database zabbix character set utf8mb4 collate utf8mb4_bin;  # 创建Zabbix主数据库
    create user zabbix@localhost identified by '123456';  # 创建Zabbix数据库用户
    grant all privileges on zabbix.* to zabbix@localhost;  # 授权
    create database zabbix_proxy character set utf8mb4 collate utf8mb4_bin;  # 创建Proxy数据库(供Proxy使用)
    create user zabbix@'%' identified by 'zabbix';  # 允许远程访问(Proxy节点需要)
    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;
    
  4. 导入 Zabbix 初始化数据

    # 导入Server核心数据表结构
    [root@zabbix ~]# zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix
    # 导入完成后关闭存储函数创建权限
    [root@zabbix ~]# mysql -uroot -p
    mysql> set global log_bin_trust_function_creators=0;
    mysql> quit;
    
    • 作用:初始化 Zabbix 所需的表结构(监控项、触发器、历史数据等表)。
  5. 配置 Zabbix Server

    [root@zabbix ~]# vim /etc/zabbix/zabbix_server.conf  # 编辑配置文件
    

    修改以下参数(约 129 行):

    DBPassword=zabbix  # 填写数据库用户zabbix的密码
    
    • 作用:配置 Server 与数据库的连接密码。
  6. 配置 Web 界面(Nginx)

    [root@zabbix ~]# vim /etc/nginx/conf.d/zabbix.conf  # 编辑Nginx配置
    

    取消注释并设置端口(避免与其他服务冲突):

    listen 8080;  # Web界面端口
    server_name 192.168.10.105;  # 填写Server节点IP
    
  7. 启动服务

    [root@zabbix ~]# systemctl restart zabbix-server zabbix-agent nginx php-fpm
    [root@zabbix ~]# systemctl enable zabbix-server zabbix-agent nginx php-fpm  # 设置开机自启
    

(四)Zabbix Web 界面初始化(浏览器操作)

  1. 访问 Web 界面
    • 地址:http://192.168.10.105:8080/ (Server 节点 IP + 配置的端口)
  2. 初始化步骤
    • 步骤 1:选择语言(如 “Chinese (zh_CN)”)。
    • 步骤 2:检查环境(确保所有依赖项满足,如有缺失需修复)。
    • 步骤 3:配置数据库连接(数据库类型选 MySQL,密码填 “zabbix”)。
    • 步骤 4:设置 Server 名称(默认即可)。
    • 步骤 5:确认配置并完成安装。
  3. 登录
    • 默认账号:Admin
    • 默认密码:zabbix

(五)部署 Zabbix Proxy(在 proxy 节点执行)

目的:部署代理节点,用于分担 Server 压力,收集被监控节点数据并转发给 Server。

  1. 添加 Zabbix 源(同 Server 步骤)

    [root@proxy~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
    [root@proxy ~]# dnf clean all
    
  2. 安装 Proxy 组件

    [root@proxy ~]# dnf -y install zabbix-proxy-mysql zabbix-sql-scripts zabbix-selinux-policy mysql
    [root@proxy~]# 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
    
  3. 导入 Proxy 初始化数据

    • Server 节点临时开启存储函数权限:

      [root@zabbix ~]# mysql -uroot -p
      mysql> set global log_bin_trust_function_creators=1;
      mysql> quit;
      
    • Proxy 节点导入数据(连接 Server 的数据库):

      # 读取 Zabbix Proxy 的数据库初始化 SQL 脚本
      cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql # 通过管道符将脚本内容传递给 mysql 命令执行
      |# 调用 mysql 客户端工具
      mysql # 指定字符集为 utf8mb4(支持emoji等特殊字符)
      --default-character-set=utf8mb4 # 指定连接数据库的用户名(zabbix_proxy)
      -uzabbix_proxy # 指定用户密码(123456,命令行显式密码有安全风险)
      -p123456 # 指定数据库服务器的IP地址(192.168.10.105)
      -h 192.168.10.105 # 指定要操作的数据库名称(zabbix_proxy)
      zabbix_proxy
      
    编辑proxy配置文件
    DBUser=zabbix_proxy
    DBPassword=123456
    DBHost=192.168.10.105
    DBName=zabbix_proxy
    Server=192.168.10.105
    
    一、参数含义
    1. DBUser=zabbix_proxy
      • 含义:Zabbix Proxy 连接数据库时使用的数据库用户名
      • 作用:用于数据库身份验证,该用户需拥有对DBName指定数据库的读写权限(如创建表、插入数据等)。
    2. DBPassword=123456
      • 含义:上述数据库用户(zabbix_proxy)对应的密码
      • 作用:与用户名配合完成数据库登录验证,确保只有授权用户能访问数据库。
    3. DBHost=192.168.10.105
      • 含义:数据库所在服务器的IP 地址(或主机名)。
      • 作用:指定 Proxy 连接数据库的目标地址(这里指向192.168.10.105这台机器上的数据库)。
    4. DBName=zabbix_proxy
      • 含义:Proxy 专用的数据库名称
      • 作用:明确 Proxy 存储监控数据的数据库,必须与 Zabbix Server 的数据库(通常名为zabbix)完全分离。
    5. Server=192.168.10.105
      • 含义:Zabbix Server 的IP 地址(或主机名)。
      • 作用:指定 Proxy 需要连接的 Server 地址,Proxy 会将收集到的监控数据发送到该 Server,并从 Server 同步配置信息。
    二、关键注意事项
    1. 数据库与 Server 的独立性
    • 数据库隔离DBName=zabbix_proxy必须是 Proxy 专用数据库,绝对不能与 Zabbix Server 的数据库(如zabbix)共用。两者表结构逻辑不同,共用会触发 “Zabbix proxy cannot work with a Zabbix server database” 错误(之前日志已出现)。
    • Server 与数据库的关系Server=192.168.10.105DBHost=192.168.10.105可以指向同一台机器(即 Server 和数据库部署在同一服务器),这是允许的,但数据库本身必须独立(名称不同)。
    2. 数据库权限配置

    需确保zabbix_proxy用户对zabbix_proxy数据库有完全权限,否则 Proxy 无法初始化表结构或写入数据。
    示例(MySQL 授权命令)

    -- 登录数据库后执行(替换Proxy服务器IP为实际地址)
    GRANT ALL PRIVILEGES ON zabbix_proxy.* TO 'zabbix_proxy'@'Proxy服务器IP' IDENTIFIED BY '123456';
    FLUSH PRIVILEGES;
    

    验证连接:在 Proxy 服务器上执行以下命令,测试能否成功登录数据库:

    mysql -h 192.168.10.105 -u zabbix_proxy -p123456 zabbix_proxy
    
    3. 与 Zabbix Server 的通信
    • 网络可达性:Proxy 服务器必须能访问Server=192.168.10.10510051 端口(Zabbix Server 默认端口),可通过以下命令测试:

      telnet 192.168.10.105 10051  # 能连接则端口开放
      
    • Server 端配置:Zabbix Server 需在前端(Web 界面)预先添加该 Proxy,且 Proxy 的Hostname参数需与 Server 中配置的 Proxy 名称完全一致(否则 Server 会拒绝 Proxy 的连接)。

    4. 安全性与权限
    • 密码安全DBPassword=123456为弱密码,生产环境建议修改为复杂密码(含大小写、数字、特殊字符),并限制配置文件权限:

      chmod 600 /etc/zabbix/zabbix_proxy.conf  # 仅root用户可读写
      chown zabbix:zabbix /etc/zabbix/zabbix_proxy.conf
      
    • 防火墙规则

      :确保 Proxy 服务器的防火墙允许:

      • 出站连接DBHost的数据库端口(如 MySQL 的 3306);
      • 出站连接Server的 10051 端口;
      • 入站接收 Agent 的 10050 端口(被动模式)。
    5. 初始化与启动
    • 数据库初始化

      :首次启动前,必须将 Proxy 专用的 SQL 脚本导入

      zabbix_proxy
      

      数据库(否则表结构缺失,启动失败):

      # 假设脚本路径为/usr/share/zabbix-sql-scripts/mysql/proxy.sql
      cat /usr/share/zabbix-sql-scripts/mysql/proxy.sql | mysql -h 192.168.10.105 -u zabbix_proxy -p123456 zabbix_proxy
      
    • 重启生效

      :修改配置后,需重启 Proxy 服务并检查日志:

      systemctl restart zabbix-proxy
      tail -f /var/log/zabbix/zabbix_proxy.log  # 确认无数据库或连接错误
      

    总结

    这些配置是 Proxy 正常工作的基础,核心要点是:数据库独立、权限正确、与 Server 通信畅通。按照上述注意事项验证后,若日志中显示 “Zabbix Proxy started”,则配置成功。

    三、验证步骤
    1. 确认zabbix_proxy数据库已创建并初始化表结构。
    2. 测试 Proxy 服务器到192.168.10.105的数据库连接:
      mysql -h 192.168.10.105 -u zabbix_proxy -p zabbix_proxy,输入密码后若能登录则连接正常。
    3. 重启 Proxy 服务后,查看日志是否仍有错误,若无则配置正确。

    关键说明:

    1. 整个命令的核心是将 proxy.sql 脚本中的表结构和初始数据导入到 zabbix_proxy 数据库
    2. 执行前需确保:
      • 目标 MySQL 服务器(192.168.10.105)已启动并可访问
      • 已创建 zabbix_proxy 数据库
      • 用户 zabbix_proxy 拥有该数据库的读写权限
    3. 命令行显式输入密码(-p123456)会有安全隐患,生产环境建议使用配置文件或交互式输入密码

    执行成功后,Zabbix Proxy 所需的数据库表结构就会被创建,可用于后续 Proxy 服务的配置。

    • Server 节点关闭权限:

      [root@zabbix ~]# mysql -uroot -p
      mysql> set global log_bin_trust_function_creators=0;
      mysql> quit;
      
  4. 配置 Zabbix Proxy

    [root@proxy ~]# vim /etc/zabbix/zabbix_proxy.conf
    

    修改以下参数:

    Server=192.168.10.105  # 指向Zabbix Server的IP
    Hostname=Zabbix proxy  # Proxy名称(需与Web界面配置一致)
    DBHost=192.168.10.105  # 数据库主机(Server节点IP)
    DBPassword=123456  # 数据库密码
    
  5. 启动 Proxy 服务

    [root@proxy ~]# systemctl start zabbix-proxy
    [root@proxy ~]# systemctl enable zabbix-proxy  # 开机自启
    
  6. Web 界面添加 Proxy

    • 路径:管理 → Proxy → 创建代理
    • 配置:名称填 “Zabbix proxy”(与配置文件一致),类型选 “主动式”。

(六)部署 Zabbix Agent(在 server01/server02 节点执行)

目的:在被监控节点部署 Agent,采集本地资源数据并发送给 Server 或 Proxy。

  1. 添加 Zabbix 源(同 Server 步骤)

    [root@server01~]# rpm -Uvh https://repo.zabbix.com/zabbix/6.4/rhel/9/x86_64/zabbix-release-latest-6.4.el9.noarch.rpm
    [root@server01~]# dnf clean all
    
  2. 安装 Agent

    [root@server01 ~]# dnf -y install zabbix-agent
    
  3. 配置 Agent

    [root@server01 ~]# vim /etc/zabbix/zabbix_agentd.conf
    

    修改以下参数:

    Server=192.168.10.105  # 指向Server或Proxy的IP(直接连Server则填Server IP,通过Proxy则填Proxy IP)
    ServerActive=192.168.10.105  # 主动模式下的目标IP(同Server)
    Hostname=server01  # 主机名(需与Web界面添加的主机名一致)
  4. 启动 Agent 服务

    [root@server01 ~]# systemctl start zabbix-agent
    [root@server01 ~]# systemctl enable zabbix-agent  # 开机自启
    
  5. Web 界面添加被监控主机

    • 直接连 Server:
      路径:数据采集 → 主机 → 创建主机
      配置:主机名填 “server01”,群组选 “Linux servers”,接口填 Agent 节点 IP(192.168.207.139),关联模板 “Template OS Linux”。
    • 通过 Proxy 连接:
      步骤同上,额外在 “由 Proxy 监测” 中选择已配置的 Proxy(Zabbix proxy)。

四、扩展:解决 Zabbix 图像字体显示问题(中文乱码)

问题:Zabbix 默认字体不支持中文,导致图表中中文显示为方块。

  1. 查找字体配置文件

    [root@zabbix ~]# find / -name defines.inc.php
    /usr/share/zabbix/include/defines.inc.php  # 字体配置核心文件
    
  2. 确认默认字体名称

    [root@zabbix~]# grep "ZBX_GRAPH_FONT_NAME" /usr/share/zabbix/include/defines.inc.php
    define('ZBX_GRAPH_FONT_NAME', 'graphfont');  # 默认字体文件名为graphfont.ttf
    
  3. 定位字体文件路径

    [root@zabbix ~]# find / -name graphfont.ttf
    /usr/share/zabbix/assets/fonts/graphfont.ttf  # 默认字体路径
    
  4. 替换为中文字体

    • 上传中文字体文件(如 msyh1.ttc,微软雅黑)到/usr/share/zabbix/assets/fonts/

    • 创建软链接替换默认字体:

      [root@zabbix fonts]# ln -snf msyh1.ttc graphfont.ttf  # 软链接指向中文字体
      
  5. 验证效果

    • 刷新 Web 界面,图表中的中文应正常显示。

通过以上步骤,可完成 Zabbix 企业级分布式监控系统的部署,实现对多节点、多类型资源的统一监控与告警。

http://www.lryc.cn/news/611551.html

相关文章:

  • 无人机开发分享——基于行为树的无人机集群机载自主决策算法框架搭建及开发
  • 分布式微服务--GateWay(1)
  • 3479. 水果成篮 III
  • Minio 高性能分布式对象存储
  • 分布式光伏气象站:安装与维护
  • 【论文分析】【Agent】SEW: Self-Evolving Agentic Workflows for Automated Code Generatio
  • 支持多网络协议的测试工具(postman被无视版)
  • 【概念学习】早期神经网络
  • ORACLE 19C建库时卡在46%、36%
  • Godot ------ 初级人物血条制作01
  • OpenAI开源大模型gpt-oss系列深度解析:从120B生产级到20B桌面级应用指南
  • Unity3D中的Controller:深入解析动画控制器的核心概念与应用
  • 【数据库】Oracle学习笔记整理之一:ORACLE的核心组成部分
  • 【YOLOv8改进 - C2f融合】C2f融合DBlock(Decoder Block):解码器块,去模糊和提升图像清晰度
  • 微信小程序最大层级跳转问题
  • [Oracle] SIGN()函数
  • RabbitMQ 全面指南:从基础概念到高级特性实现
  • Unix/Linux 系统编程中用于管理信号处理行为的核心概念或模型
  • 外观模式(Facade Pattern)及其应用场景
  • Leetcode-3488距离最小相等元素查询
  • 系统的缓存(buff/cache)是如何影响系统性能的?
  • 第五十篇:AI画家的“神经中枢”:ComfyUI的推理路径与缓存逻辑深度解析
  • 【Web安全】csrf、ssrf和xxe的区别
  • Python实现电商商品数据可视化分析系统开发实践
  • Qt 中实现多线程的两种方式及结合
  • Pytest项目_day05(requests加入headers)
  • 8.6 JavaWeb(请求响应 P67-P74)
  • 部署Web UI自动化测试平台:SeleniumFlaskTester
  • UI测试平台TestComplete的AI视觉引擎技术解析
  • QT+opencv+yolov8推理