• 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

    启动服务查看控制台

    日志成功推送

  • 相关阅读:
    密集计算场景下的 JNI 实战
    【编程题 】抄送列表(详细注释 易懂)
    Fortify-解决中文乱码
    java框架面试题总结
    显卡、GPU、CPU、CUDA、显存、RTX/GTX及查看方式
    【数据分享】成都市出租车GPS数据~
    Dubbo-Dubbo 动态配置中心
    Linux系列之比较命令
    Airtest新手升级:一个相对完整的纯.py脚本是怎样子的
    聊聊公众号最让我不爽的两个痛点
  • 原文地址:https://blog.csdn.net/weixin_40461281/article/details/127656534