• SpringBoot 整合 SkyWalking 8.X (包含 Logback 日志采集)


    准备工作

    参考项目: https://gitee.com/JavaLionLi/RuoYi-Cloud-Plus

    SkyWalking 服务搭建

    安装 elasticsearch 7.17.6 skywalking-oap 8.9.1 skywalking-ui 8.9.1
    这里使用 docker-compose 编排容器部署

    version: '3'
    
    services:
      elasticsearch:
        image: elasticsearch:7.17.6
        container_name: elasticsearch
        ports:
          - "9200:9200"
          - "9300:9300"
        environment:
          # 设置集群名称
          cluster.name: elasticsearch
          # 以单一节点模式启动
          discovery.type: single-node
          ES_JAVA_OPTS: "-Xms512m -Xmx512m"
        volumes:
          - /docker/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins
          - /docker/elk/elasticsearch/data:/usr/share/elasticsearch/data
          - /docker/elk/elasticsearch/logs:/usr/share/elasticsearch/logs
        network_mode: "host"
    
      sky-oap:
        image: apache/skywalking-oap-server:8.9.1
        container_name: sky-oap
        ports:
          - "11800:11800"
          - "12800:12800"
        environment:
          JAVA_OPTS: -Xms512m -Xmx1g
          #记录数据的有效期,单位天
          SW_CORE_RECORD_DATA_TTL: 7
          #分析指标数据的有效期,单位天
          SW_CORE_METRICS_DATA_TTL: 7
          SW_STORAGE: elasticsearch
          SW_STORAGE_ES_CLUSTER_NODES: 127.0.0.1:9200
          TZ: Asia/Shanghai
        network_mode: "host"
    
      sky-ui:
        image: apache/skywalking-ui:8.9.1
        container_name: sky-ui
        ports:
          - "18080:18080"
        environment:
          SW_OAP_ADDRESS: http://127.0.0.1:12800
          TZ: Asia/Shanghai
          JAVA_OPTS: "-Dserver.port=18080"
        depends_on:
          - sky-oap
        network_mode: "host"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    Agent 探针下载

    下载地址: https://skywalking.apache.org/downloads/
    注意这里下载的版本要和后续的maven依赖版本保持一致
    这里我们下载最新的8.12.0

    下载之后解压到D盘单独的目录 注意一定要全解压(每个文件都有作用)

    整合 Springboot

    整合链路分析

    idea对应的springboot启动方法内增加jvm参数

    -javaagent:D:\sky\skywalking-agent.jar
    -Dskywalking.agent.service_name=ruoyi-auth
    -Dskywalking.collector.backend_service=127.0.0.1:11800
    
    • 1
    • 2
    • 3

    javaagent 探针对应的盘符位置
    service_name 服务名
    backend_service skywalking的地址

    启动服务

    查看最上面的扫描日志 是否扫描了探针插件

    进入UI界面

    点击右上角 设置自动更新

    几秒后 收集到了对应服务的数据

    整合 logback 日志采集

    增加 maven 依赖

    注意此处版本需与下载的 agent 探针版本对应

    
    <dependency>
        <groupId>org.apache.skywalkinggroupId>
        <artifactId>apm-toolkit-logback-1.xartifactId>
        <version>8.12.0version>
    dependency>
    <dependency>
        <groupId>org.apache.skywalkinggroupId>
        <artifactId>apm-toolkit-traceartifactId>
        <version>8.12.0version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    增加 logback.xml 配置

    
    <appender name="sky_log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
        <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
            <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                <pattern>[%tid] ${console.log.pattern}pattern>
            layout>
            <charset>utf-8charset>
        encoder>
    appender>
    
    <root level="info">
        <appender-ref ref="sky_log"/>
    root>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    启动服务查看控制台

    日志成功推送

  • 相关阅读:
    创新YOLOv8改进:结合全新可变形大核注意力(D-LKA Attention)实现多尺度目标涨点
    Vue 前端代码风格指南
    Golang开发--sync.WaitGroup
    【无标题】
    浅谈VR AR MR XR CPS DT
    会计凭证概述、原始凭证、原始凭证的种类、原始凭证的基本内容、原始凭证的填制要求、原始凭证的审核
    SpringBoot+Vue+ElementUI实现文件上传
    CAS(Compare and swap)比较并交换算法解析
    MySQL内部存储代码常用实现方式
    FPGA静态时序分析与约束(四)、时序约束
  • 原文地址:https://blog.csdn.net/weixin_40461281/article/details/127656534