在Spring Cloud项目中集成SkyWalking进行链路追踪并收集日志,主要分为以下几个步骤:
1. 安装与配置SkyWalking后端OAP Server
- 下载并安装SkyWalking OAP Server。确保OAP Server已经启动并且运行正常。
2. 添加SkyWalking Java探针到Spring Boot应用
- 在Spring Boot应用的启动命令行中添加Java Agent参数:
java -javaagent:/path/to/skywalking-agent/skywalking-agent.jar
-Dskywalking.agent.service_name=your-service-name
-Dskywalking.collector.backend_service=localhost:11800
-jar your-spring-boot-app.jar
- 确保
/path/to/skywalking-agent/skywalking-agent.jar
是SkyWalking探针的路径。 your-service-name
是你在SkyWalking UI中识别该服务实例的名称。localhost:11800
是SkyWalking OAP Server的服务地址和端口。
3. (可选)集成Spring Cloud Sleuth(如果已使用)
如果你的项目已经集成了Spring Cloud Sleuth,可以通过以下配置使其与SkyWalking兼容:
spring.zipkin.sender.type=web
spring.zipkin.baseUrl=http://localhost:19871 # 对应SkyWalking v6及以前版本的collector Zipkin兼容接口
# 或者
spring.sleuth.tracer.provider=zipkin # 对于SkyWalking v8及以上版本,通过Zipkin Propagation格式与SkyWalking互通
spring.zipkin.baseUrl=http://localhost:12800/api/v3/spans # 对应SkyWalking v8及以上版本的collector URL
4. 配置日志收集(Log4j2或Logback)
SkyWalking支持自动收集应用程序的日志,并将它们与对应的请求链路关联起来。对于Log4j2或Logback,需要在配置文件中引入SkyWalking的日志适配器。
Log4j2示例:
在log4j2.xml
中添加SkyWalking的日志Appender:
<Configuration>
<!-- ... -->
<Appenders>
<!-- ... -->
<SkyWalkingAppender name="SkyWalking">
<PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</SkyWalkingAppender>
<!-- ... -->
</Appenders>
<Loggers>
<!-- ... -->
<Root level="info">
<AppenderRef ref="SkyWalking" />
<!-- 其他Appender引用... -->
</Root>
</Loggers>
</Configuration>
Logback示例:
在logback.xml
中添加SkyWalking的日志Appender:
<configuration>
<!-- ... -->
<appender name="SW_APPENDER" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.LogbackConfigurator">
<encoder>
<pattern>%date [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="SW_APPENDER" />
<!-- 其他Appender引用... -->
</root>
</configuration>
完成以上配置后,重启Spring Boot应用,SkyWalking将开始收集服务调用链路数据以及相关的应用日志。这些信息可以在SkyWalking UI中查看、分析和排查问题。