跳到主要内容

SkyWalking 集群部署

介绍

SkyWalking是一个开源的分布式系统监控和追踪工具,用于收集、分析、聚合和可视化分布式系统的数据。在生产环境中,单节点的SkyWalking可能无法满足高可用性和性能需求,因此需要部署SkyWalking集群。集群部署可以确保系统的高可用性、负载均衡和数据冗余。

本指南将逐步介绍如何部署SkyWalking集群,包括配置存储后端、设置OAP(Observability Analysis Platform)集群和部署UI组件。


前置条件

在开始之前,请确保满足以下条件:

  • 已安装Java 8或更高版本。
  • 已安装并配置好存储后端(如Elasticsearch、MySQL等)。
  • 至少两台服务器用于部署OAP节点。

存储后端配置

SkyWalking支持多种存储后端,包括Elasticsearch、MySQL、TiDB等。以下是配置Elasticsearch作为存储后端的示例:

  1. 修改config/application.yml文件

    storage:
    selector: ${SW_STORAGE:elasticsearch}
    elasticsearch:
    nameSpace: ${SW_NAMESPACE:""}
    clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
    protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
  2. 启动Elasticsearch集群

    # 在每台Elasticsearch节点上执行
    ./bin/elasticsearch
备注

确保Elasticsearch集群已正确配置,并且所有节点可以互相通信。


OAP集群部署

OAP(Observability Analysis Platform)是SkyWalking的核心组件,负责数据处理和分析。以下是部署OAP集群的步骤:

  1. 修改config/application.yml文件

    cluster:
    selector: ${SW_CLUSTER:standalone}
    standalone:
    # 使用ZooKeeper作为集群协调器
    zookeeper:
    hostPort: ${SW_CLUSTER_ZK_HOST_PORT:localhost:2181}
    sessionTimeout: ${SW_CLUSTER_ZK_SESSION_TIMEOUT:100000}
  2. 启动OAP节点

    # 在每台OAP节点上执行
    ./bin/oapService.sh
  3. 验证集群状态

    # 检查日志文件,确认节点已加入集群
    tail -f logs/skywalking-oap-server.log
提示

如果使用ZooKeeper,请确保所有OAP节点配置相同的ZooKeeper地址。


UI组件部署

SkyWalking UI是用户与监控数据交互的界面。以下是部署UI的步骤:

  1. 修改webapp/webapp.yml文件

    server:
    port: 8080
    collector:
    path: /graphql
    ribbon:
    listOfServers: ${SW_COLLECTOR_RIBBON_LISTOFSERVERS:localhost:12800,another-oap-node:12800}
  2. 启动UI服务

    ./bin/webappService.sh
警告

确保ribbon.listOfServers包含所有OAP节点的地址,以实现负载均衡。


实际案例

假设你有一个由3台服务器组成的微服务系统,需要部署SkyWalking集群以实现高可用性监控:

  1. 架构图

  2. 配置说明

    • 两台OAP节点(oap-node1oap-node2)共享同一个Elasticsearch集群。
    • UI组件配置为同时连接两台OAP节点。

总结

通过部署SkyWalking集群,你可以实现以下优势:

  • 高可用性:单节点故障不会影响整体监控。
  • 负载均衡:多OAP节点分担数据处理压力。
  • 数据冗余:存储后端(如Elasticsearch)确保数据安全。

附加资源

  1. SkyWalking官方文档
  2. Elasticsearch集群配置指南
  3. ZooKeeper快速入门

练习

  1. 尝试部署一个包含2个OAP节点和1个UI组件的SkyWalking集群。
  2. 使用微服务框架(如Spring Cloud)生成追踪数据,并观察集群如何处理这些数据。
  3. 模拟一个OAP节点故障,验证集群的高可用性。