赞
踩
@Author zz1696742599@163.com
@Date 2023-12-21
centos版本 7.9
具体的yaml脚本 (注意请将192.168.111.172替换为服务器地址或者是指定ip地址[前提是可以ping通的地址])
- version: '3.9'
- services:
- elasticsearch:
- image: docker.elastic.co/elasticsearch/elasticsearch:7.17.16
- container_name: elasticsearch
- restart: always
- ports:
- - 9200:9200
- - 9300:9300
- environment:
- - discovery.type=single-node
- - TZ=Asia/Shanghai
- - LANG=en_US.UTF-8
- - bootstrap.memory_lock=true
- - TAKE_FILE_OWNERSHIP="true"
- - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
- volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
- - /docker/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins
- - /docker/elk/elasticsearch/data:/usr/share/elasticsearch/data
- - /docker/elk/elasticsearch/logs:/usr/share/elasticsearch/logs
- ulimits:
- memlock:
- soft: -1
- hard: -1
- network_mode: "host"
- oap:
- image: docker.io/apache/skywalking-oap-server:9.7.0
- container_name: oap
- depends_on:
- - elasticsearch
- restart: always
- ports:
- - 11800:11800
- - 12800:12800
- environment:
- SW_CORE_RECORD_DATA_TTL: 15
- SW_CORE_METRICS_DATA_TTL: 15
- SW_STORAGE: elasticsearch
- SW_STORAGE_ES_CLUSTER_NODES: 192.168.111.172:9200
- SW_ENABLE_UPDATE_UI_TEMPLATE: true
- TZ: Asia/Shanghai
- JAVA_OPTS: "-Xms2048m -Xmx2048m"
- network_mode: "host"
- ui:
- image: docker.io/apache/skywalking-ui:9.7.0
- container_name: ui
- depends_on:
- - oap
- restart: always
- ports:
- - "18080:18080"
- environment:
- SW_SERVER_PORT: 18080
- SW_OAP_ADDRESS: http://127.0.0.1:12800
- network_mode: "host"
-
-
-

具体参数解析
version: '3.9'
:指定Docker Compose文件的版本。
services:
:定义服务,这里包括三个服务:elasticsearch、oap和ui。
elasticsearch:
:
image: docker.elastic.co/elasticsearch/elasticsearch:7.17.16
:指定使用的Elasticsearch镜像及其版本。container_name: elasticsearch
:为容器指定一个名称。restart: always
:设置容器在退出时总是重启。ports:
:映射宿主机和容器的端口,例如- 9200:9200
表示将宿主机的9200端口映射到容器的9200端口。environment:
:设置环境变量,例如discovery.type=single-node
表示使用单节点发现模式。volumes:
:数据卷挂载,将宿主机的目录映射到容器的目录。ulimits:
:设置容器的资源限制,如内存锁(memlock)的软限制和硬限制。network_mode: "host"
:使用宿主机网络模式,使得容器共享宿主机的网络栈。
oap:
:
image: docker.io/apache/skywalking-oap-server:9.7.0
:指定使用的SkyWalking OAP Server镜像及其版本。container_name: oap
:为容器指定一个名称。depends_on:
:设置依赖服务,这里表示oap服务依赖于elasticsearch服务。restart: always
:设置容器在退出时总是重启。ports:
:映射宿主机和容器的端口。environment:
:设置环境变量,如SkyWalking的数据保留时间、存储类型、Elasticsearch集群节点地址等。network_mode: "host"
:使用宿主机网络模式。
ui:
:
image: docker.io/apache/skywalking-ui:9.7.0
:指定使用的SkyWalking UI镜像及其版本。container_name: ui
:为容器指定一个名称。depends_on:
:设置依赖服务,这里表示ui服务依赖于oap服务。restart: always
:设置容器在退出时总是重启。ports:
:映射宿主机和容器的端口。environment:
:设置环境变量,如SkyWalking UI的端口号和OAP服务器的地址。network_mode: "host"
:使用宿主机网络模式。
elasticsearch:
discovery.type=single-node
: 设置Elasticsearch为单节点模式,适用于开发和测试环境。TZ=Asia/Shanghai
: 设置容器内的时区为亚洲/上海。LANG=en_US.UTF-8
: 设置容器内的语言和字符集为英文(美国)和UTF-8编码。bootstrap.memory_lock=true
: 请求Elasticsearch锁定其内存,以防止在Linux系统下被交换到磁盘。TAKE_FILE_OWNERSHIP="true"
: 设置Elasticsearch获取文件所有权,可能用于处理数据目录的权限问题。"ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
: 设置JVM的初始堆大小和最大堆大小为1024MB。
oap:
SW_CORE_RECORD_DATA_TTL=15
: 设置SkyWalking核心记录数据的保留时间(单位:分钟)。SW_CORE_METRICS_DATA_TTL=15
: 设置SkyWalking核心指标数据的保留时间(单位:分钟)。SW_STORAGE=elasticsearch
: 设置SkyWalking的数据存储类型为Elasticsearch。SW_STORAGE_ES_CLUSTER_NODES=192.168.111.172:9200
: 设置Elasticsearch集群的节点地址和端口。SW_ENABLE_UPDATE_UI_TEMPLATE=true
: 启用SkyWalking UI模板的自动更新。TZ=Asia/Shanghai
: 设置容器内的时区为亚洲/上海。JAVA_OPTS=-Xms2048m -Xmx2048m
: 设置Java应用程序的初始堆大小和最大堆大小为2048MB。
ui:
SW_SERVER_PORT=18080
: 设置SkyWalking UI的监听端口。SW_OAP_ADDRESS=http://127.0.0.1:12800
: 设置SkyWalking OAP服务器的地址和端口。
使用对应的命令启动docker-compose脚本
- docker compose -f 【指定的docker-compose.yaml文件】up -d
-
- 使用docker logs 【指定的yaml中的services名字的服务】查看对应的服务日志
-
- 如遇报错自行百度
之后启动服务器的ip地址:http://【服务器ip地址】:18080
- <dependency>
- <groupId>org.apache.skywalking</groupId>
- <artifactId>apm-toolkit-logback-1.x</artifactId>
- <version>8.16.0</version>
- </dependency>
- <dependency>
- <groupId>org.apache.skywalking</groupId>
- <artifactId>apm-toolkit-trace</artifactId>
- <version>8.16.0</version>
- </dependency>
下载对应的skywalking对应版本的java-agent https://dlcdn.apache.org/skywalking/java-agent/9.1.0/apache-skywalking-java-agent-9.1.0.tgz
- agent.service_name=${SW_AGENT_NAME:对应的项目名称}
- collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:服务器地址:11800}
- import cn.hutool.core.lang.Console;
- import org.springframework.ui.ModelMap;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RestController;
-
- @RestController
- @RequestMapping("/api")
- public class TestController {
-
- @GetMapping("/test")
- public ModelMap test(){
- ModelMap modelMap = new ModelMap();
- modelMap.addAttribute("Sky","Walking");
- Console.log(modelMap.toString());
- return modelMap;
- }
- }

启动项目(使用vmoptions参数)后,访问对应的测试接口,等待1分钟左右,再次查看skywalking页面
到此skywalking使用docker-compose脚本部署并且初步整合springboot结束
具体的skywalking使用方法我们之后再讨论
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。