SkyWalking 日志收集

这篇具有很好参考价值的文章主要介绍了SkyWalking 日志收集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、需求

在k8s环境已经部署了SkyWalking 的 oap 和 ui,本地的java应用接入SkyWalking时,想要将控制台的日志信息展示UI界面

预期效果:
skywalking日志采集,skywalking,spring,java

二、步骤

参考官方文档: https://skywalking.apache.org/docs/skywalking-java/v8.14.0/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/

参考文章:
https://blog.csdn.net/hxy793518971/article/details/122046939
https://blog.csdn.net/kingtok/article/details/113886294

2.1 pom文件引入依赖

skywalking日志采集,skywalking,spring,java
我的配置信息:

        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-logback-1.x</artifactId>
            <version>8.11.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-trace</artifactId>
            <version>8.1.0</version>
        </dependency>

2.2 logback-spring.xml文件修改

完整的日志配置文件参考:https://github.com/apache/skywalking/blob/3a8e0c11b782eee37480deb1a3ba44b26a5fdc2c/test/e2e-v2/java-test-service/e2e-service-provider/src/main/resources/logback.xml
官网文档内容:
skywalking日志采集,skywalking,spring,java

  1. 添加appender标签
        <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>
  1. root标签内增内容
<appender-ref ref="grpc-log"/>

我的完整logback-spring.xml,有注释增加配置日志收集表示新加的内容:

<?xml version="1.0" encoding="UTF-8"?>

<configuration scan="true" scanPeriod=" 5 seconds">
    

        <appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
            <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
                <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
                    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [appName=helloTest] [%thread] %-5level %logger{36} - %msg%n</pattern>
                </layout>
            </encoder>
        </appender>

<!--    < ! &#45;&#45; 配置异步记录 AsyncAppender &ndash;&gt;-->
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <discardingThreshold>0</discardingThreshold>
        <queueSize>1024</queueSize>
        <neverBlock>true</neverBlock>
        <appender-ref ref="stdout"/>
    </appender>

<!--   增加配置日志收集-->
    <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>



<!--<appender name="fileAppender" class="ch.qos.logback.core.FileAppender">-->
<!--    <file>/tmp/skywalking-logs/logback/e2e-service-provider.log</file>-->
<!--    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">-->
<!--        <layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">-->
<!--            <Pattern> [%level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %logger:%line - %msg%n</Pattern>-->
<!--        </layout>-->
<!--    </encoder>-->
<!--</appender>-->

<root level="DEBUG">
    <!--    增加配置日志收集-->
    <appender-ref ref="grpc-log"/>
    
    <appender-ref ref="ASYNC"/>
    <appender-ref ref="stdout"/>
</root>

</configuration>

2.3 修改agent的配置文件

由于我的java应用是在本地启动,而oap部署在另外一台服务器(java应用oap不在同一台服务器),所以需要修改agent相关信息。

:
如果java应用和oap同属一台服务器,则agent配置文件不需要做修改.

skywalking-agent/config/agent.config文件:

plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:192.168.1xx.130} # oap的部署地址
plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:30078} # oap的采集数据端口
plugin.toolkit.log.grpc.reporter.max_message_size=${SW_GRPC_LOG_MAX_MESSAGE_SIZE:10485760}
plugin.toolkit.log.grpc.reporter.upstream_timeout=${SW_GRPC_LOG_GRPC_UPSTREAM_TIMEOUT:30}

参数说明:

skywalking日志采集,skywalking,spring,java

2.4 启动java应用

启动配置:

skywalking日志采集,skywalking,spring,java

-javaagent:D:/project/helloWorld/agent/skywalking-agent/skywalking-agent.jar
-DSW_AGENT_NAME=hello33
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.1xx.130:30078  # oap的采集地址端口

2.5 日志查看

检查启动agent的日志: skywalking-agent/logs/skywalking-api.log

三、验证

java应用启动之后, 请求服务的某个路径,然后查看SkyWalking UI:

  1. 查看对应的服务log标签页面是否有内容
    skywalking日志采集,skywalking,spring,java

  2. 点击instance栏的某一个内容,查看content是否和本地控制台输出的日志内容相同。如果相同表示成功.
    skywalking日志采集,skywalking,spring,java
    skywalking日志采集,skywalking,spring,java

四、常见问题

4.1 修改完logback配置文件,项目启动报错

4.1.1 错误

报错信息:
skywalking日志采集,skywalking,spring,java

java.lang.IllegalStateException: Logback configuration error detected: 
ERROR in ch.qos.logback.core.joran.spi.Interpreter@24:76 - no applicable action for [encoder], current ElementPath  is [[configuration][appender][encoder]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@25:115 - no applicable action for [layout], current ElementPath  is [[configuration][appender][encoder][layout]]
ERROR in ch.qos.logback.core.joran.spi.Interpreter@26:26 - no applicable action for [Pattern], current ElementPath  is [[configuration][appender][encoder][layout][Pattern]]
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.loadConfiguration(LogbackLoggingSystem.java:167)
	at org.springframework.boot.logging.AbstractLoggingSystem.initializeWithConventions(AbstractLoggingSystem.java:80)
	at org.springframework.boot.logging.AbstractLoggingSystem.initialize(AbstractLoggingSystem.java:60)
	at org.springframework.boot.logging.logback.LogbackLoggingSystem.initialize(LogbackLoggingSystem.java:118)
	at org.springframework.boot.context.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:289)
	at org.springframework.boot.context.logging.LoggingApplicationListener.initialize(LoggingApplicationListener.java:264)
	at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEnvironmentPreparedEvent(LoggingApplicationListener.java:226)
	at org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:203)

4.1.2 解决

pom文件引入的依赖版本有问题,将版本修改后,问题解决:
skywalking日志采集,skywalking,spring,java

4.2 UI的log页面没有内容

java应用配置修改完成并成功启动,然后请求应用的某个路径,但是在UI的log上数据为空

  1. 检查同oap的服务采集端口是否能连通
  2. 检查启动agent的启动日志: skywalking-agent/logs/skywalking-api.log

日志信息显示错误:

Failed to read the config file, skywalking is going to run in default config

检查配置文件没发现错误,弄了很久也没解决

最后是将java agent包更换了一个更高级的版本, 再次启动显示日志输出正常文章来源地址https://www.toymoban.com/news/detail-558147.html

到了这里,关于SkyWalking 日志收集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • skywalking-agent-java默认不支持spring cloud gateway问题

    开发环境:Windows10 、JDK17 skywalking官网下载地址:https://skywalking.apache.org/downloads/ 解压目录为:D:Programssoft-Pluginsapache-skywalking-java-agent-8.16.0skywalking-agent 解压后目录结构为: 可参考官网博客文档:https://skywalking.apache.org/zh/2020-04-19-skywalking-quick-start/#232-idea 我的IDEA版本: Int

    2024年02月09日
    浏览(48)
  • SkyWalking+ElasticSearch7实现日志追踪

    国内es下载地址 修改elasticsearch-env ,elasticsearch7 先去获取本地的jdk 如果jdk 环境不存在则会使用 elasticsearch-7.8.0/jdk 下的jdk ,因为小编本地jdk版本为1.8 运行时会报错 future versions of Elasticsearch will require Java 11; your Java version from [/data/jdk1.8.0_111/jre] does not meet this requirement 因此我们

    2024年02月06日
    浏览(39)
  • SpringCloudGateway使用Skywalking时日志打印traceId

    Skywalking oap 与 agent部署 https://blog.csdn.net/kismet2399/article/details/131560171 spring-cloud-starter-gateway:3.1.4 Skywalking Agent:8.14.0 SpringCloudGateway集成Skywalking后无法打印traceId 目前没有找到logback的解决方式,所以日志打印改用log4j2 mvn添加配置 让日志获取到traceId 插件添加 将skywalking-agent下opt

    2024年02月13日
    浏览(40)
  • Spring boot 集成 Skywalking 配置 || Skywalking 打不开【已解决】

    Apache SkyWalking 如果下载太慢,建议复制下载链接, 然后用下载器下载 ,比如某雷。 ​ 打开apm-bin 里的webapp 修改port ​ ​ 这样就解决了端口冲突问题。 ​  ​ ​   ​ -javaagent:D:testxunleiapache-skywalking-java-agent-8.10.0skywalking-agentskywalking-agent.jar //这个是你自己skywalking-agent.j

    2024年02月14日
    浏览(33)
  • skywalking日志落到es字段timestamp不为date问题解决

    在通过skywalking将日志收集到es后,由于skywalking收集的日志(skywalking_log索引)没有date类型的字段导致在es上再索引模式中没有时间范围的查询。 skywalking收集的日志有时间戳字段timestamp,只是默认为long类型 于是我们可以通过提前定义字段类型为data来解决这个问题 以下解决方案

    2024年02月15日
    浏览(66)
  • Spring Cloud【SkyWalking服务环境搭建、微服务接入SkyWalking探针、Docker搭建Elasticsearch环境 】(十四)

      目录 分布式请求链路追踪_SkyWalking服务环境搭建

    2024年02月07日
    浏览(51)
  • SkyWalking链路追踪-搭建-spring-boot-cloud-单机环境 之《10 分钟快速搭建 SkyWalking 服务》

    首先了解一下单机环境 第一步,搭建一个 Elasticsearch 服务。 第二步,下载 SkyWalking 软件包。 第三步,搭建一个 SkyWalking OAP 服务。 第四步,启动一个 Spring Boot 应用,并配置 SkyWalking Agent。 第五步,搭建一个 SkyWalking UI 服务。 准备工作,准备一个docker网络组,网络组的名字为

    2024年02月15日
    浏览(59)
  • 【Spring Cloud Alibaba】11.链路追踪(SkyWalking)

    接下来对分布式项目实现链路追踪,本操作要先完成前置步骤,详情请参照【Spring Cloud Alibaba】Spring Cloud Alibaba 搭建教程 在分布式系统,尤其是微服务系统中,一次外部请求往往需要内部多个模块,多个中间件,多台机器的相互调用才能完成。在这一系列的调用中,可能有些

    2024年02月11日
    浏览(43)
  • Spring Cloud Alibaba全家桶——微服务链路追踪SkyWalking

    本文小新为大家带来 微服务链路追踪SkyWalking 相关知识,具体内容包括 SkyWalking简介 , SkyWalking环境搭建部署 , SkyWalking接入微服务 , SkyWalking持久化跟踪数据 , 自定义SkyWalking链路追踪 , SkyWalking集成日志框架 , SkyWalking告警功能 , SkyWalking高可用 , SkyWalking UI介绍 等进行

    2023年04月08日
    浏览(54)
  • 基于Spring Cloud Alibaba+Skywalking的分布式链路追踪设计

    胡弦,视频号2023年度优秀创作者,互联网大厂P8技术专家,Spring Cloud Alibaba微服务架构实战派(上下册)和RocketMQ消息中间件实战派(上下册)的作者,资深架构师,技术负责人,极客时间训练营讲师,四维口袋KVP最具价值技术专家,技术领域专家团成员,2021电子工业出版社年度优

    2024年04月22日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包