SkyWalking 日志收集

news/2024/11/15 4:42:15/

SkyWalking 日志收集

  • 一、需求
  • 二、步骤
    • 2.1 pom文件引入依赖
    • 2.2 logback-spring.xml文件修改
    • 2.3 修改agent的配置文件
    • 2.4 启动java应用
    • 2.5 日志查看
  • 三、验证
  • 四、常见问题
    • 4.1 修改完logback配置文件,项目启动报错
      • 4.1.1 错误
      • 4.1.2 解决
    • 4.2 UI的log页面没有内容

一、需求

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

预期效果:
在这里插入图片描述

二、步骤

参考官方文档: 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文件引入依赖

在这里插入图片描述
我的配置信息:

        <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
官网文档内容:
在这里插入图片描述

  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}

参数说明:

在这里插入图片描述

2.4 启动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标签页面是否有内容
    在这里插入图片描述

  2. 点击instance栏的某一个内容,查看content是否和本地控制台输出的日志内容相同。如果相同表示成功.
    在这里插入图片描述
    在这里插入图片描述

四、常见问题

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

4.1.1 错误

报错信息:
在这里插入图片描述

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文件引入的依赖版本有问题,将版本修改后,问题解决:
在这里插入图片描述

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包更换了一个更高级的版本, 再次启动显示日志输出正常


http://www.ppmy.cn/news/975512.html

相关文章

十万条评论告诉你《流浪地球》的1星都是谁打的?

点击上方 蓝色文字&#xff0c;选择置顶或星标 第一时间关注 Python 技术干货&#xff01; 作者 | AlfredWu 来源 | Alfred数据室 阅读文本大概需要 5 分钟。 2019年贺岁档电影热闹得不亦乐乎&#xff0c;其中大刘作品改编的《流浪地球》更是凭口碑一路低开高走&#xff0c;在黄…

编织一个电影世界 --《流浪地球2》的科学顾问造梦手记开篇

导语&#xff1a;如果人类的好奇是一种病&#xff0c;那科学加上幻想是唯一的药方。如果我们说科技想象更期望展现技术趋势&#xff0c;那科幻更倾向反映技术和人类生活的关系&#xff0c;“经以科学、纬以人文”&#xff0c;两者相符相成才会编织出我们想象中的未来。 先跟各位…

总结:一文搞懂chatGPT原理

目前关于chatGPT的资料过于零散&#xff0c;没有详尽所有知识点、系统概述的文章&#xff0c;因此&#xff0c;笔者作了这篇总结性文章。 训练过程总览 理清演化路径 预训练(pretrain) GPT-3概述 GPT 3模型的理念 GPT-3如何学习 数据集 指令微调 (Instruction Fine-Tunin…

浅谈ChatGPT在一个IT运维人眼中的日常使用场景

前言 其实AI的概念已经存在了十多年&#xff0c;包括在运维领域&#xff0c;也从传统运维演化到了所有AIOps的概念&#xff0c;但一直以来对当前的AI并不是太看好&#xff0c;始终觉得当前的AI只是停留在“撞库”&#xff0c;从海量的库里去匹配关键字触发语句&#xff0c;所谓…

流浪地球改编语录

1.吉林省第一AK常委会提醒您&#xff1a;竞赛千万条&#xff0c;OI第一条&#xff0c;省选不AK&#xff0c;四平两行泪 2.HAL9000(moss就是HAL): 在过去的三十六小时里&#xff0c;中学生经历了有史以来最大的生存危机。 在全国各省一百五十多万教师的不懈催促下&#xff0c;…

从ChatGPT到MOSS,《流浪地球2》是否会照进现实?

要说热点的话&#xff0c;那么2023年开年至今&#xff0c;从流浪地球的MOSS引发的巨大讨论与争议&#xff0c;到ChatGPT的爆火引发的全民跟风热潮&#xff0c;至微软推出的新必应在测试中出现的“暴雷”&#xff0c;一切的舆论&#xff0c;一切的争议&#xff0c;都终归出于“人…

前端图标解决方案

1. 前言 随着 Web 技术的发展与日益丰富的界面需求&#xff0c;图标逐渐成为前端开发中不可或缺的一部分&#xff0c;为此也诞生了各种各样的解决方案。文章总结及分析了目前常见的一些图标解决方案。 2. CSS 背景图片 2.1 background-image 图标本质上也是图片&#xff0c…

Jwt(Json web token)——从Http协议到session+cookie到Token Jwt介绍 Jwt的应用:登陆验证的流程

目录 引出从Http协议到session&cookie到TokenHTTP协议session & cookiesessioncookie为什么需要session & cookie? JavaEE传统解决长连接方案问题&#xff1a;分布式不适用解决方案&#xff1a;令牌Token Jwt&#xff0c;Json web tokenjwt的结构Header加密算法Ba…