SkyWalking探针技术监控Spring Boot微服务——部署与应用详解
- SkyWalking服务端部署
- 获取 SkyWalking Agent下载与aop对应的版本(这里为9.1.0)
- 启用动态配置(无需重启应用)
- 在springboot应用配置logback-spring.xml(需要放在resources目录下)
- 修改一下Dockerfile将skywalking打到docker中
- 验证是否安装成功
- Skywalking记录请求响应监控
在当今微服务架构大行其道的数字化时代,Spring Boot 以其简洁高效的特质成为构建独立、可部署服务的首选框架。然而,随着服务数量的激增和相互依赖关系的日益复杂,应用的可见性和可观测性面临着前所未有的挑战。一个服务链路的延迟如何快速定位?一次突发的性能瓶颈究竟源于哪个微服务?分布式环境下的错误如何有效追踪?
SkyWalking,作为一款强大的开源应用性能监控(APM)和分布式追踪系统,正是应对这些挑战的利器。它专为云原生、微服务和容器化(如Kubernetes)环境设计,提供端到端的调用链路追踪、详尽的性能指标分析(如JVM、GC、HTTP请求、SQL、缓存)、服务拓扑映射以及高效的告警机制。
本文将深入探讨如何将 SkyWalking 无缝集成到您的 Spring Boot 微服务生态中。我们将从核心概念入手,逐步指导您完成 Agent 探针的部署、OAP Server 与存储后端的配置(如Elasticsearch),并最终实现通过 SkyWalking UI 对您的 Spring Boot 服务进行全方位的监控、诊断与性能优化。掌握 SkyWalking,您将获得洞察微服务运行状况的“火眼金睛”,显著提升系统稳定性、排障效率与用户体验,为您的分布式系统保驾护航。让我们开始这段提升微服务可观测性的关键旅程!
SkyWalking服务端部署
创建 docker-compose.yml 文件
version: '3.8'
services:elasticsearch:image: www.ecnfo.com:1443/proxy/docker.elastic.co/elasticsearch/elasticsearch:7.17.10container_name: elasticsearchenvironment:- discovery.type=single-node- bootstrap.memory_lock=true- "ES_JAVA_OPTS=-Xms1g -Xmx1g"- TZ=Asia/Shanghaiulimits:memlock:soft: -1hard: -1volumes:- es_data:/usr/share/elasticsearch/dataports:- 9200:9200networks:- skywalking-net# 添加健康检查healthcheck:test: ["CMD", "curl", "-f", "http://localhost:9200"]interval: 30stimeout: 10sretries: 15start_period: 60skibana:image: www.ecnfo.com:1443/proxy/docker.elastic.co/kibana/kibana:7.17.6container_name: kibanaports:- 5601:5601depends_on:elasticsearch:condition: service_healthyenvironment:- ELASTICSEARCH_HOSTS=http://elasticsearch:9200- I18N_LOCALE=zh-CN- XPACK_MONITORING_UI_CONTAINER_ELASTICSEARCH_URL=http://elasticsearch:9200command: - bash- -c- |# 增加启动等待机制echo "等待Elasticsearch完全就绪..."while ! curl -sS http://elasticsearch:9200/_cluster/health | grep -qE '"status":"(green|yellow)"'; doecho "Elasticsearch未就绪,10秒后重试..."sleep 10doneecho "启动Kibana..."exec /usr/local/bin/kibana-dockernetworks:- skywalking-netoap:image: www.ecnfo.com:1443/proxy/apache/skywalking-oap-server:9.4.0container_name: oapdepends_on:elasticsearch:condition: service_healthy # 等待ES健康检查通过environment:- SW_STORAGE=elasticsearch- SW_STORAGE_ES_CLUSTER_NODES=elasticsearch:9200- TZ=Asia/Shanghai- JAVA_OPTS=-Xms2g -Xmx2g# 增加连接超时设置- SW_STORAGE_ES_HTTP_REST_CONNECTION_TIMEOUT=30000- SW_STORAGE_ES_QUERY_TIMEOUT=60ports:- 11800:11800- 12800:12800networks:- skywalking-net