在使用 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应用内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论