diff --git a/dist-material/application.yml b/dist-material/application.yml index 9c25498e4..15763bcf0 100644 --- a/dist-material/application.yml +++ b/dist-material/application.yml @@ -37,6 +37,8 @@ cluster: # serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} # Consul cluster nodes, example: 10.0.0.1:8500,10.0.0.2:8500,10.0.0.3:8500 # hostPort: ${SW_CLUSTER_CONSUL_HOST_PORT:localhost:8500} +# # Consul aclToken +# #aclToken: ${SW_CLUSTER_CONSUL_ACLTOKEN} # nacos: # serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} # hostPort: ${SW_CLUSTER_NACOS_HOST_PORT:localhost:8848} @@ -210,6 +212,8 @@ configuration: # hostAndPorts: ${consul.address} # # Sync period in seconds. Defaults to 60 seconds. # period: 1 +# # Consul aclToken +# #aclToken: ${consul.aclToken} #exporter: # grpc: diff --git a/docs/en/setup/backend/backend-cluster.md b/docs/en/setup/backend/backend-cluster.md index a2438a127..b184edf0c 100644 --- a/docs/en/setup/backend/backend-cluster.md +++ b/docs/en/setup/backend/backend-cluster.md @@ -87,6 +87,8 @@ cluster: serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} # Consul cluster agents, example, 1. client agent, 127.0.0.1:8500 2. server agent, 10.0.0.1:8500,10.0.0.2:8500,10.0.0.3:8500 hostPort: ${SW_CLUSTER_CONSUL_HOST_PORT:localhost:8500} + # aclToken of connection consul (optional) + aclToken: ${SW_CLUSTER_CONSUL_ACLTOKEN} ``` Same as Zookeeper coordinator, diff --git a/docs/en/setup/backend/dynamic-config.md b/docs/en/setup/backend/dynamic-config.md index 3e206d215..dffb6581c 100755 --- a/docs/en/setup/backend/dynamic-config.md +++ b/docs/en/setup/backend/dynamic-config.md @@ -109,6 +109,8 @@ configuration: hostAndPorts: 127.0.0.1:8500 # Sync period in seconds. Defaults to 60 seconds. period: 60 + # aclToken of connection consul (optional) + aclToken: ${consul.aclToken} ``` diff --git a/oap-server/server-bootstrap/src/main/resources/application.yml b/oap-server/server-bootstrap/src/main/resources/application.yml index 9e7887089..c2281ff71 100755 --- a/oap-server/server-bootstrap/src/main/resources/application.yml +++ b/oap-server/server-bootstrap/src/main/resources/application.yml @@ -36,6 +36,8 @@ cluster: # serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} # Consul cluster nodes, example: 10.0.0.1:8500,10.0.0.2:8500,10.0.0.3:8500 # hostPort: ${SW_CLUSTER_CONSUL_HOST_PORT:localhost:8500} +# # Consul aclToken +# #aclToken: ${SW_CLUSTER_CONSUL_ACLTOKEN} # nacos: # serviceName: ${SW_SERVICE_NAME:"SkyWalking_OAP_Cluster"} # # Nacos Configuration namespace @@ -223,6 +225,8 @@ configuration: # hostAndPorts: ${consul.address} # # Sync period in seconds. Defaults to 60 seconds. # period: 1 +# # Consul aclToken +# #aclToken: ${consul.aclToken} #exporter: # grpc: diff --git a/oap-server/server-cluster-plugin/cluster-consul-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ClusterModuleConsulConfig.java b/oap-server/server-cluster-plugin/cluster-consul-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ClusterModuleConsulConfig.java index bba2c6267..866c5caa8 100644 --- a/oap-server/server-cluster-plugin/cluster-consul-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ClusterModuleConsulConfig.java +++ b/oap-server/server-cluster-plugin/cluster-consul-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ClusterModuleConsulConfig.java @@ -28,5 +28,6 @@ class ClusterModuleConsulConfig extends ModuleConfig { @Setter @Getter private String serviceName; @Setter @Getter private String hostPort; @Setter @Getter private String internalComHost; + @Getter @Setter private String aclToken; @Setter @Getter private int internalComPort = -1; } diff --git a/oap-server/server-cluster-plugin/cluster-consul-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ClusterModuleConsulProvider.java b/oap-server/server-cluster-plugin/cluster-consul-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ClusterModuleConsulProvider.java index d6fd2cc36..7f10bfcef 100644 --- a/oap-server/server-cluster-plugin/cluster-consul-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ClusterModuleConsulProvider.java +++ b/oap-server/server-cluster-plugin/cluster-consul-plugin/src/main/java/org/apache/skywalking/oap/server/cluster/plugin/consul/ClusterModuleConsulProvider.java @@ -21,6 +21,7 @@ package org.apache.skywalking.oap.server.cluster.plugin.consul; import com.google.common.net.HostAndPort; import com.orbitz.consul.Consul; import com.orbitz.consul.ConsulException; +import org.apache.commons.lang3.StringUtils; import org.apache.skywalking.oap.server.core.CoreModule; import org.apache.skywalking.oap.server.core.cluster.ClusterModule; import org.apache.skywalking.oap.server.core.cluster.ClusterNodesQuery; @@ -76,6 +77,10 @@ public class ClusterModuleConsulProvider extends ModuleProvider { // we should set this value or it will be blocked forever .withConnectTimeoutMillis(3000); + if (StringUtils.isNotEmpty(config.getAclToken())) { + consulBuilder.withAclToken(config.getAclToken()); + } + if (hostAndPorts.size() > 1) { client = consulBuilder.withMultipleHostAndPort(hostAndPorts, 5000).build(); } else { diff --git a/oap-server/server-configuration/configuration-consul/src/main/java/org/apache/skywalking/oap/server/configuration/consul/ConsulConfigurationCenterSettings.java b/oap-server/server-configuration/configuration-consul/src/main/java/org/apache/skywalking/oap/server/configuration/consul/ConsulConfigurationCenterSettings.java index b72e37663..0bd9af54b 100644 --- a/oap-server/server-configuration/configuration-consul/src/main/java/org/apache/skywalking/oap/server/configuration/consul/ConsulConfigurationCenterSettings.java +++ b/oap-server/server-configuration/configuration-consul/src/main/java/org/apache/skywalking/oap/server/configuration/consul/ConsulConfigurationCenterSettings.java @@ -33,4 +33,8 @@ public class ConsulConfigurationCenterSettings extends ModuleConfig { @Getter @Setter private String hostAndPorts; + + @Getter + @Setter + private String aclToken; } diff --git a/oap-server/server-configuration/configuration-consul/src/main/java/org/apache/skywalking/oap/server/configuration/consul/ConsulConfigurationWatcherRegister.java b/oap-server/server-configuration/configuration-consul/src/main/java/org/apache/skywalking/oap/server/configuration/consul/ConsulConfigurationWatcherRegister.java index 2e5878444..03711c108 100644 --- a/oap-server/server-configuration/configuration-consul/src/main/java/org/apache/skywalking/oap/server/configuration/consul/ConsulConfigurationWatcherRegister.java +++ b/oap-server/server-configuration/configuration-consul/src/main/java/org/apache/skywalking/oap/server/configuration/consul/ConsulConfigurationWatcherRegister.java @@ -32,6 +32,7 @@ import com.orbitz.consul.Consul; import com.orbitz.consul.KeyValueClient; import com.orbitz.consul.cache.KVCache; import com.orbitz.consul.model.kv.Value; +import org.apache.commons.lang3.StringUtils; import org.apache.skywalking.oap.server.configuration.api.ConfigTable; import org.apache.skywalking.oap.server.configuration.api.ConfigWatcherRegister; import org.slf4j.Logger; @@ -70,6 +71,10 @@ public class ConsulConfigurationWatcherRegister extends ConfigWatcherRegister { builder.withMultipleHostAndPort(hostAndPorts, 5000); } + if (StringUtils.isNotEmpty(settings.getAclToken())) { + builder.withAclToken(settings.getAclToken()); + } + consul = builder.build().keyValueClient(); }