docker配置skywalking 监控springcloud应用的详细步骤

 更新时间:2025年04月21日 09:24:52   作者:iteye_10392  
本文分步骤给大家讲解docker配置skywalking 监控springcloud应用的方法,感兴趣的朋友一起看看吧

在使用 Docker 配置 SkyWalking 监控 Spring Cloud 应用时,主要分为以下几个步骤:

1. 准备工作

  • 确保你的开发环境已经安装了 Docker 和 Docker Compose。
  • 准备好 Spring Cloud 应用代码,并确保它支持 SkyWalking 的探针(Agent)。

2. 拉取 SkyWalking OAP Server 和 UI 镜像

SkyWalking 提供了官方的 Docker 镜像,可以通过以下命令拉取:

docker pull apache/skywalking-oap-server
docker pull apache/skywalking-ui
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.0

3. 创建 docker-compose.yml 文件

为了简化部署,可以使用 Docker Compose 来启动 SkyWalking 的 OAP Server 和 UI。

创建一个 docker-compose.yml 文件,内容如下:

version: '3.7'
services:
  oap:
    image: apache/skywalking-oap-server
    container_name: skywalking-oap
    ports:
      - "11800:11800" # gRPC port
      - "12800:12800" # REST port
    environment:
      SW_STORAGE: elasticsearch
      SW_STORAGE_ES_CLUSTER_NODES: elasticsearch:9200
    networks:
      - skywalking-net
  ui:
    image: apache/skywalking-ui
    container_name: skywalking-ui
    ports:
      - "8080:8080"
    environment:
      SW_OAP_ADDRESS: http://oap:12800
    depends_on:
      - oap
    networks:
      - skywalking-net
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.17.0
    container_name: elasticsearch
    environment:
      discovery.type: single-node
    ports:
      - "9200:9200"
    networks:
      - skywalking-net
networks:
  skywalking-net:
    driver: bridge

4. 启动 SkyWalking 服务

运行以下命令启动 SkyWalking 的 OAP Server、UI 和 Elasticsearch:

docker compose up -d

这将启动以下服务:

  • OAP Server:负责收集和处理监控数据。
  • UI:提供可视化界面,默认访问地址为 http://localhost:8080
  • Elasticsearch:存储监控数据。

5. 配置 Spring Cloud 应用

为了让 Spring Cloud 应用与 SkyWalking 集成,需要在应用中引入 SkyWalking 的 Java Agent。

5.1 下载 SkyWalking Agent

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

解压后,你会得到一个文件夹,例如 apache-skywalking-java-agent-8.9.0

5.2 修改 Spring Cloud 应用的启动命令

在 Spring Cloud 应用的启动命令中添加 -javaagent 参数。例如:

java -javaagent:/path/to/apache-skywalking-java-agent-8.9.0/skywalking-agent.jar \
     -Dskywalking.agent.service_name=your-service-name \
     -Dskywalking.collector.backend_service=oap:11800 \
     -jar your-spring-cloud-app.jar

5.3 关键参数说明

  • -javaagent:指定 SkyWalking Agent 的路径。
  • skywalking.agent.service_name:设置你的服务名称,用于区分不同的服务。
  • skywalking.collector.backend_service:指定 SkyWalking OAP Server 的地址(默认为 oap:11800)。

6. 使用 Docker 启动 Spring Cloud 应用

如果你使用 Docker 来运行 Spring Cloud 应用,可以在 Dockerfile 或 docker-compose.yml 中添加 -javaagent 参数。

例如,在 docker-compose.yml 中添加:

app:
  image: your-spring-cloud-image
  container_name: spring-cloud-app
  environment:
    - JAVA_OPTS=-javaagent:/skywalking-agent/skywalking-agent.jar -Dskywalking.agent.service_name=your-service-name -Dskywalking.collector.backend_service=oap:11800
  volumes:
    - ./apache-skywalking-java-agent-8.9.0:/skywalking-agent
  depends_on:
    - oap
  networks:
    - skywalking-net

7. 验证监控

  • 访问 SkyWalking UI:http://localhost:8080
  • 在页面上查看服务拓扑图、性能指标等信息。
  • 如果一切正常,你应该能看到你的 Spring Cloud 应用的监控数据。

8. 注意事项

  • 确保 Spring Cloud 应用和 SkyWalking OAP Server 在同一个网络中(例如通过 Docker Compose 创建的 skywalking-net 网络)。
  • 如果使用的是自定义的 Elasticsearch 地址或端口,请修改 SW_STORAGE_ES_CLUSTER_NODES 环境变量。
  • 根据实际需求调整 SkyWalking Agent 的配置文件(agent/config/agent.config)。

通过以上步骤,你可以成功使用 Docker 配置 SkyWalking 来监控 Spring Cloud 应用!

到此这篇关于docker配置skywalking 监控springcloud应用的文章就介绍到这了,更多相关docker 监控springcloud应用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker 部署HAProxy v2.2.29 并暴露指标接口的问题解决

    Docker 部署HAProxy v2.2.29 并暴露指标接口的问题解决

    haproxy提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案,这篇文章主要介绍了Docker 部署HAProxy v2.2.29 并暴露指标接口,需要的朋友可以参考下
    2023-04-04
  • docker 连接宿主Mysql操作

    docker 连接宿主Mysql操作

    这篇文章主要介绍了docker 连接宿主Mysql操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 基于Docker的Mysql主备搭建的实现步骤

    基于Docker的Mysql主备搭建的实现步骤

    本文主要介绍了基于Docker的Mysql主备搭建的实现步骤,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • wsl2中docker安装完毕后无法正常启动的解决方案

    wsl2中docker安装完毕后无法正常启动的解决方案

    在Windows 10中安装WSL2并配置Docker时遇到问题,通过切换iptables版本(从iptables-nft到iptables-legacy)解决了Docker运行异常的问题
    2025-11-11
  • Ubuntu安装Docker及配置镜像加速与常见命令超详细教程

    Ubuntu安装Docker及配置镜像加速与常见命令超详细教程

    Docker是一种流行的容器化平台,它能够简化应用程序的部署和管理,这篇文章主要介绍了Ubuntu安装Docker及配置镜像加速与常见命令的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-12-12
  • 如何解决报错unable to remove volume问题

    如何解决报错unable to remove volume问题

    这篇文章主要介绍了如何解决报错unable to remove volume问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 在docker中部署并启动redis的方法

    在docker中部署并启动redis的方法

    这篇文章主要介绍了在docker中部署并启动redis的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • Docker部署tenine实现后端应用的高可用与负载均衡(推荐)

    Docker部署tenine实现后端应用的高可用与负载均衡(推荐)

    采用Docker部署Tengine和Keepalived,实现了一种适用于小型应用场景的高可用负载均衡解决方案,本方案需要两台Ubuntu服务器、Docker软件以及三个IP地址,适合需要简易而可靠的负载均衡和高可用性的小型应用部署,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • Docker Compose一键部署LNMP环境详细过程

    Docker Compose一键部署LNMP环境详细过程

    LNMP通常包括Nginx作为Web服务器,MySQL作为数据库,PHP处理动态内容,可能还需要phpMyAdmin进行数据库管理,今天给大家介绍下Docker Compose一键部署LNMP环境的详细过程,感兴趣的朋友一起看看吧
    2025-04-04
  • docker和k8s中实现批量删除不要的资源

    docker和k8s中实现批量删除不要的资源

    文章介绍了在Docker和K8s中批量删除不是running状态的容器或pod的四种方法,包括根据容器状态删除Exited状态的容器、显示所有容器并过滤出Exited状态的容器、删除所有未运行的容器以及使用docker containers prune命令删除孤立的容器
    2025-12-12

最新评论