微服务系统中使用 Skywalking 实现链路追踪,并使用 ElasticSearch,Logstash,Kibana 记录产生的日志。
下载 Skywalking
https://archive.apache.org/dist/skywalking/
目前 Skywalking 8.7.0 支持 ES,这里直接使用 8.7.0
下载 ElasticSearch 7,当前最新版本是 7.17.7,因为是 window server 做服务器,这里下载 window版本
https://www.elastic.co/cn/downloads/past-releases#elasticsearch
解压 Skywalking 压缩包后修改 config 下的 application.yml,这里使用 nacos 作为注册中心,同时修改 nacos 下的配置
修改存储方式为 ElasticSearch,并修改 ElasticSearch 下的配置
重启访问本地 8080,能正常访问就是正常启动
端口修改启动可以修改 webapp 下的 webapp.yml
windows 启动 ES 可以参考,这里初步部署只做单机,不做集群
Windows环境下的ELK——搭建环境(1)_有诗亦有远方的博客-CSDN博客_windows搭建elk
在项目中使用 mavan 引入链路追踪和日志的包,这里因为是版本控制所以同时添加了 logback 和 log4j2 的包,根据实际情况二选一即可,下面的引入方式只使用 logback。
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>${skywalking.version}</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>${skywalking.version}</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-log4j-2.x</artifactId>
<version>${skywalking.version}</version>
</dependency>
版本控制,使用和 Skywalking 一致的版本防止出错
<properties>
<skywalking.version>8.7.0</skywalking.version>
</properties>
在 logback 中的完整配置
<configuration>
<!--引入springboot的默认日志配置-->
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<!--skywalking logback 配置-->
<appender name="skywalking_out" 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.TraceIdPatternLogbackLayout">
<pattern>[%tid] ${CONSOLE_LOG_PATTERN:-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---) {faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}</pattern>
</layout>
</encoder>
</appender>
<root level="info">
<appender-ref ref="skywalking_out"/>
</root>
</configuration>
其他日志配置方式可以参考
http://t.zoukankan.com/shook-p-15348378.html
需要事先配置 agent\config 下的 agent.config,增加以下代码,修改第一行的 SW_GRPC_LOG_SERVER_HOST 为服务器地址
plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:192.168.1.5}
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}
服务启动,idea 配置 VM option,javaagent 需要配置本地 agent存在的路径,可以在下载的 Skywalking 包中找到,和上面的 SW_GRPC_LOG_SERVER_HOST 一致,配置成功后启动
-Dserver.port=9232
-javaagent:F:\server\skywalking\agent\skywalking-agent.jar
-Dskywalking.agent.service_name=EMERGENCY-SERVICE
-Dskywalking.collector.backend_service=192.168.1.5:11800
服务启动后,向后端发送请求就可以在 Skywalking 的 web 页面看到数据
在 log tab 也能够正常显示
在 Kibana 中可以查询到产生的日志
文章来源:https://www.toymoban.com/news/detail-454799.html
文章来源地址https://www.toymoban.com/news/detail-454799.html
到了这里,关于Springboot 整合 Skywalking 和 ElasticSearch的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!