SkyWalking 高可用部署方案
引言
SkyWalking作为分布式系统的APM(应用性能监控)工具,在生产环境中需要保证服务的高可用性。高可用部署方案的核心目标是:避免单点故障、实现负载均衡和快速故障恢复。本文将介绍基于SkyWalking 9.x的集群化部署方案。
基础架构组成
SkyWalking的高可用架构主要依赖以下组件:
备注
关键组件说明:
- OAP Server:负责数据处理和分析
- Storage:支持Elasticsearch/H2/TiDB等
- UI:可视化界面
- Agent:部署在被监控服务中
详细部署步骤
1. OAP Server集群配置
修改config/application.yml
:
cluster:
selector: ${SW_CLUSTER:standalone}
standalone:
kubernetes:
namespace: ${SW_NAMESPACE:default}
labelSelector: ${SW_LABEL_SELECTOR:app=skywalking}
uidEnvName: ${SW_UID_ENV_NAME:SKYWALKING_COLLECTOR_UID}
关键参数说明:
selector
: 集群模式选择(standalone/kubernetes)kubernetes
: K8s相关配置(如使用容器编排)
2. 存储层高可用方案
Elasticsearch配置示例:
storage:
selector: ${SW_STORAGE:elasticsearch}
elasticsearch:
nameSpace: ${SW_NAMESPACE:""}
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}
protocol: ${SW_STORAGE_ES_HTTP_PROTOCOL:"http"}
提示
生产环境建议至少3个ES节点,并配置分片和副本:
PUT _template/skywalking_template
{
"index_patterns": ["skywalking*"],
"settings": {
"number_of_shards": 3,
"number_of_replicas": 1
}
}