SkyWalking微服务监控部署与优化全攻略

简介: 综上所述,虽然SkyWalking的初始部署流程相对复杂,但通过一步步的准备和配置,可以充分发挥其作为可观测平台的强大功能,实现对微服务架构的高效监控和治理。尽管未亲临,心已向往。将一件事做到极致,便是天分的展现。

在微服务架构中,服务的监控治理显得尤为重要。为了满足项目需求,我们深入分析了市场上多种链路追踪框架,最终选定了国产开源的SkyWalking框架。该框架不仅得到了Apache基金会的孵化支持,还拥有强大的技术团队,包括项目VP吴晟等大佬。最初,我们仅看重其链路追踪功能,但深入使用后发现,其功能远超我们的预期。SkyWalking不仅是一个开源的可观测平台,还能实时收集、分析和可视化云原生基础设施以及应用程序的性能数据。

02SkyWalking架构和功能

细看之下,SkyWalking的架构体系功能全面且强大。其逻辑组成主要分为四个部分:首先是探针,负责收集应用服务资源数据,如GUI/CLI、metrics系统以及不同语言的应用系统等,并通过Http或gRPC方式上报监控数据指标;其次是平台后端,即OAP平台,负责处理、分析和聚合系统监控数据,同时支撑上游用户界面数据展示的API;再者是存储,用于保存收集的数据,支持H2、Mysql、Elasticsearch等多种数据库;最后是用户界面,一套简洁美观的官方开源UI平台,方便开发运维人员使用。

此外,SkyWalking还定义了服务、服务实例和端点等基础概念。服务是指提供相同行为的请求工作负载的集合,通常以集群方式部署。服务实例则是服务集群中的单个服务实例,如某台机器上的特定服务。而端点则是服务中的请求路径,类似于接口API,不仅包括Http接口,还涵盖rpc中的调用方法。

03部署步骤

▣ 准备工作

在部署使用方面,我们首先需要做好准备工作。目前SkyWalking的官方最新版本为v8.8.1,但本文将以v8.7.0版本为例进行部署使用说明。在存储方面,我们选用的是Elasticsearch 7.x版本,后续部署SkyWalking时将默认选择es7。准备SkyWalking软件包有两种方式:源码构建和下载安装。

源码构建:

  1. 安装Jdk1.8+和Maven 3.6+版本。
  2. 通过git从官方Github上pull源码,或从Apache官网下载页面下载。

使用git命令克隆源码并切换到v8.7.0分支:

```shell

git clone -b v8.7.0 --recurse-submodules

cd skywalking/

```

或者,可以选择官方下载方式:

```shell

wget

```

解压下载的源码包并进入目录:

```shell

tar -zxvf apache-skywalking-apm-8.7.0-src.tgz

cd apache-skywalking-apm-8.7.0-src/

```

接下来,使用maven进行构建:

```shell

./mvnw clean package -Dmaven.test.skip

```

查看编译结果并解压二进制包:

```shell

cd apm-dist-es7/target

tar -zxvf apache-skywalking-apm-es7-8.7.0.tar.gz

cd apache-skywalking-apm-bin-es7

ls -ls

```

▣ 单机部署流程

修改配置文件以指定存储选项及Elasticsearch设置。 SkyWalking OAP服务的配置文件位于config/application.yml,其中包含了详细的配置参数说明。通过这些配置,SkyWalking OAP服务将能够正确地与Elasticsearch进行交互,实现数据的持久化存储。

需要注意的一些关键配置项包括:

```

indexShardsNumber: ${SW_STORAGE_ES_INDEX_SHARDS_NUMBER:1}

superDatasetIndexShardsFactor: ${SW_STORAGE_ES_SUPER_DATASET_INDEX_SHARDS_FACTOR:5}

indexReplicasNumber: ${SW_STORAGE_ES_INDEX_REPLICAS_NUMBER:0}

bulkActions: ${SW_STORAGE_ES_BULK_ACTIONS:1000}

flushInterval: ${SW_STORAGE_ES_FLUSH_INTERVAL:10}

concurrentRequests: ${SW_STORAGE_ES_CONCURRENT_REQUESTS:2}

resultWindowMaxSize: ${SW_STORAGE_ES_QUERY_MAX_WINDOW_SIZE:10000}

metadataQueryMaxSize: ${SW_STORAGE_ES_QUERY_MAX_SIZE:5000}

segmentQueryMaxSize: ${SW_STORAGE_ES_QUERY_SEGMENT_SIZE:200}

```

这些配置参数用于优化SkyWalking的性能和Elasticsearch的存储效率。

启动SkyWalking OAP服务:

```

$ bin/oapServiceInit.sh

```

启动成功后,将显示“SkyWalking OAP started successfully!”的消息。

启动SkyWalking UI服务:

```

$ bin/webappService.sh

```

启动成功后,将显示“SkyWalking Web Application started successfully!”的消息。访问UI界面时,SkyWalking UI界面的数据是通过请求SkyWalking OAP服务获得的,因此确保SkyWalking OAP服务已成功启动并可访问。<h1><p id="hg7.cnaga.org.cn">5</p></h1> <h1><p id="xn1.baidvc.org.cn">2</p></h1> <h1><p id="xx1.baidvb.org.cn">8</p></h1> <h1><p id="9v8.rockitapple.org.cn">8</p></h1> <h1><p id="x6w.xueyuwang.org.cn">8</p></h1> <h1><p id="sen.csoft.org.cn">8</p></h1> <h1><p id="qr5.centralaidagency.org.cn">8</p></h1> <h1><p id="j34.limu.mobi">2</p></h1> <h1><p id="byu.dxgroup.org.cn">7</p></h1> <h1><p id="3u2.baidvb.org.cn">6</p></h1>  

04集群部署和优化

▣ 集群部署准备

在生产环境中,为了确保服务的高可用性,通常会采用集群方式进行部署。建立Elasticsearch和注册中心集群,选择Zookeeper或其他工具进行服务注册。 搭建SkyWalking OAP服务集群时,在集群模式下,OAP服务的配置和启动与单机模式基本相似,但需将SkyWalking OAP服务注册到所选的注册中心上。

▣ 集群配置和启动

在集群模式下,OAP和UI服务注册到注册中心,借助负载均衡支持高可用性。 例如,SkyWalking支持Zookeeper、Kubernetes、Consul、Nacos等多种注册中心。搭建SkyWalking UI服务集群时,需借助Nginx进行负载均衡。

综上所述,虽然SkyWalking的初始部署流程相对复杂,但通过一步步的准备和配置,可以充分发挥其作为可观测平台的强大功能,实现对微服务架构的高效监控和治理。尽管未亲临,心已向往。将一件事做到极致,便是天分的展现。

相关文章
|
2月前
|
Prometheus 监控 Java
日志收集和Spring 微服务监控的最佳实践
在微服务架构中,日志记录与监控对系统稳定性、问题排查和性能优化至关重要。本文介绍了在 Spring 微服务中实现高效日志记录与监控的最佳实践,涵盖日志级别选择、结构化日志、集中记录、服务ID跟踪、上下文信息添加、日志轮转,以及使用 Spring Boot Actuator、Micrometer、Prometheus、Grafana、ELK 堆栈等工具进行监控与可视化。通过这些方法,可提升系统的可观测性与运维效率。
236 1
日志收集和Spring 微服务监控的最佳实践
|
3月前
|
存储 Prometheus 监控
从入门到实战:一文掌握微服务监控系统 Prometheus + Grafana
随着微服务架构的发展,系统监控变得愈发重要。本文介绍如何利用 Prometheus 和 Grafana 构建高效的监控系统,涵盖数据采集、存储、可视化与告警机制,帮助开发者提升系统可观测性,及时发现故障并优化性能。内容涵盖 Prometheus 的核心组件、数据模型及部署方案,并结合 Grafana 实现可视化监控,适合初学者和进阶开发者参考实践。
483 6
|
2月前
|
监控 Kubernetes Java
使用 New Relic APM 和 Kubernetes Metrics 监控 EKS 上的 Java 微服务
在阿里云AKS上运行Java微服务常遇性能瓶颈与OOMKilled等问题。本文教你通过New Relic实现集群与JVM双层监控,集成Helm部署、JVM代理注入、GC调优及告警仪表盘,打通从节点资源到应用内存的全链路观测,提升排障效率,保障服务稳定。
149 1
|
2月前
|
jenkins Java 持续交付
使用 Jenkins 和 Spring Cloud 自动化微服务部署
随着单体应用逐渐被微服务架构取代,企业对快速发布、可扩展性和高可用性的需求日益增长。Jenkins 作为领先的持续集成与部署工具,结合 Spring Cloud 提供的云原生解决方案,能够有效简化微服务的开发、测试与部署流程。本文介绍了如何通过 Jenkins 实现微服务的自动化构建与部署,并结合 Spring Cloud 的配置管理、服务发现等功能,打造高效、稳定的微服务交付流程。
314 0
使用 Jenkins 和 Spring Cloud 自动化微服务部署
|
4月前
|
缓存 监控 API
电商API的微服务架构优化策略
随着电商快速发展,API成为连接用户、商家与系统的核心。本文探讨微服务架构下电商API的优化策略,分析高并发、低延迟与数据一致性等挑战,并提供服务拆分、缓存异步、监控容器化等实践方案,助力构建高性能、高可用的电商系统,提升用户体验与业务效率。
113 0
|
11月前
|
JSON Java API
利用Spring Cloud Gateway Predicate优化微服务路由策略
Spring Cloud Gateway 的路由配置中,`predicates`​(断言)用于定义哪些请求应该匹配特定的路由规则。 断言是Gateway在进行路由时,根据具体的请求信息如请求路径、请求方法、请求参数等进行匹配的规则。当一个请求的信息符合断言设置的条件时,Gateway就会将该请求路由到对应的服务上。
875 69
利用Spring Cloud Gateway Predicate优化微服务路由策略
|
12月前
|
监控 持续交付 Docker
Docker容器化部署在微服务架构中的应用
Docker容器化部署在微服务架构中的应用
530 60
|
9月前
|
人工智能 Java 数据处理
Java高级应用开发:基于AI的微服务架构优化与性能调优
在现代企业级应用开发中,微服务架构虽带来灵活性和可扩展性,但也增加了系统复杂性和性能瓶颈。本文探讨如何利用AI技术,特别是像DeepSeek这样的智能工具,优化Java微服务架构。AI通过智能分析系统运行数据,自动识别并解决性能瓶颈,优化服务拆分、通信方式及资源管理,实现高效性能调优,助力开发者设计更合理的微服务架构,迎接未来智能化开发的新时代。
|
12月前
|
存储 监控 负载均衡
构建高效微服务架构:服务治理与监控的实践
构建高效微服务架构:服务治理与监控的实践
|
11月前
|
Prometheus 监控 Java
如何全面监控所有的 Spring Boot 微服务
如何全面监控所有的 Spring Boot 微服务
498 3

热门文章

最新文章