环境准备:
JDK8(安装步骤省略)
skywalking9.3.0
skywalking-java-agent-8.9.0
elasticsearch-7.17.9
下载:
curl -O https://archive.apache.org/dist/skywalking/9.3.0/apache-skywalking-apm-9.3.0.tar.gz
curl -O https://archive.apache.org/dist/skywalking/java-agent/8.9.0/apache-skywalking-java-agent-8.9.0.tgz
curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.9-linux-x86_64.tar.gz
安装es
tar -zxvf elasticsearch-7.17.9-linux-x86_64.tar.gz
#修改配置
vi config/elasticsearch.yml
node.name: node-1
network.host: 127.0.0.1
#以es用户启动
groupadd es
useradd es -g es -p es
chown -R es:es /data/elasticsearch-7.17.9
su es
#启动
cd /data/elasticsearch-7.17.9/bin
./elasticsearch -d
安装skywalking
tar -zxvf apache-skywalking-apm-9.3.0.tar.gz
vi config/application.yml
#修改
storage:
selector: ${SW_STORAGE:elasticsearch}
elasticsearch:
namespace: ${SW_NAMESPACE:""}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:127.0.0.1:9200}
#启动,默认端口8080
./bin/startup.sh
安装skywalking-agent
tar -zxvf apache-skywalking-java-agent-8.9.0.tgz
vi config/agent.config
#配置sql显示的最大字数
# If set to positive number, the `db.statement` would be truncated to this length, otherwise it would be completely saved, which may cause performance problem.
plugin.jdbc.sql_body_max_length=${SW_PLUGIN_JDBC_SQL_BODY_MAX_LENGTH:20480}
配置要监控的服务
java -javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=xxx -Dskywalking.collector.backend_service=172.17.1.68:11800 -jar xxx.jar
添加maven包
<!-- skywalking -->
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>8.15.0</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>8.15.0</version>
</dependency>
配置springboot日志文件
#修改logback-spring.xml
#添加
<conversionRule conversionWord="tid" converterClass="org.apache.skywalking.apm.toolkit.log.logback.v1.x.LogbackPatternConverter"/>
#在想看到链路追踪id的地方加上 [%tid] 即可,比如:
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%tid] [%thread] %-5level %logger{50} - %msg%n</pattern>
</encoder>
</appender>
启动项目可以看到,日志已经带上了tid
复制tid,粘贴到skywalking ui,即可看到本次链路