本文为博主原创,未经允许不得转载
Skywalking 集群是将skywalking oap作为一个服务注册到nacos上,只要skywalking oap服务没有全部宕机,保证有一个skywalking oap在运行,就能进行跟踪。
Skywalking 集群搭建支持多种注册中心,如常用的 nacos, zookeeper ,etcd 等,并支持多种数据存储方式,如 Elasticsearch6, Elasticsearch7,mysql, h2 内存等等。
在本地调试过程中,选择搭建一个 nacos 做注册中心,mysql 做数据存储的 skywalking 集群搭建。搭建 skywalking 集群至少一个 nacos,两个 skywalking oap 服务,1 个ui界面。其搭建过程如下:
1. 修改 config/application.yml 文件,使用nacos 做注册中心,并配置 mysql 数据库存储
修改后的主要配置如下:
cluster: selector: ${SW_CLUSTER:nacos} nacos: serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} hostPort: ${SW_CLUSTER_NACOS_HOST_PORT:112.125.26.68:8848} # Nacos Configuration namespace namespace: ${SW_CLUSTER_NACOS_NAMESPACE:"public"} # Nacos auth username username: ${SW_CLUSTER_NACOS_USERNAME:""} password: ${SW_CLUSTER_NACOS_PASSWORD:""} # Nacos auth accessKey accessKey: ${SW_CLUSTER_NACOS_ACCESSKEY:""} secretKey: ${SW_CLUSTER_NACOS_SECRETKEY:""} core: selector: ${SW_CORE:default} default: restHost: ${SW_CORE_REST_HOST:112.125.26.68} restPort: ${SW_CORE_REST_PORT:12800} gRPCHost: ${SW_CORE_GRPC_HOST:112.125.26.68} gRPCPort: ${SW_CORE_GRPC_PORT:11800} storage: selector: ${SW_STORAGE:mysql} mysql: properties: jdbcUrl: ${SW_JDBC_URL:"jdbc:mysql://112.125.26.68:3306/swtest"} dataSource.user: ${SW_DATA_SOURCE_USER:root} dataSource.password: ${SW_DATA_SOURCE_PASSWORD:root} dataSource.cachePrepStmts: ${SW_DATA_SOURCE_CACHE_PREP_STMTS:true} dataSource.prepStmtCacheSize: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_SIZE:250} dataSource.prepStmtCacheSqlLimit: ${SW_DATA_SOURCE_PREP_STMT_CACHE_SQL_LIMIT:2048} dataSource.useServerPrepStmts: ${SW_DATA_SOURCE_USE_SERVER_PREP_STMTS:true}
其中需要注意的是,需要将core 配置中的restHost与gRPCHost 修改为本地的ip,默认配置的ip为 0.0.0.0,但如果不修改该ip的话,会导致多个skywalking 注册到nacos 上时,从nacos 管理台界面查看只出现一个skywalking 注册成功。
数据存储若选择使用mysql 时,只需要提前创建好数据库名称就可以,skywalking 启动时,会自动创建需要的所有数据库表。
当数据存储使用mysql 时,需要手动将mysql 的连接jar 包放到 oap-libs 目录中,若选择ES 日志存储时,则不需要其余的jar 。
2. 配置ui服务webapp.yml文件的listOfServers,写两个地址
server: port: 8080 collector: path: /graphql ribbon: ReadTimeout: 10000 listOfServers: 112.125.26.68:12800,112.125.26.69:12800
3. 启动服务指定 skywalking 的 collector 服务和端口
-javaagent:D:\apache-skywalking-apm-bin-es7\agent\skywalking-agent.jar -Dskywalking.agent.service_name=consumer -Dskywalking.collector.backend_service=112.125.26.68:11800,112.125.26.69:11800
#解释一下上面这三个参数的意思
#-javaagent:填的是skywalking-agent.jar的本地磁盘的路径
#-Dskywalking.agent.service_name:在skywalking上显示的服务名
#-Dskywalking.collector.backend_service:skywalking的collector服务的IP及端口