docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > docker 部署Skywalking

如何基于docker 部署Skywalking

作者:搞不懂语言的程序员

文章详解使用Docker部署SkyWalking,涵盖Elasticsearch单节点配置、OAPServer与UI服务的镜像选择、端口映射及依赖关系,以及客户端Agent集成方法,本文给大家介绍的非常详细,感兴趣的朋友一起看看吧

创建网络

docker network create skywalking-network

docker compose 安装SkyWalking

docker-compose.yaml文件

version: "3"
services:
  # SkyWalking OAP server with Elasticsearch storage
  skywalking-oap:
    image: apache/skywalking-oap-server:8.9.0
    container_name: skywalking-oap
    ports:
      - "12800:12800"
      - "11800:11800"
    networks:
      - skywalking-network
    depends_on:
      skywalking-elasticsearch:
        condition: service_healthy  # 等待ES健康检查
    environment:
      - SW_STORAGE=elasticsearch
      - TZ=Asia/Shanghai
      - SW_STORAGE_ES_CLUSTER_NODES=skywalking-elasticsearch:9200
    #volumes:
    #  - ./oap-config:/skywalking/config # 挂载本地目录到容器中
  # Elasticsearch
  skywalking-elasticsearch:
    image: elasticsearch:7.16.3
    container_name: skywalking-elasticsearch
    ports:
      - "19200:9200"
      - "19300:9300"
    networks:
      - skywalking-network
    environment:
      - discovery.type=single-node
      - TZ=Asia/Shanghai
      - ingest.geoip.downloader.enabled=false  # 禁用GeoIP下载
    healthcheck: # 添加健康检查
      test: [ "CMD-SHELL", "curl -s http://localhost:9200/_cluster/health | grep -q '\"status\":\"green\"'" ]
      interval: 10s
      timeout: 10s
      retries: 20
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536
        hard: 65536
    mem_limit: 2g
    #volumes:
    #  - ./es-data:/usr/share/elasticsearch/data/nodes # 挂载本地目录到容器中
  # SkyWalking UI
  skywalking-ui:
    image: apache/skywalking-ui:8.9.0
    container_name: skywalking-ui
    ports:
      - "18080:8080"
    networks:
      - skywalking-network
    environment:
      - SW_OAP_ADDRESS=http://skywalking-oap:12800
      - TZ=Asia/Shanghai
    volumes:
      - ./ui-config:/app/config # 挂载本地目录到容器中
networks:
  skywalking-network:
    external:
      name: skywalking-network

详细说明

启动服务

在包含 docker-compose.yml 文件的目录中运行以下命令启动服务:

docker compose up -d

验证

检查 Elasticsearch 是否正常运行

curl -u elastic:elastic http://127.0.0.1:19200

检查 OAP Server 是否正常运行
查看 OAP Server 的日志,确认它是否成功连接到 Elasticsearch:

docker logs skywalking-oap

访问 SkyWalking UI
打开浏览器,访问 http://172.30.112.19:18080,您应该能够看到 SkyWalking 的界面。

2. 客户端代码集成

2.1 下载 SkyWalking Agent

从 SkyWalking 官方网站下载对应版本的 Agent。

wget https://archive.apache.org/dist/skywalking/8.6.0/apache-skywalking-apm-8.6.0.tar.gz
tar -xvzf apache-skywalking-apm-8.6.0.tar.gz
cd apache-skywalking-apm-bin

2.2 配置 SkyWalking Agent

编辑 agent/config/agent.config 文件,配置以下参数:

# SkyWalking Agent 名称
SW_AGENT_NAME=springboot-skywalking-demo
# Collector 服务地址
SW_AGENT_COLLECTOR_BACKEND_SERVICES=172.30.112.19:11800
# 链路的最大 Span 数量
SW_AGENT_SPAN_LIMIT=2000

2.3 启动应用

在启动 Spring Boot 应用时,通过 -javaagent 参数指定 SkyWalking Agent 的路径。

java -javaagent:/path/to/skywalking-agent.jar \
-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=172.30.112.19:11800 \
-DSW_AGENT_NAME=springboot-skywalking-demo \
-jar your-springboot-app.jar

jar包地址(官网):https://skywalking.apache.org/downloads/
阿里云:https://mirrors.aliyun.com/apache/skywalking/

运行起来就是这样

自己可以进行调用,然后记得修改时间(有的版本在下面):

使用文档

SkyWalking UI 使用文档

SkyWalking UI 提供了丰富的功能,用于监控和分析分布式系统的性能和调用链路。以下是 SkyWalking UI 的主要功能和使用方法:

1.仪表盘 (Dashboard)

仪表盘提供了全局和当前服务的运行状态和监控指标,包括:

2.拓扑图 (Topology)

拓扑图以图形化方式展示服务之间的依赖关系和调用链路,包括:

3.服务 (Service)

服务页面提供了特定服务的详细信息,包括:

4.端点 (Endpoint)

端点页面提供了特定端点的详细调用数据,包括:

5.追踪 (Trace)

追踪页面提供了具体的调用链路数据,包括:

6.性能剖析 (Performance Analysis)

性能剖析页面提供了对特定端点的性能分析,包括:

7.日志 (Log)

日志页面提供了服务的日志信息,包括:

8.告警 (Alarm)

告警页面展示了触发告警的列表,包括:

9.事件 (Event)

事件页面展示了服务实例的启动和端点的调用等事件信息。

10.时间选择器 (Time Selector)

时间选择器用于设定统计指标的时间范围,所有指标数据展示都依赖于这个时间范围。

官方文档

SkyWalking 的官方文档提供了详细的使用指南和配置说明,建议参考以下链接:

通过这些功能和文档,您可以全面监控和分析分布式系统的性能和调用链路,快速定位和解决性能问题。

到此这篇关于如何基于docker 部署Skywalking的文章就介绍到这了,更多相关docker 部署Skywalking内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文