Zabbix 企业级高级应用

目录

一、Zabbix 监控基础与核心价值

二、网络自动发现:批量主机自动化管理

(一)网络自动发现的核心能力与局限

(二)网络自动发现完整流程

(三)网络自动发现配置步骤

1. 客户端(被监控节点)配置 Zabbix Agent

2. 创建网络发现规则

3. 创建自动发现动作

4. 配置验证

(四)主机名称显示优化(可选配置)

三、自动注册:Agent 主动上报的自动化方案

(一)自动注册与自动发现的核心差异

(二)自动注册配置步骤

1. 清理历史配置

2. 客户端(Agent)配置

3. 创建自动注册动作

4. 配置验证

四、应用服务监控:以 Nginx 为例

(一)Nginx 部署与状态配置

1. 部署 Nginx(server01 节点)

2. Nginx 监控指标与自定义 Key

(1)核心监控指标

(2)自定义 Key 的作用与配置

3. Web 端添加 Nginx 监控项

五、Zabbix 邮件报警:故障及时通知机制

(一)邮件报警核心组件

(二)邮件报警配置步骤

1. 配置告警媒介(以 Email 为例)

2. 配置用户报警媒介

3. 配置触发器动作

4. 报警验证

总结


一、Zabbix 监控基础与核心价值

在运维工作中,监控环节占比约 38%,其质量直接影响工作效率与稳定性。理想的监控应具备全自动化能力,包括主机自动添加、模板自动关联、故障自动告警等 ——Zabbix 正是满足这一需求的专业监控工具,可通过预设规则实现上述自动化操作。

本次实战环境的资源清单如下:

操作系统配置主机名IP 地址角色
openEuler 24.032C4Gzabbix192.168.207.137Zabbix 服务端
openEuler 24.032C4Gserver01192.168.207.138被监控节点
openEuler 24.032C4Gserver02192.168.207.139被监控节点

二、网络自动发现:批量主机自动化管理

网络自动发现是 Zabbix 实现主机自动化监控的核心功能之一,其核心价值在于降低运维成本、提升部署效率,尤其适用于规模较大或频繁变化的 IT 环境。

(一)网络自动发现的核心能力与局限

  1. 核心优势

    •  加快部署速度:无需手动添加主机,通过规则批量发现目标设备
    • 简化管理:自动关联模板、分组,减少人工操作
    • 适应动态环境:在设备频繁增减的场景中避免 “过度管理” 
  2. 发现依据
    网络自动发现基于以下信息判断目标设备:

    • IP 地址范围(需提前定义扫描网段)
    • 外部服务状态(如 FTP、SSH、WEB 等端口是否开放)
    • Zabbix agent 信息(仅支持未加密模式)
    • SNMP agent 信息
  3. 局限说明
    需注意的是,网络自动发现仅能实现主机和服务的发现,无法自动发现网络拓扑(如设备间连接关系)。

(二)网络自动发现完整流程

整个发现过程分为 4 个阶段,形成 “发现 - 动作 - 管理” 的闭环:

  1. 网络发现阶段
    发现模块定期扫描指定 IP 范围,检测到服务或主机时生成 “发现事件”(如 “检测到 192.168.207.138 开放 SSH 服务”)。

  2. 执行动作阶段
    基于发现事件触发预设动作,动作可根据设备类型、IP 地址、运行状态等条件精准执行(如 “仅对 192.168.207.138-139 网段的 Linux 主机执行操作”)。

  3. 创建主机阶段
    动作执行时可自动完成主机添加、主机组归类、模板关联(如关联 “Linux by Zabbix agent” 模板)等操作,无需人工干预。

  4. 移除主机阶段
    若已发现的主机脱离预设 IP 范围(如设备下线),Zabbix 会自动删除该主机记录(此功能从 Zabbix 2.4.0 版本开始支持)。

(三)网络自动发现配置步骤

1. 客户端(被监控节点)配置 Zabbix Agent

以 server01(192.168.207.138)为例:

  • 修改 Agent 配置文件:
    [root@server01 ~]# vim /etc/zabbix/zabbix_agentd.conf
    # 指向Zabbix服务端IP
    Server=192.168.207.137
    ServerActive=192.168.207.137
    # 定义主机名(需唯一)
    Hostname=server01
    
  • 重启 Agent 使配置生效:
    [root@server01 ~]# systemctl restart zabbix-agent
    
2. 创建网络发现规则

在 Zabbix Web 界面操作:

  • 路径:数据采集 → 自动发现 → 创建发现规则

  • 核心配置项(共 9 项):

    • 名称:自定义规则名称(如 “企业内网主机发现”)
    • 代理程序:选择 “无代理”(由 Server 直接执行)或指定 Zabbix proxy
    • IP 范围:支持 4 种格式(如单个 IP“192.168.207.138”、范围 “192.168.207.1-255”、子网 “192.168.207.0/24”、列表 “192.168.207.138,192.168.4.0/24”)
    • 更新间隔:定义扫描频率(如 60 秒,需平衡实时性与资源消耗)
    • 检查类型:选择 “Zabbix 客户端”,端口设为 10050(Agent 默认端口),键值设为 “system.uname”(获取系统信息)
    • 设备唯一性准则:选择 “IP 地址” 或 “主机名” 作为唯一标识,避免重复发现
    • 已启用:勾选以激活规则
  • 注意:若 IP 范围包含 1000 个地址,每次扫描会生成 1000 个事件,需合理规划范围以减少资源占用。

3. 创建自动发现动作

动作是连接 “发现事件” 与 “管理操作” 的桥梁:

  • 路径:告警 → 动作 → 发现动作 → 创建动作
  • 配置内容:
    • 动作参数:设置动作名称(如 “自动添加 Linux 主机”),并关联前文创建的发现规则(确保仅触发目标规则的事件)。
    • 操作设置:添加具体动作,推荐配置:
      • 添加主机(自动将发现的设备录入 Zabbix)
      • 添加到主机群组(如 “Linux servers”)
      • 链接到模板(如 “Linux by Zabbix agent”,可按需添加其他模板)。
4. 配置验证
  • 查看发现状态:路径 “监测 → 自动发现”,可看到已发现的主机列表(如 server01、server02)。
  • 查看监控状态:路径 “数据采集 → 主机”,确认主机已被添加且模板关联成功。

(四)主机名称显示优化(可选配置)

默认情况下,主机名称可能显示为 IP 地址,可通过以下方式优化:

  1. 修改 Agent 配置(以 server01 为例):

    [root@server01 ~]# vim /etc/zabbix/zabbix_agentd.conf
    # 注释原Hostname,启用自动获取主机名
    # Hostname=server01
    HostnameItem=system.hostname
    [root@server01 ~]# systemctl restart zabbix-agent
    
  2. 调整自动发现规则:
    在 “主机名称”“可见名称” 中选择 “Zabbix 客户端:system.hostname”,使名称显示为实际主机名(如 server01)。

三、自动注册:Agent 主动上报的自动化方案

(一)自动注册与自动发现的核心差异

对比维度自动发现自动注册
触发方式Server 扫描 IP 范围发现设备Agent 主动向 Server 发送注册请求
适用场景已知设备 IP 范围(如固定网段的服务器)未知 IP 范围(如动态分配 IP 的终端、临时设备)
依赖条件需预设 IP 范围、服务类型等信息仅需 Agent 知道 Zabbix Server 地址

自动注册的核心优势:当 Agent 的 IP 地址、操作系统版本等信息未知时,仍可通过 “Agent 主动上报” 实现自动化管理(前提是 Agent 已配置 Server 地址)。

(二)自动注册配置步骤

1. 清理历史配置

删除前文创建的自动发现规则、发现动作及自动发现的主机(避免冲突):

  • 路径:分别删除 “告警 → 动作” 中的发现动作、“数据采集 → 自动发现” 中的规则、“数据采集 → 主机” 中的对应主机。
2. 客户端(Agent)配置

以 server01 为例,修改配置文件:

[root@server01 ~]# vim /etc/zabbix/zabbix_agentd.conf
# 指向Server地址(必须正确,否则无法上报)
Server=192.168.207.137
ServerActive=192.168.207.137
Hostname=server01  # 可选,若未设置则使用默认主机名
  • 可选参数(按需配置):

    • HostnameItem=system.hostname:自动获取主机名(当 Hostname 未设置时生效)
    • HostMetadata=Linux:添加元数据标识(如 “Linux”“WebServer”,用于动作条件过滤)
    • HostMetadataItem=system.uname:自动获取元数据(如内核版本,当 HostMetadata 未设置时生效)。
  • 重启 Agent:[root@server01 ~]# systemctl restart zabbix-agent

3. 创建自动注册动作
  • 路径:告警 → 动作 → 自动注册动作 → 创建动作
  • 配置内容:
    • 动作名称:如 “接收 Linux Agent 注册”
    • 触发条件:可基于元数据过滤(如 “HostMetadata 包含 Linux”,仅接收 Linux 设备)
    • 操作设置:与自动发现动作一致,推荐配置 “添加主机 + 加入主机组 + 关联模板”。
4. 配置验证

路径 “数据采集 → 主机”,确认 server01 已被自动添加(Agent 启动后约 1-2 分钟生效,取决于上报频率)。

四、应用服务监控:以 Nginx 为例

Zabbix 可监控各类应用服务,以下以 Nginx 为例,详解从部署到监控的完整流程。

(一)Nginx 部署与状态配置

1. 部署 Nginx(server01 节点)
  • 配置 yum 源:

    [root@server01 ~]# cat > /etc/yum.repos.d/nginx.repo << "EOF"
    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/8/x86_64
    gpgcheck=0
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    [nginx-mainline]
    name=nginx mainline repo
    baseurl=http://nginx.org/packages/centos/8/x86_64
    gpgcheck=0
    enabled=0
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    EOF
    
  • 安装并启动 Nginx:

    [root@server01 ~]# dnf -y install nginx
    [root@server01 ~]# systemctl start nginx
    [root@server01 ~]# systemctl enable nginx
    
  • 开启状态统计(关键步骤):
    修改 Nginx 配置文件/etc/nginx/conf.d/default.conf,在server段添加:

    location /nginx_status {stub_status on;  # 开启状态统计access_log off;  # 关闭此路径的访问日志
    }
    

    重启 Nginx:systemctl restart nginx

  • 验证状态页:执行curl 127.0.0.1/nginx_status,应返回类似结果:

    Active connections: 1
    server accepts handled requests
    1 1 1
    Reading: 0 Writing: 1 Waiting: 0
    ```。
    
2. Nginx 监控指标与自定义 Key
(1)核心监控指标

需重点监控以下指标,覆盖 Nginx 运行全状态:

  • 连接数:Active connections(活跃连接数)、Waiting(等待连接数)等
  • 请求处理:accepts(总连接数)、handled(成功握手数)、requests(总请求数)等
  • 服务可用性:端口 80 是否存活(判断服务是否运行)
  • 资源使用:Nginx 进程数、磁盘剩余空间等。
(2)自定义 Key 的作用与配置

Zabbix 内置 Key 可监控基础指标(如 CPU、内存),但 Nginx 专项指标(如活跃连接数)需通过自定义 Key 获取。Key 是 Zabbix 识别监控项的唯一标识,可关联脚本获取特定数据。

配置步骤:

  1. 创建监控脚本(用于提取 Nginx 状态):

    [root@server01 ~]# vim /etc/zabbix/nginx-status.sh
    #!/bin/bash
    NGINX_PORT=80
    NGINX_COMMAND=$1
    # 定义获取各指标的函数
    nginx_active(){curl -s "http://127.0.0.1:$NGINX_PORT/nginx_status/" | awk '/Active/{print $3}'
    }
    nginx_reading(){curl -s "http://127.0.0.1:$NGINX_PORT/nginx_status/" | awk '/Reading/{print $2}'
    }
    # 其他指标(writing、waiting等)函数省略,格式同上
    # 根据参数执行对应函数
    case $NGINX_COMMAND inactive) nginx_active;;reading) nginx_reading;;# 其他参数(writing、waiting等)省略*) echo "USAGE: $0 {active|reading|writing|waiting|accepts|handled|requests}"
    esac
    
  2. 赋予脚本执行权限:
    [root@server01 ~]# chmod +x /etc/zabbix/nginx-status.sh

  3. 配置 Agent 关联脚本:
    修改/etc/zabbix/zabbix_agentd.conf

    # 开启自定义Key(默认关闭)
    UnsafeUserParameters=1
    # 定义Key:nginx_status为Key名称,脚本路径及参数关联
    UserParameter=nginx_status[*],/etc/zabbix/nginx-status.sh $1
    

    重启 Agent:systemctl restart zabbix-agent

  4. 测试自定义 Key:在 Zabbix Server 执行(验证能否获取数据):
    [root@zabbix ~]# zabbix_get -s 192.168.207.138 -k nginx_status[active]
    若返回数字(如 1),说明配置成功。

3. Web 端添加 Nginx 监控项

通过模板统一管理监控项,步骤如下:

  • 路径:数据采集 → 模板 → 创建模板(如 “Nginx-status”)
  • 添加监控项:在模板中创建以下监控项(Key 需与配置一致):
监控项名称Key说明
nginx activenginx_status[active]活跃连接数
nginx readingnginx_status[reading]读取客户端请求数
nginx writingnginx_status[writing]向客户端写入响应数
nginx waitingnginx_status[waiting]等待客户端请求数
nginx acceptsnginx_status[accepts]总连接数
nginx handlednginx_status[handled]成功握手数
nginx requestsnginx_status[requests]总请求数
nginx portnet.tcp.port[,80]80 端口存活状态(1 为存活)
nginx procproc.num[nginx]Nginx 进程数
nginx fsvfs.fs.size[/,pfree]根目录剩余空间占比
  • 应用模板:将模板关联到 server01 主机,完成监控配置。

五、Zabbix 邮件报警:故障及时通知机制

当监控指标触发阈值(如 Nginx 端口 down)时,Zabbix 需自动发送告警,邮件是最常用的告警方式。

(一)邮件报警核心组件

报警流程依赖三个核心组件,缺一不可:

  1. 告警媒介:信息传递渠道(如邮箱),需配置发送服务器、认证信息等。
  2. 触发器:阈值判断规则(如 “nginx port=0(端口 down)”),触发时生成事件。
  3. 动作:事件触发后执行的操作(如 “向 Admin 发送邮件”)。

(二)邮件报警配置步骤

1. 配置告警媒介(以 Email 为例)
  • 路径:告警 → 媒介 → 选择 “Email” → 编辑
  • 核心配置:
    • SMTP 服务器:如 “smtp.qq.com”(QQ 邮箱)、“smtp.163.com”(网易邮箱)
    • SMTP 端口:465(SSL 加密,推荐)
    • 发件人邮箱:如 “xxx@qq.com”
    • 认证信息:用户名填发件人邮箱,密码需填邮箱授权码(非登录密码,需在邮箱官网开启 SMTP 并获取)。
  • 测试媒介:配置完成后发送测试邮件,确认接收正常。
2. 配置用户报警媒介

指定接收告警的用户及联系方式:

  • 路径:用户 → 用户 → 选择 “Admin” → 报警媒介 → 添加
  • 配置:选择 “Email” 媒介,填写接收邮箱(如 “admin@example.com”),设置接收时间(如 “00:00-24:00” 全时段)。
3. 配置触发器动作

定义 “触发条件” 与 “告警操作”:

  • 路径:告警 → 动作 → 触发器动作 → 创建动作
  • 配置内容:
    • 动作名称:如 “Nginx 故障告警”
    • 触发条件:选择前文创建的 Nginx 监控项(如 “nginx port=0”,即端口 80down)
    • 操作设置:添加操作 “发送消息”,选择接收用户(如 Admin)、消息类型(Email)、消息内容(如 “Nginx 服务异常,IP:192.168.207.138”)。
4. 报警验证

手动停止 server01 的 Nginx 服务:systemctl stop nginx

  • 触发检查:Zabbix 会检测到 “nginx port=0”,触发告警。
  • 结果验证:接收邮箱应收到告警邮件,内容包含故障信息。

总结

Zabbix 通过 “网络自动发现”“自动注册” 实现主机自动化管理,通过 “自定义 Key” 拓展监控维度,通过 “邮件报警” 实现故障及时通知,形成从 “发现” 到 “监控” 再到 “告警” 的完整闭环。掌握这些高级应用,可大幅提升运维效率,满足企业级监控需求。实际使用中需根据场景选择自动发现或自动注册(已知 IP 用发现,未知 IP 用注册),并合理配置监控项与告警阈值,确保监控精准、告警及时。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/90102.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/90102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

行业分类表sql

1.创建行业表行业信息表(hy_industries)名类型长度小数点Not Null虚拟键默认值注释industries_idintTRUEFALSETRUE行业IDindustry_codevarchar5FALSEFALSEFALSE行业编码industry_namevarchar100FALSEFALSEFALSE行业名称parent_idvarchar50FALSEFALSEFALSE父级行业ID(顶级为NULL…

PPIO × Lemon AI:一键解锁全流程自动化开发能力

传统开发需手动编写代码、调试及测试&#xff0c;耗时且依赖技术能力。AI Agent 可以帮助开发者进行高效开发&#xff0c;从需求理解到代码生成、测试、部署一站式完成。Lemon AI是一款开源的通用智能体&#xff0c;能够实现从需求计划到成果交付全流程自动化。它可以在虚拟环境…

基于单片机无线防丢/儿童防丢报警器

传送门 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目速选一览表 &#x1f449;&#x1f449;&#x1f449;&#x1f449;其他作品题目功能速览 概述 本设计实现了一种基于单片机的无线防丢报警系统&#xff0c;主要用于防止贵重物品&#xff08;如…

50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | NotesApp(便签笔记组件)

&#x1f4c5; 我们继续 50 个小项目挑战&#xff01;—— NotesApp组件 仓库地址&#xff1a;https://github.com/SunACong/50-vue-projects 项目预览地址&#xff1a;https://50-vue-projects.vercel.app/。 使用 Vue 3 的 Composition API 搭配 TailwindCSS 和 marked 库&…

基于JAVA实现基于“obj--html--pdf” 的PDF格式文本生成

背景&#xff1a;因一个特定的项目需要&#xff0c;将java对象内容以特定样式的PDF格式输出&#xff0c;查看了很多文档&#xff0c;有收费的、免费的、基础集成的。收费的工具就表现突出&#xff0c;免费的工具基本很难满足需求&#xff0c;故着手采用基础集成方案。过程中尝试…

Laravel 静态方法的合理使用考量【超详细】

Laravel 静态方法的合理使用考量 在 Laravel 开发中&#xff0c;静态方法的使用需要谨慎权衡。本文将从多个维度分析静态方法的适用场景与注意事项&#xff0c;帮助开发者在保持代码简洁性的同时&#xff0c;确保可维护性和可测试性。 一、静态方法的本质与特性 静态方法属于类…

在本地127.0.0.1上跨实例访问远程数据库

1.确保可以和远程目标库连接通畅2.确保开启了sqlserver的TCP/IP3.创建LInked server-------先删除掉已存在的Remote203 IF EXISTS (SELECT 1 FROM sys.servers WHERE name Remote203) BEGINEXEC sp_dropserver Remote203, droplogins; END GO ------------创建链接 EXEC sp_ad…

Freemarker实现下载word可能遇到的问题

73万字的Java面试题库【全网最详细-找工作/实习必备神器】&#xff1a; https://mp.weixin.qq.com/mp/appmsgalbum?__bizMzE5MTY1NzczOA&actiongetalbum&album_id4057608455186808839 Java面试题库ps&#xff1a;网上面试题多而杂&#xff0c;自己整理了一套面试题&a…

涉及海量数据的查询SQL建议使用“数据库函数”封装并调用

一、问题描述生产环境中&#xff0c;核心业务表数据量随业务增长迅速膨胀&#xff0c;原统计查询SQL因执行计划劣化、索引失效而突然变慢。若按传统流程修复&#xff0c;需要优化SQL、测试、重新打包、发版&#xff0c;并且SQL优化往往需要多轮迭代、持续打磨&#xff1b;若每次…

OBLoader和OBDumper导数工具介绍

OBLoader和OBDumper导数工具介绍使用指南产品功能使用须知使用示例旁路导入性能调优导入性能优化导出性能优化数据处理控制文件预处理函数条件表达式注意事项使用指南 产品功能 &#x1f418; OBLOADER是什么&#xff1a; Java语言开发的客户端工具&#xff0c;仅适用于Ocea…

Jenkins+Docker+Git实现自动化CI/CD

你是否还在手动构建、测试、部署过程中频繁等待&#xff1f;或者担心“我本地没问题&#xff0c;部署却报错”&#xff1f;在敏捷开发和 DevOps 时代&#xff0c;**持续集成与持续交付&#xff08;CI/CD&#xff09;**变得至关重要。将 Jenkins、Docker、Git 三者结合&#xff…

Apache Ignite 的 SQL 功能和分布式查询机制

这段内容讲的是 Apache Ignite 的 SQL 功能和分布式查询机制。我们可以从几个关键点来理解&#xff1a;一、Ignite 是一个分布式 SQL 数据库 ✅ 特点&#xff1a; 符合 ANSI-99 SQL 标准水平扩展&#xff08;可扩展到多个节点&#xff09;容错&#xff08;fault-tolerant&#…

C++中的deque容器

deque容器基本概念功能&#xff1a;双端数组&#xff0c;可以对头端进行插入和删除操作deque与vector区别&#xff1a;vector对于头部的插入删除掉率低&#xff0c;数据量越大&#xff0c;效率越低deque相对而言&#xff0c;对头部的插入删除速度会比vector快vetcor访问元素时的…

闲庭信步使用图像验证平台加速FPGA的开发:第三十课——车牌识别的FPGA实现(2)实现车牌定位

&#xff08;本系列只需要modelsim即可完成数字图像的处理&#xff0c;每个工程都搭建了全自动化的仿真环境&#xff0c;只需要双击top_tb.bat文件就可以完成整个的仿真&#xff0c;大大降低了初学者的门槛&#xff01;&#xff01;&#xff01;&#xff01;如需要该系列的工程…

前端性能优化:从“龟速“到“闪电“的终极加速指南

一、性能指标:你的网站"体检报告" 📊 1. 核心Web指标(Google排名因素) 指标 全称 优秀标准 优化方向 LCP 最大内容绘制 ≤2.5s 关键资源预加载 FID 首次输入延迟 ≤100ms 减少长任务 CLS 累计布局偏移 ≤0.1 预留图片尺寸 测量方法: // 使用web-vitals库测量…

Linux 重定向和缓冲区

序言&#xff1a; 前面在Linux 基础文件IO操作-CSDN博客这篇博客里说了很多函数无论是在语言层还是在系统调用的方面。在调用系统调用open的时候会返回一个整型&#xff0c;在write传参的时候第一个参数是一个叫fd的东西&#xff0c;这个是什么东西&#xff1f;这篇博客会详细…

web登录页面

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>简易登录页面</title><style>* {mar…

Java中关于线程池的解析

引语在学习了线程与多线程的相关知识后&#xff0c;我们已经能够实现在程序中使多个任务并行&#xff0c;但是我们在操作时候&#xff0c;往往每执行一个的任务就需要创建一个新的线程。这种方式在需要执行任务很多时不利于我们对线程的管理&#xff0c;且创建过多线程也非常占…

J2EE模式---前端控制器模式

前端控制器模式基础概念前端控制器模式&#xff08;Front Controller Pattern&#xff09;是一种结构型设计模式&#xff0c;其核心思想是将应用程序的所有请求集中到一个中央处理器&#xff08;前端控制器&#xff09;进行处理&#xff0c;由它负责接收请求、协调处理流程并返…

模块加载、ES、TS、Babel 浅析

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 &#x1f35a; 蓝桥云课签约作者、…