SkyWalking 日志监控

在skywalking的UI端有一个日志的模块,用于收集客户端的日志,默认是没有数据的,那么需要如何将日志数据传输到skywalking中呢?日志框架的种类很多,比较出名的有log4j,logback,log4j2,就以logback为例子介绍一下如何配置,官方文档如下:

  • log4j:https://skywalking.apache.org/docs/skywalking-java/v8.8.0/en/setup/service-agent/java-agent/application-toolkit-log4j-1.x/
  • log4j2:https://skywalking.apache.org/docs/skywalking-java/v8.8.0/en/setup/service-agent/java-agent/application-toolkit-log4j-2.x/
  • logback:https://skywalking.apache.org/docs/skywalking-java/v8.8.0/en/setup/service-agent/java-agent/application-toolkit-logback-1.x/

1、添加依赖

根据官方文档,需要先添加依赖,如下:

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

2、添加配置文件

新建一个logback-spring.xml放在resource目录下,配置如下图:

<!-- 日志传输到skywalking中的appender,通过qrpc传输 -->
<appender name="gpc-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>${log.pattern2}</Pattern>
        </layout>
    </encoder>
</appender>
<root level="info">
    <appender-ref ref="gpc-log"/>
</root>

 

启动项目后,skywalking中的日志模块输出的日志如下图:

 

 

 

注意:如果agent和oap服务不在同一台服务器上,需要在/agent/config/agent.config配置文件末尾添加如下配置:

plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:10.10.10.1}
plugin.toolkit.log.grpc.reporter.server_port=${SW_GRPC_LOG_SERVER_PORT:11800}
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}

 

配置分析如下图:

 

posted @ 2021-11-24 15:18  草木物语  阅读(3057)  评论(0编辑  收藏  举报