当前位置:   article > 正文

SkyWalking docker-compose部署_docker compose skywalking 9.7

docker compose skywalking 9.7

SkyWalking docker-compose部署centos基础环境运行

@Author zz1696742599@163.com
@Date 2023-12-21

开发机环境

  1. centos版本 7.9

  2. docker版本 【docker community 24.0.7
  3. docker-compose 版本 【v2.21.0
  4. jdk【17.0.9】
  5. springboot版本【3.2.0】
  6. skywalking版本【9.7.0】
  7. skywalkingui版本【9.7.0】
  8. skywalking-oap版本【9.7.0】
  9. elasticsearch版本【7.17.16】

SkyWalking部署docker-compose脚本

具体的yaml脚本 (注意请将192.168.111.172替换为服务器地址或者是指定ip地址[前提是可以ping通的地址])

  1. version: '3.9'
  2. services:
  3. elasticsearch:
  4. image: docker.elastic.co/elasticsearch/elasticsearch:7.17.16
  5. container_name: elasticsearch
  6. restart: always
  7. ports:
  8. - 9200:9200
  9. - 9300:9300
  10. environment:
  11. - discovery.type=single-node
  12. - TZ=Asia/Shanghai
  13. - LANG=en_US.UTF-8
  14. - bootstrap.memory_lock=true
  15. - TAKE_FILE_OWNERSHIP="true"
  16. - "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
  17. volumes: # 数据卷挂载路径设置,将本机目录映射到容器目录
  18. - /docker/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins
  19. - /docker/elk/elasticsearch/data:/usr/share/elasticsearch/data
  20. - /docker/elk/elasticsearch/logs:/usr/share/elasticsearch/logs
  21. ulimits:
  22. memlock:
  23. soft: -1
  24. hard: -1
  25. network_mode: "host"
  26. oap:
  27. image: docker.io/apache/skywalking-oap-server:9.7.0
  28. container_name: oap
  29. depends_on:
  30. - elasticsearch
  31. restart: always
  32. ports:
  33. - 11800:11800
  34. - 12800:12800
  35. environment:
  36. SW_CORE_RECORD_DATA_TTL: 15
  37. SW_CORE_METRICS_DATA_TTL: 15
  38. SW_STORAGE: elasticsearch
  39. SW_STORAGE_ES_CLUSTER_NODES: 192.168.111.172:9200
  40. SW_ENABLE_UPDATE_UI_TEMPLATE: true
  41. TZ: Asia/Shanghai
  42. JAVA_OPTS: "-Xms2048m -Xmx2048m"
  43. network_mode: "host"
  44. ui:
  45. image: docker.io/apache/skywalking-ui:9.7.0
  46. container_name: ui
  47. depends_on:
  48. - oap
  49. restart: always
  50. ports:
  51. - "18080:18080"
  52. environment:
  53. SW_SERVER_PORT: 18080
  54. SW_OAP_ADDRESS: http://127.0.0.1:12800
  55. network_mode: "host"

具体参数解析

  1. version: '3.9':指定Docker Compose文件的版本。

  2. services::定义服务,这里包括三个服务:elasticsearch、oap和ui。

  3. 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":使用宿主机网络模式,使得容器共享宿主机的网络栈。
  4. 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":使用宿主机网络模式。
  5. 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":使用宿主机网络模式。

  1. 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。
  2. 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。
  3. ui:

    • SW_SERVER_PORT=18080: 设置SkyWalking UI的监听端口。
    • SW_OAP_ADDRESS=http://127.0.0.1:12800: 设置SkyWalking OAP服务器的地址和端口。

 使用对应的命令启动docker-compose脚本 

  1. docker compose -f 【指定的docker-compose.yaml文件】up -d
  2. 使用docker logs 【指定的yaml中的services名字的服务】查看对应的服务日志
  3. 如遇报错自行百度

 之后启动服务器的ip地址:http://【服务器ip地址】:18080

与springboot项目整合
 

  1.  springboot 项目初始化->初始化一个springweb项目

 添加对应pom依赖

  1. <dependency>
  2. <groupId>org.apache.skywalking</groupId>
  3. <artifactId>apm-toolkit-logback-1.x</artifactId>
  4. <version>8.16.0</version>
  5. </dependency>
  6. <dependency>
  7. <groupId>org.apache.skywalking</groupId>
  8. <artifactId>apm-toolkit-trace</artifactId>
  9. <version>8.16.0</version>
  10. </dependency>

下载对应的skywalking对应版本的java-agent https://dlcdn.apache.org/skywalking/java-agent/9.1.0/apache-skywalking-java-agent-9.1.0.tgz

  • 下载最新的9.1.0
  • 解压缩后文件目录为下
  • 将整个根目录的文件移动至springboot项目下的/src/main目录下与resources目录同级
  • 调整skywalking-agent/config/agent.config文件中的两个参数
    1. agent.service_name=${SW_AGENT_NAME:对应的项目名称}
    2. collector.backend_service=${SW_AGENT_COLLECTOR_BACKEND_SERVICES:服务器地址:11800}
  • 调整启动参数 vmoptions,将对应的skywalking-agent.jar对应的绝对路径粘贴至参数框中

 编写对应的接口

  1. import cn.hutool.core.lang.Console;
  2. import org.springframework.ui.ModelMap;
  3. import org.springframework.web.bind.annotation.GetMapping;
  4. import org.springframework.web.bind.annotation.RequestMapping;
  5. import org.springframework.web.bind.annotation.RestController;
  6. @RestController
  7. @RequestMapping("/api")
  8. public class TestController {
  9. @GetMapping("/test")
  10. public ModelMap test(){
  11. ModelMap modelMap = new ModelMap();
  12. modelMap.addAttribute("Sky","Walking");
  13. Console.log(modelMap.toString());
  14. return modelMap;
  15. }
  16. }

启动项目(使用vmoptions参数)后,访问对应的测试接口,等待1分钟左右,再次查看skywalking页面

到此skywalking使用docker-compose脚本部署并且初步整合springboot结束
具体的skywalking使用方法我们之后再讨论

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/236436
推荐阅读
相关标签
  

闽ICP备14008679号