Springboot 整合 Skywalking 和 ElasticSearch

微服务系统中使用 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://uudwc.com/A/v09MR

原文地址:https://blog.csdn.net/reverb_/article/details/128186687

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请联系站长进行投诉反馈,一经查实,立即删除!

h
上一篇 2023年06月21日 08:13
《网络安全0-100》网络安全技术
下一篇 2023年06月21日 08:13