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

  1. 下载agent Downloads | Apache SkyWalking

  2. 上传到服务器后,解压到/opt下

tar -xzvf apache-skywalking-java-agent-9.4.0.tgz -C /opt
  1. 修改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}
  1. 修改应用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 &

修改后如下:

  1. 最后,使用该脚本正常启动服务即可

  2. 验证登录 http://10.2.209.147:9898/找到自己的服务即可

  3. 应用日志打印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

posted @ 2026-06-10 09:02  两行法桐  阅读(29)  评论(0)    收藏  举报