前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >springboot 日志跟踪(skywalking)

springboot 日志跟踪(skywalking)

作者头像
张云飞Vir
发布2022-09-29 12:24:28
1.6K0
发布2022-09-29 12:24:28
举报
文章被收录于专栏:写代码和思考写代码和思考

1、背景

上了 springboot 微服务框架后会有很多微服务,每次都到单个微服务自己的日志海洋里去找需要很大经理, 日志跟踪就会成为一个麻烦。我们尝试来寻找一个简化方案

skywalking 可以在不修改任何代码的情况下,帮你生成调用跟踪链路,而且描述了各个链路的调用时长,相关日志。非常的强大。

2、skywalking 介绍

skywalking,分布式系统的应用程序性能监控工具,专为微服务、云原生和基于容器的 (Kubernetes) 架构而设计。

官网:https://skywalking.apache.org/ github: https://github.com/apache/skywalking

官方文档:https://skywalking.apache.org/docs/main/latest/readme/

Skywalking相比于zipkin还是有很大的优势的,如下:

skywalking采用字节码增强的技术实现代码无侵入,zipKin代码侵入性比较高 skywalking功能比较丰富,报表统计,UI界面更加人性化

组成: 探测器(Probe):收集数据并根据 SkyWalking 要求重新格式化(不同的探测器支持不同的来源)。 平台后端(Platform backend):支持数据聚合、分析和流式处理,包括跟踪、度量和日志。 存储(Storage):通过开放/可插入接口存储 SkyWalking 数据。您可以选择现有的实现,例如 ElasticSearch、H2、MySQL、TiDB、InfluxDB,也可以自己实现。欢迎为新的存储实现者打补丁! UI(UI):是一个高度可定制的基于 Web 的界面,允许 SkyWalking 最终用户可视化和管理 SkyWalking 数据。

安装和部署

https://skywalking.apache.org/downloads/ 选择 SkyWalking APM 下载。

参考: https://skyapm.github.io/document-cn-translation-of-skywalking/zh/8.0.0/setup/backend/backend-ui-setup.html

配置文件

后端服务的配置文件在 config 目录下,主要配置文件是 application.yml。

启动

SkyWalking 相关的启动脚本都在 bin 目录下。

如果是第一次使用,则需要初始化数据库表结构,不是第一次则跳过。执行脚本 oapServiceInit.sh。

代码语言:javascript
复制
./oapServiceInit.sh
SkyWalking OAP started successfully!

初始化执行成功后,执行应用启动脚本 oapService.sh。

代码语言:javascript
复制
./oapService.sh
SkyWalking OAP started successfully!

执行成功

SkyWalking 后端会启动一个 12800 端口的 rest 服务和一个 11800 的 gRPC 服务。 看看端口是否通畅:

代码语言:javascript
复制
telnet 127.0.0.1 11800
telnet 127.0.0.1 12800

gRPC 报告器

gRPC 报告器可以将收集到的日志转发到 SkyWalking OAP 服务器或SkyWalking Satellite sidecar。Trace id、segment id 和 span id 将自动附加到日志。无需修改现有布局。

代码语言:javascript
复制
添加GRPCLogClientAppenderlogback.xml
    <appender name="grpc-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.mdc.TraceIdMDCPatternLogbackLayout">
                <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{tid}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
            </layout>
        </encoder>
    </appender>

这么配置了以后,就可以在 web 上看到了,不过。。。那个表格看日志真的很不方便

兼容 spring-cloud-gateway

经过上面的步骤之后,链路已经搭建完成,查看发现了一个问题,gateway 模块的 traceId 和 业务模块的 traceId 不统一。

这是由于 SkyWalking 对于 spring-cloud-gateway 的支持不是默认的,所以需要将 agent/optional-plugins/apm-spring-cloud-gateway-2.1.x-plugin-8.7.0.jar 复制到 agent/plugins 下,然后重启即可。

IDEA 中配置

IDEA 中配置 VM OPTIONS 启动参数:

代码语言:javascript
复制
-javaagent:/Users/zhangyunfei/Downloads/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=ruoyi-system -Dskywalking.collector.backend_service=127.0.0.1:11800

参考

https://juejin.cn/post/7049920780569673736

https://www.jianshu.com/p/77b4e70c7817

https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/

https://juejin.cn/post/7012458633455730702

https://my.oschina.net/u/2344188/blog/4319631

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、背景
  • 2、skywalking 介绍
  • 安装和部署
  • 配置文件
  • 启动
    • gRPC 报告器
      • 兼容 spring-cloud-gateway
        • IDEA 中配置
        • 参考
        相关产品与服务
        云数据库 MySQL
        腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档