Docker安装SkyWalking
环境准备
10.2.209.146 ##ES服务 端口9200
10.2.209.147 ##skywalkingoap和ui 端口9898、11800、12800
安装服务
启动oap服务
docker run --name skywalking-oap --restart always -p 11800:11800 -p 12800:12800 -d -e TZ=Asia/Shanghai -e SW_ES_USER=你的es用户 -e SW_ES_PASSWORD=你的es密码 -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=10.2.209.146:9200 -e SW_CORE_RECORD_DATA_TTL=2 -v /etc/localtime:/etc/localtime:ro apache/skywalking-oap-server:10.2.0
启动ui
docker run --name skywalking-ui --restart always -p 9898:8080 -d --link skywalking-oap:skywalking-oap -e TZ=Asia/Shanghai -e SW_OAP_ADDRESS=http://10.2.209.147:12800 -v /etc/localtime:/etc/localtime:ro apache/skywalking-ui:10.2.0
非Docker应用启动jar包携带javaagent
-
下载agent Downloads | Apache SkyWalking
![]()
-
上传到服务器后,解压到/opt下
tar -xzvf apache-skywalking-java-agent-9.4.0.tgz -C /opt
- 修改agent.config配置
vim /opt/skywalking-agent/config/agent.config
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:10.2.209.147:11800}
logging.level=${SW_LOGGING_LEVEL:OFF}
- 修改应用springboot启动脚本
JAVA_AGENT=-javaagent:/opt/skywalking-agent/skywalking-agent.jar
.....
nohup $JAVA_HOME/bin/java $JAVA_OPTS $JAVA_AGENT -DSW_AGENT_NAME=应用名称 -jar ${PROJECT}/lib/${JAR_NAME} >/dev/null 2>&1 &
修改后如下:

-
最后,使用该脚本正常启动服务即可
-
验证登录 http://10.2.209.147:9898/找到自己的服务即可
![]()
-
应用日志打印traceId
7.1 logback 修改方式
修改pom.xml文件
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>9.4.0</version>
</dependency>
修改logback配置文件,注掉旧的,添加skywalking的
<!-- skywalking -->
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %tid %-5level %logger{50}:%L - %msg%n</Pattern>
</layout>
</encoder>
修改后如下:

7.2 log4j 修改方式
pom.xml添加依赖
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-log4j-1.x</artifactId>
<version>9.4.0</version>
</dependency>
修改log4j.properties
log4j.appender.R.layout=org.apache.skywalking.apm.toolkit.log.log4j.v1.x.TraceIdPatternLayout
log4j.appender.R.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%T] [%p] [%c:%L] %m%n
修改后如下:

Docker应用启动jar包携带javaagent
基于docker部署的项目如何和skywalking agent进行整合_docker skywalking agent-CSDN博客
设置自动清理
mkdir /usr/local/docker/skywalking-oap/config
chmod a+w /usr/local/docker/skywalking-oap/config/
拷贝配置文件
cd /usr/local/docker/skywalking-oap/config
docker cp skywalking-oap:/skywalking/config/application.yml .
修改
#是否启用自动清理
enableDataKeeperExecutor: ${SW_CORE_ENABLE_DATA_KEEPER_EXECUTOR:true}
#清理任务执行周期(单位:分钟)
dataKeeperExecutePeriod: ${SW_CORE_DATA_KEEPER_EXECUTE_PERIOD:5}
#跟踪记录(如调用链数据)的保留时间 (单位:天)
recordDataTTL: ${SW_CORE_RECORD_DATA_TTL:3}
#聚合指标(如服务 QPS、成功率)的保留时间 (单位:天)
metricsDataTTL: ${SW_CORE_METRICS_DATA_TTL:7}
停止并删掉skywalking-oap容器,
docker stop skywalking-oap
docker rm skywalking-oap
重新运行并挂载配置文件
docker run --name skywalking-oap --restart always -p 11800:11800 -p 12800:12800 -d -e TZ=Asia/Shanghai -e SW_ES_USER=你的es用户 -e SW_ES_PASSWORD=你的es密码 -e SW_STORAGE=elasticsearch -e SW_STORAGE_ES_CLUSTER_NODES=10.2.209.146:9200 -v /usr/local/docker/skywalking-oap/config/application.yml:/skywalking/config/application.yml -v /etc/localtime:/etc/localtime:ro apache/skywalking-oap-server:10.2.0
使用的时候注意选好时间段,否则搜不到Endpoint

验证跨系统传递相同traceid



浙公网安备 33010602011771号