SkyWalking8.5集成spring-logback.xml日志收集
skywalking搭建請參考:https://www.cnblogs.com/yizhipanghu/p/14738492.html
pom引入以下依賴,對應各自skywalking版本(本文使用8.5.0版本apache-skywalking-apm-es7-8.5.0.tar.gz)
<dependency> <groupId>org.apache.skywalking</groupId> <artifactId>apm-toolkit-logback-1.x</artifactId> <version>8.5.0</version> </dependency>
skywalking下載地址:https://skywalking.apache.org/downloads/
Spirngboot+Logback集成Skywalking日志系統
logback-spring.xml配置中加入appender name為 msystem-log的配置
<appender name="msystem-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender"> <!-- 日志輸出編碼 --> <encoder> <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="msystem-log"/> </root>
整體包含logstash和本地日志保存的配置如下:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <!-- ELK日志, 發送至 appender --> <appender name="log-logstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <!-- logstash地址和端口 --> <destination>10.10.10.1:9061</destination> <!-- encoder必須配置,有多種可選 --> <encoder class="net.logstash.logback.encoder.LogstashEncoder"> <!-- skywalking插件, log加tid --> <provider class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.logstash.TraceIdJsonProvider" /> <customFields>{"project":"iservice"}</customFields> </encoder> </appender> <!--定義日志文件的存儲地址 勿在 LogBack 的配置中使用相對路徑 --> <property name="logPath" value="/home" /> <property name="appName" value="iservice" /> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${logPath}/${appName}.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${logPath}/bak/%d{yyyy-MM-dd}/${appName}-%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <cleanHistoryOnStart>true</cleanHistoryOnStart> <maxHistory>15</maxHistory> <maxFileSize>20MB</maxFileSize> <!--<totalSizeCap>50GB</totalSizeCap>--> </rollingPolicy> <encoder> <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg %n</Pattern> <charset>UTF-8</charset> </encoder> </appender> <appender name="msystem-log" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender"> <!-- 日志輸出編碼 --> <encoder> <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n </pattern> </encoder> </appender> <!-- root級別 INFO --> <root level="INFO"> <!-- logstash輸出 --> <appender-ref ref="log-logstash"/> <appender-ref ref="file" /> <appender-ref ref="msystem-log"/> </root> </configuration>
agent和oap在不同服務器上時,需配置agent/config/agent.config配置文件,在文件末尾添加如下配置信息,注意skywalking的log通信用的grpc
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}
各參數說明
服務運行后即可看到日志:
官方配置指導: