ruoyi-vue-pro 开发指南 ruoyi-vue-pro 开发指南
  • 萌新必读
  • 后端手册
  • 中间件手册
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
  • 运维手册
  • 前端手册 Vue 2.x
  • 前端手册 Vue 3.x
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
视频教程
  • Vue3 + element-plus (opens new window)
  • Vue3 + vben(ant-design-vue) (opens new window)
  • Vue2 + element-ui (opens new window)
微服务版 (opens new window)
作者博客 (opens new window)
GitHub (opens new window)
  • 萌新必读
  • 后端手册
  • 中间件手册
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
  • 运维手册
  • 前端手册 Vue 2.x
  • 前端手册 Vue 3.x
  • 工作流手册
  • 大屏手册
  • 支付手册
  • 会员手册
  • 商城手册
  • ERP 手册
  • CRM 手册
  • AI 大模型手册
  • IoT 物联网手册
  • 公众号手册
  • 系统手册
视频教程
  • Vue3 + element-plus (opens new window)
  • Vue3 + vben(ant-design-vue) (opens new window)
  • Vue2 + element-ui (opens new window)
微服务版 (opens new window)
作者博客 (opens new window)
GitHub (opens new window)
  • 萌新必读

    • 简介
    • 交流群
    • 视频教程
    • 功能列表
    • 快速启动(后端项目)
    • 快速启动(前端项目)
    • 接口文档
    • 技术选型
    • 项目结构
    • 代码热加载
    • 一键改包
    • 迁移模块(适合新项目)
    • 删除功能(以租户为例)
    • 表结构变更(版本升级)
    • 国产信创数据库(DM 达梦、大金、OpenGauss)
    • 如何去除 Redis 缓存
    • 内网穿透
    • 面试题、简历模版、简历优化
    • 项目外包
  • 后端手册

    • 新建模块
    • 代码生成【单表】(新增功能)
    • 代码生成【主子表】
    • 代码生成(树表)
    • 功能权限
    • 数据权限
    • 用户体系
    • 三方登录
    • OAuth 2.0(SSO 单点登录)
    • SaaS 多租户【字段隔离】
    • SaaS 多租户【数据库隔离】
    • WebSocket 实时通信
    • 异常处理(错误码)
    • 参数校验、时间传参
    • 分页实现
    • VO 对象转换、数据翻译
    • 文件存储(上传下载)
    • Excel 导入导出
    • 操作日志、访问日志、异常日志
    • MyBatis 数据库
    • MyBatis 联表&分页查询
    • 多数据源(读写分离)、事务
    • Redis 缓存
    • 本地缓存
    • 异步任务
    • 分布式锁
    • 幂等性(防重复提交)
    • 请求限流(RateLimiter)
    • HTTP 接口签名(防篡改)
    • 单元测试
    • 验证码
    • 工具类 Util
    • 配置管理
    • 数据库文档
  • 中间件手册

    • 定时任务
    • 消息队列(内存)
    • 消息队列(Redis)
    • 消息队列(RocketMQ)
    • 消息队列(RabbitMQ)
    • 消息队列(Kafka)
    • 限流熔断
  • 工作流手册

    • 工作流演示
    • 功能开启
    • 工作流(达梦适配)
    • 审批接入(流程表单)
    • 审批接入(业务表单)
    • 流程设计器(BPMN)
    • 流程设计器(钉钉、飞书)
    • 选择审批人、发起人自选
    • 会签、或签、依次审批
    • 流程发起、取消、重新发起
    • 审批通过、不通过、驳回
    • 审批加签、减签
    • 审批转办、委派、抄送
    • 执行监听器、任务监听器
    • 流程表达式
    • 流程审批通知
  • 大屏手册

    • 报表设计器
    • 大屏设计器
  • 支付手册

    • 功能开启
    • 支付宝支付接入
    • 微信公众号支付接入
    • 微信小程序支付接入
    • 支付宝、微信退款接入
    • 支付宝转账接入
    • 微信转账接入
    • 钱包充值、支付、退款
    • 模拟支付、退款
  • 会员手册

    • 功能开启
    • 微信公众号登录
    • 微信小程序登录
    • 微信小程序订阅消息
    • 微信小程序码
    • 会员用户、标签、分组
    • 会员等级、积分、签到
  • 商城手册

    • 商城演示
    • 功能开启
    • 商城装修
    • 在线客服
    • 【商品】商品分类
    • 【商品】商品属性
    • 【商品】商品 SPU 与 SKU
    • 【商品】商品评价
    • 【交易】购物车
    • 【交易】交易订单
    • 【交易】售后退款
    • 【交易】快递发货
    • 【交易】门店自提
    • 【交易】分销返佣
    • 【营销】优惠劵
    • 【营销】积分商城
    • 【营销】拼团活动
    • 【营销】秒杀活动
    • 【营销】砍价活动
    • 【营销】满减送活动
    • 【营销】限时折扣
    • 【营销】内容管理
    • 【统计】会员、商品、交易统计
  • ERP手册

    • ERP 演示
    • 功能开启
    • 【产品】产品信息、分类、单位
    • 【库存】产品库存、库存明细
    • 【库存】其它入库、其它出库
    • 【库存】库存调拨、库存盘点
    • 【采购】采购订单、入库、退货
    • 【销售】销售订单、出库、退货
    • 【财务】采购付款、销售收款
  • CRM手册

    • CRM 演示
    • 功能开启
    • 【线索】线索管理
    • 【客户】客户管理、公海客户
    • 【商机】商机管理、商机状态
    • 【合同】合同管理、合同提醒
    • 【回款】回款管理、回款计划
    • 【产品】产品管理、产品分类
    • 【通用】数据权限
    • 【通用】跟进记录、待办事项
  • AI大模型手册

    • AI 大模型演示
    • 功能开启
    • AI 聊天对话
    • AI 绘画创作
    • AI 知识库
    • AI 音乐创作
    • AI 写作助手
    • AI 思维导图
    • AI 工具(function calling)
    • AI 工作流
    • Dify 工作流
    • FastGPT 工作流
    • Coze 智能体
    • 【模型接入】OpenAI
    • 【模型接入】通义千问
    • 【模型接入】DeepSeek
    • 【模型接入】字节豆包
    • 【模型接入】腾讯混元
    • 【模型接入】硅基流动
    • 【模型接入】MiniMax
    • 【模型接入】月之暗灭
    • 【模型接入】百川智能
    • 【模型接入】文心一言
    • 【模型接入】LLAMA
    • 【模型接入】智谱 GLM
    • 【模型接入】讯飞星火
    • 【模型接入】微软 OpenAI
    • 【模型接入】谷歌 Gemini
    • 【模型接入】Stable Diffusion
    • 【模型接入】Midjourney
    • 【模型接入】Suno
  • IoT物联网手册

    • 功能开启
  • 公众号手册

    • 功能开启
    • 公众号接入
    • 公众号粉丝
    • 公众号标签
    • 公众号消息
    • 自动回复
    • 公众号菜单
    • 公众号素材
    • 公众号图文
    • 公众号统计
  • 系统手册

    • 短信配置
    • 邮件配置
    • 站内信配置
    • 数据脱敏、字段权限
    • 敏感词
    • 地区 & IP 库
  • 运维手册

    • 开发环境
    • Linux 部署
    • Docker 部署
    • Jenkins 部署
    • 宝塔部署
    • HTTPS 证书
    • 服务监控
      • 1. Spring Boot Admin
        • 1.1 如何配置?
        • 1.2 如何使用?
        • 1.3 常见问题?
      • 2. SkyWalking
        • 2.1 如何配置?
        • 2.2 如何使用?
      • 3. 更多监控系统
        • 3.1 Prometheus
        • 3.2 ELK
        • 3.3 Sentry
  • 前端手册 Vue 3.x

    • 开发规范
    • 菜单路由
    • Icon 图标
    • 字典数据
    • 系统组件
    • 通用方法
    • 配置读取
    • CRUD 组件
    • 国际化
    • IDE 调试
    • 代码格式化
  • 前端手册 Vue 2.x

    • 开发规范
    • 菜单路由
    • Icon 图标
    • 字典数据
    • 系统组件
    • 通用方法
    • 配置读取
  • 更新日志

    • 【v2025-09】
    • 【v2025-08】
    • 【v2-6-1】2025-07-19
    • 【v2-6-0】2025-06-07
    • 【v2.5.0】2025-05-13
    • 【v2.4.2】2025-04-12
    • 【v2.4.1】2025-02-09
    • 【v2.4.0】2024-12-31
    • 【v2.3.0】2024-10-07
    • 【v2.2.0】2024-08-02
    • 【v2.1.0】2024-05-05
    • 【v2.0.1】2024-03-01
    • 【v2.0.0】2024-01-26
  • 开发指南
  • 运维手册
芋道源码
2022-04-16
目录

服务监控

系统使用 Spring Boot Admin 和 SkyWalking 实现后端服务的监控。

# 1. Spring Boot Admin

阅读 《芋道 Spring Boot 监控工具 Admin 入门》 (opens new window) 文章,入门 Spring Boot Admin。

注意,Spring Boot Admin 是内嵌在 yudao-server 后端项目中,无需单独启动。

# 1.1 如何配置?

① 【开启 Spring Boot Admin Client 客户端】修改 yudao-spring-boot-starter-monitor 模块的 pom.xml 依赖,将如下依赖打开(去掉 <optional>true</optional> 部分):

        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId> <!-- 实现 Spring Boot Admin Client 客户端 -->
        </dependency>

② 【开启 Spring Boot Admin Server 服务端】修改 yudao-module-infra 模块的 pom.xml 依赖,将如下依赖打开(去掉 <optional>true</optional> 部分):

        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId> <!-- 实现 Spring Boot Admin Server 服务端 -->
            <optional>true</optional>
        </dependency>

之后,使用 IDEA 刷新下 Maven 依赖!!!

# 1.2 如何使用?

① 访问 http://127.0.0.1:48080/admin/applications (opens new window) 地址,可以在 Spring Boot Admin 中,查看到应用与实例的列表。如下图所示:

应用 - 列表

② 点击 yudao-server 应用,再点击实例,可以查看到该实例的细节信息。如下图所示:

应用 - 明细

③ 点击 [日志 -> 日志文件] 菜单,查看该示例的日志内容。如下图所示:

应用 - 日志

点击 [日志 -> 日志文件] 菜单,可动态修改 Logger 的日志级别,方便排查线上的某些 BUG。如下图所示:

应用 - 日志

补充说明:也可以通过前端的 [基础设施 -> 监控中心 -> Java 监控] 菜单。

前端 [基础设施 -> 监控中心 -> Java 监控] 菜单,通过 iframe 内嵌后端 /admin/applications 路径。

如果你想自定义地址,可以前往 [基础设置 -> 配置管理] 菜单,设置 key 为 url.spring-boot-admin 配置项。

# 1.3 常见问题?

# 1.3.1 如何开启登录?

生产环境下,建议 Spring Boot Admin 开启“安全认证”的功能,避免出现安全事故。

由于项目本身已经使用 Spring Security 做安全认证,再额外配置 Spring Boot Admin 的“安全认证”有点麻烦。我自己是拓展 Spring Security 解决,预计需要改 2-3 个类 (opens new window),不是很建议。

那么怎么办呢?可以参考 《芋道 Spring Boot 监控工具 Admin 入门》 (opens new window) 文档,额外搭建一个 Spring Boot Admin 进程,然后项目接入它使用!

# 1.3.2 prod 生产环境下,后端部署多个 JVM 进程时,spring.boot.admin.client.url 填写哪个 IP?

  • 第一步,在 Nginx 中配置 /admin 路径,转发到多个 JVM 的 IP 上,使用 backup (opens new window) 参数实现主备。注意,该转发只允许内网访问,避免安全问题!!!
  • 第二步,设置 spring.boot.admin.client.url 配置项,为 Nginx 的 内置 IP/admin 地址。

# 1.3.3 Spring Boot Admin Server 是否可以独立?

确实,也是非常推荐 Spring Boot Admin Server 的。推荐阅读 《芋道 Spring Boot 监控工具 Admin 入门》 (opens new window) 文章,单独搭建 Spring Boot Admin Server 服务端。

然后,参考「1.3.2」问题,将 spring.boot.admin.client.url 配置项,为 Spring Boot Admin Server 的地址即可。

当然,原本项目只需要引入 spring-boot-admin-starter-client 依赖,不用引入 spring-boot-admin-starter-server 依赖!!!

# 2. SkyWalking

阅读 《芋道 SkyWalking 极简入门》 (opens new window) 文章,入门 SkyWalking。

注意,SkyWalking 需要单独启动,预计需要 4 核 8G 的硬件资源。

# 2.1 如何配置?

① 修改 yudao-spring-boot-starter-monitor 模块的 pom.xml 依赖,将如下依赖打开(去掉 <optional>true</optional> 部分):

        <!-- 监控相关 -->
        <dependency>
            <groupId>io.opentracing</groupId>
            <artifactId>opentracing-util</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-trace</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-logback-1.x</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-opentracing</artifactId>
        </dependency>

② 修改所有 logback-spring.xml 日志配置中,添加 SkyWalking 收集日志的 appender 配置。如下图所示:

 配置

【可选】补充说明:

默认情况下,控制台 STDOUT 和 FILE 的 Appender 日志输出,是不带 tid 链路追踪编号。

可以参考 SKYWALKING Appender 的 encoder 部分的配置,添加上 LayoutWrappingEncoder、TraceIdPatternLogbackLayout 部分,就是如下:

        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <pattern>[%tid] ${FILE_LOG_PATTERN}</pattern>
            </layout>
        </encoder>
  • <pattern> 里面的重点是 [%tid] 部分,并且要写对 CONSOLE_LOG_PATTERN 或 FILE_LOG_PATTERN 噢!!!

③ 修改 SkyWalking 在前端项目的 [基础设施 -> 监控中心 -> 链路追踪] 对应的 skywaling/index.vue (opens new window) 文件,调整为你 SkyWalking 的访问地址。如下图所示:

 文件

# 2.2 如何使用?

① 点击 [基础设施 -> 监控中心 -> 链路追踪] 菜单,可以看到 SkyWalking 提供的链路追踪。如下图所示:

基础设施 -> 链路追踪

② 点击 yudao-server 服务,查看该服务的监控信息。如下图所示:

 服务

补充说明:

前端 [基础设施 -> 监控中心 -> 链路追踪] 菜单,通过 iframe 内嵌 http://skywalking.iocoder.cn 路径。

如果你想自定义地址,可以前往 [基础设置 -> 配置管理] 菜单,设置 key 为 url.skywalking 配置项。

# 3. 更多监控系统

# 3.1 Prometheus

参见 《芋道 Prometheus + Grafana + Alertmanager 极简入门 》 (opens new window) 文章。

注意,修改项目的 yudao-spring-boot-starter-monitor 模块的 pom.xml 依赖,将如下依赖打开(去掉 <optional>true</optional> 部分):

        <!-- Micrometer 对 Prometheus 的支持 -->
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-registry-prometheus</artifactId>
            <optional>true</optional>
        </dependency>

# 3.2 ELK

参见 芋道 ELK(Elasticsearch + Logstash + Kibana) 极简入门 (opens new window) 文章。

# 3.3 Sentry

参见 《Sentry 极简入门 》 (opens new window) 文章。

HTTPS 证书
开发规范

← HTTPS 证书 开发规范→

Theme by Vdoing | Copyright © 2019-2025 芋道源码 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×