Skywalking集群是将skywalking oap作为一个服务注册到nacos上,只要skywalking oap服务没有全部宕机,保证有一个skywalking oap在运行,就能进行跟踪(SkyWalking搭建集群是非必须的,生产中不搭集群也是可以的,因为这个只是调用链路跟踪,skywalking oap跟踪服务如果宕机了,完全不会影响正常业务)

搭建一个skywalking oap集群需要:

1、至少一个Nacos(nacos也可集群)

2、至少一个ElasticSearch(es也可集群)

3、至少2个skywalking oap服务

4、至少1个SkyWalking-UI(UI也可以集群多个,用Nginx代理统一入口)

搭建SkyWalking oap 集群

1、解压两份apache-skywalking-apm-es7-8.1.0.tar.gz

2、修改 /config/application.yml 文件

1、配置Nacos

cluster:
  selector: ${SW_CLUSTER:nacos}
  
# 注意,务必注释掉standalone这一行。默认情况下用的单机模式(standalone),现在要改成集群模式,所以得注释掉。否则Skywalking将无法启动!
  standalone:
  nacos:
    Skywalking在Nacos Server的服务名称
    serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"}
    Nacos Server地址用http://ip:端口的形式
    hostPort: ${SW_CLUSTER_NACOS_HOST_PORT:localhost:8848}
    Nacos的namespace
    namespace: 'public'

2、配置 gRPCHost、gRPCPort、restHost、restPort

gRPCHost、gRPCPort是agent发送数据的地址

restHost、restPort是UI请求的地址

第一台:

core:
  default:
    restHost: ${SW_CORE_REST_HOST:0.0.0.0}
    restPort: ${SW_CORE_REST_PORT:12801}
    gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}
    gRPCPort: ${SW_CORE_GRPC_PORT:11801}

第二台:

core:
  default:
    restHost: ${SW_CORE_REST_HOST:0.0.0.0}
    restPort: ${SW_CORE_REST_PORT:12802}
    gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}
    gRPCPort: ${SW_CORE_GRPC_PORT:11802}

注:

gRPCHost、gRPCPort是agent发送数据的地址

restHost、restPort是UI请求的地址

3、配置Elasticsearch相关信息,一般配置clusterNodes即可 (使用elasticsearch7 作为storage

storage:
  selector: ${SW_STORAGE:elasticsearch7}

storage: 
elasticsearch7: 
nameSpace: ${SW_NAMESPACE:""} 
clusterNodes: ${SW_STORAGE_ES_CLUSTER_NODES:localhost:9200}

3、配置ui服务webapp.yml文件的listOfServers

listOfServers: 127.0.0.1:12801,127.0.0.1:12802

 

4、启动测试

启动一个skywalking-webapp.jar使用脚本webappService.sh

启动两个OAPServerStartUp使用脚本oapService.sh

5、启动应用程序进行测试

1、如果是jar包启动

修改agent/config/agent.config

collector.backend_service 修改为 127.0.0.1:11801,127.0.0.1:11802

java -javaagent:xxxxx/agent/skywalking-agent.jar

-Dskywalking.agent.service_name=gateway

-Dskywalking.collector.backend_service=192.168.133.128:11801,192.168.133.128:11802

-jar springboot-idea.jar

2、如果是idea启动应用程序:(注意配置两个连接地址)

SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.133.128:11801,192.168.133.128:11802;SW_AGENT_NAME=springboot-idea