SpringBoot应用原生或docker镜像容器集成Skywalking

相关组件及版本

|----|------------------------------|--------|----|
| 序号 | 组件 | 版本 | 备注 |
| 1 | skywalking-oap-server | 8.9.1 | |
| 2 | elasticsearch | 7.17.6 | |
| 3 | skywalking-ui | 8.9.1 | |
| 4 | apache-skywalking-java-agent | 8.15.0 | |

一、JAR包方式部署服务

下载apache-skywalking-java-agent jar文件

使用如下名称执行

复制代码
java \
-javaagent:/agent/skywalking-agent.jar \
-Dskywalking.agent.service_name=${service_name} \
-Dskywalking.collector.backend_service=${IP}:11800 \
-jar ${spring-project}.jar
  • ${service_name}:应用服务名称
  • ${IP}:Skywalking服务所在服务器IP
  • ${spring-project}:jar文件名称

二、docker方式部署服务

1、构建基础镜像,将skywalking-agent文件夹下的文件包含在内

1)修改apache-skywalking-java-agent下的配置文件agent.config

复制代码
# The service name in UI
agent.service_name=${SW_AGENT_NAME:Your_ApplicationName}
# Backend service addresses.
collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:127.0.0.1:11800}

修改为分配(指定)的服务名称和对应后端服务地址

2)编辑Dockerfile文件

复制代码
FROM openjdk:8
LABEL maintainer="creator"
ENV TZ=Asia/Shanghai
EXPOSE 8080
COPY skywalking-agent/* skywalking-agent/
# 别名 将bds-admin 改名为app,与docker-compose.yml中对应
ADD bds-admin.jar app.jar
# 修改这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
RUN sh -c 'touch /app.jar'
#ENTRYPOINT ["java","-jar","/app.jar"]
ENTRYPOINT ["java","-javaagent:/skywalking-agent/skywalking-agent.jar","-jar","/app.jar"]

2、构建容器,使用-v或者volumes 将skywalking-agent文件夹挂载到容器

1)编辑Dockerfile文件

复制代码
FROM openjdk:8
LABEL maintainer="creator"
ENV TZ=Asia/Shanghai
EXPOSE 8080

# 别名 将bds-admin 改名为app,与docker-compose.yml中对应
ADD bds-admin.jar app.jar
# 修改这个文件的访问时间和修改时间为当前时间,而不会修改文件的内容。
RUN sh -c 'touch /app.jar'
#ENTRYPOINT ["java","-jar","/app.jar"] 修改为下面的语句
ENTRYPOINT ["java","-javaagent:/skywalking-agent/skywalking-agent.jar","-jar","/app.jar"]

2)编辑docker-compose.yml文件

复制代码
version: "3"
services:
  app-dev:
    restart: always
    container_name: app-dev
    image: app:1.0
    build: . # 表示以当前目录下的Dockerfile开始构建镜像
    ports:
      - "8080:8080"
    volumes:
      - ./app/logs:/app/logs
      - ./app/uploadPath:/app/uploadPath
      - ./skywalking-agent:/skywalking-agent

3)启动应用服务

复制代码
docker-compose up -d --build
相关推荐
极客先躯13 小时前
高级java每日一道面试题-2026年05月03日-实战篇[Docker]-如何实现容器化环境的数据加密?
java·运维·docker·容器·金融·加解密·高级面试
ChaITSimpleLove16 小时前
SimpleIdServer 6.0.4 Docker Compose 实战部署指南
运维·docker·容器·身份认证·id-server·simpleidserver
程序喵大人18 小时前
【C++进阶】STL容器与迭代器 - 05 map 和 set 为什么按键保持有序
开发语言·c++·容器·迭代器·stl
风曦Kisaki19 小时前
Kubernetes(K8s)笔记Day03: Pod命名空间,标签,Pod 的调度,污点与容忍度,Pod 常见状态和重启策略,Pod 生命周期
linux·运维·笔记·docker·云原生·容器·kubernetes
张忠琳20 小时前
【NVIDIA】NVIDIA k8s-device-plugin v0.19.3 资源管理器模块深度分析之三
云原生·容器·架构·kubernetes·nvidia
毛驴赶鹿21 小时前
低配置服务器怎么搭建监控?Komari Docker部署与公网访问完整教程
运维·服务器·docker
Chengbei1121 小时前
云安全漏洞挖掘SKILL、一站式云漏洞挖掘工具,支持S3爆破、IMDS探测、K8s检测与AK/SK权限利用
前端·人工智能·网络安全·云原生·容器·kubernetes·系统安全
Ai拆代码的曹操1 天前
K8s 调度器 predicate 阶段揭秘:为什么你的 Pod 总是堆在同一台机器
后端·容器
Ai拆代码的曹操1 天前
手摸手排查:Pod CrashLoopBackOff 日志丢失问题,3 层兜底方案
后端·容器
张忠琳1 天前
【NVIDIA】k8s-device-plugin v0.19.3 — CDI / MIG / vGPU 模块超深度代码分析之五
云原生·容器·架构·kubernetes·nvidia