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: alwayscontainer_name: app-devimage: app:1.0build: . # 表示以当前目录下的Dockerfile开始构建镜像ports:- "8080:8080"volumes:- ./app/logs:/app/logs- ./app/uploadPath:/app/uploadPath- ./skywalking-agent:/skywalking-agent
3)启动应用服务
docker-compose up -d --build