一、Skywalking搭建部署
1、下载skywalking 服务,下载地址:Index of /dist/skywalking
2、解压后的目录说明
3、修改ui服务端口:
4、启动skywalking服务
5、spingcloud微服务客户端配置skywalking
-javaagent:D:\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar
-DSW_AGENT_NAME=api-gateway(自行命名,一般用nacos中的服务名)
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=127.0.0.1:11800
注意:如果是使用springcloud的gateway组件,需要根据以下步骤才能在skywalking中展示
(1)需要把optional-plugins目录下的这两个文件移动到plugins中去
linux系统skywalking接入微服务
6、修改skywalking持久化配置
(1)修改配置文件D:\apache-skywalking-apm-bin-es7\config\application.yml中的storage配置项,使用数据库存储需要先创建好数据库
(2)目录D:\apache-skywalking-apm-bin-es7\oap-libs下需要放入mysql连接jar包
7、自定义链路追踪
(1)项目pom.xml引入skywalking工具类
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>8.5.0</version>
</dependency>
2)需要记录链路追踪的业务方法上添加@Trace标签
(3)记录标记追踪方法的参数和返回值
8、性能剖析
新建任务
9、spring日志中加入skywalking的追踪id
(1)项目新建logback-spring.xml日志配置文件,在日志数据格式中加入[%tid]
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 引入springboot默认的logback xml配置-->
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<!--输出到控制台-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>-%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} [%tid] %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="console" />
</root>
</configuration>
2)重启项目后,请求接口控制台输入tid的日志信息
(3)复制tid的值去skywalking的控制台中查询
10、配置项目日志输出到skywalking的控制台日志中
(1)logback-spring.xml新增配置
<!--输出到skywalking的日志控制台-->
<appender name="grpc-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>%d{yyyy-MM-dd HH:mm:ss.sss} [%X{id}] [%thread] %-5level %logger{36} -%msg%n</Pattern>
</layout>
</encoder>
</appender>
(2)重启项目,日志就会输出到skywalking的日志控制台中去了、
(3)如果不是本地启动的skywalking,需要在D:\apache-skywalking-apm-bin-es7\agent\config目录下的配置文件agent.config中加入如下配置:
# 配置远程skywalking服务地址
plugin.toolkit.log.grpc.reporter.server_host=${SW_GRPC_LOG_SERVER_HOST:192.168.3.100}
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}
11、告警规则
java项目可以提供接口给skywalking发生警告时候调用,可以在D:\apache-skywalking-apm-bin-es7\config\alarm-settings.yml中配置
12、skywalking高可用
(1)oap数据采集服务集群:
(2)ui控制台集群:
(3)应用服务启动参数需要指定多个地址:
有问题和建议欢迎大家留言评论,谢谢~