diff --git a/dist-material/application.yml b/dist-material/application.yml index 9c25498e4deb2d9baebbb9c3d2fc87d12bc6982b..15763bcf0c698433899eb39e0113e0470e554d81 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 a2438a12733877571323f576597ac69049dff850..b184edf0ce1646b64f8aad07fb4e64a5fe662786 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 3e206d215d72b8b97d869dc45cf26b57009d71ac..dffb6581ce75f0bb5d399e9a1a05f7c6f9c127ed 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 9e7887089c0351644f21099f8e047e8701f46506..c2281ff71e1ac74b294b7c4ba48533f06d23817e 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 bba2c6267288fcbb28732174673c7b1d9c0ff830..866c5caa82f93622a23c94f63d9ed3a116686d81 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 d6fd2cc36c0e2aad91498094efb628db454d4617..7f10bfcef1772dc4f1ef841059f07b12e51d7fdf 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 b72e376632faf9a2c413b17427143798563ca960..0bd9af54b298487d885ff434670196c80d29105b 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 2e5878444a518662dc65bfba10af7b8d4531c1c9..03711c108b8f778ab9f16222d48b27528ce20fde 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(); }