ECS docker basic cluster

Hi Gbi,

Now I am getting the following error only from the front node.

“2020-11-20 19:06:51,617 e[34mINFO e[0;39m e[36mc.e.x.s.i.config.ConfigInstallerImple[0;39m - Loaded config for [com.enonic.xp.repo]”
“2020-11-20 19:06:51,626 e[34mINFO e[0;39m e[36mc.e.x.s.i.config.ConfigInstallerImple[0;39m - Loaded config for [com.enonic.xp.server.trace]”
“2020-11-20 19:06:51,634 e[34mINFO e[0;39m e[36mc.e.x.s.i.config.ConfigInstallerImple[0;39m - Loaded config for [com.enonic.xp.cluster]”
“2020-11-20 19:06:51,643 e[34mINFO e[0;39m e[36mc.e.x.s.i.config.ConfigInstallerImple[0;39m - Loaded config for [com.enonic.xp.elasticsearch]”
“2020-11-20 19:06:51,672 e[34mINFO e[0;39m e[36mc.e.x.s.i.config.ConfigInstallerImple[0;39m - Loaded config for [com.enonic.xp.web.dos]”
“2020-11-20 19:06:51,679 e[34mINFO e[0;39m e[36mc.e.x.s.i.config.ConfigInstallerImple[0;39m - Loaded config for [com.enonic.xp.server.shell]”
“2020-11-20 19:06:51,718 e[34mINFO e[0;39m e[36mc.e.x.s.shell.impl.ShellActivatore[0;39m - Remote shell access is disabled”
“2020-11-20 19:06:52,125 e[34mINFO e[0;39m e[36mc.e.x.s.internal.trace.TraceServicee[0;39m - Call tracing is disabled in config”
“2020-11-20 19:06:52,291 e[34mINFO e[0;39m e[36mc.e.x.c.i.a.c.AuditLogConfigImple[0;39m - Audit log is enabled and mappings updated.”
“2020-11-20 19:06:52,320 e[34mINFO e[0;39m e[36mc.e.x.i.blobstore.BlobStoreActivatore[0;39m - Waiting for blobstore-provider [file]”
“2020-11-20 19:06:52,321 e[34mINFO e[0;39m e[36mc.e.x.i.blobstore.BlobStoreActivatore[0;39m - Found blobstore-provider [file]”
“2020-11-20 19:06:52,344 e[34mINFO e[0;39m e[36mc.e.x.i.blobstore.BlobStoreActivatore[0;39m - Registered blobstore [file] successfully”
“2020-11-20 19:06:53,062 e[34mINFO e[0;39m e[36morg.elasticsearch.nodee[0;39m - [aebc33d1-657d-48ca-80a0-afc32e737bd7] version[2.4.6], pid[1], build[NA/NA]”
“2020-11-20 19:06:53,062 e[34mINFO e[0;39m e[36morg.elasticsearch.nodee[0;39m - [aebc33d1-657d-48ca-80a0-afc32e737bd7] initializing …”
“2020-11-20 19:06:53,067 e[34mINFO e[0;39m e[36morg.elasticsearch.pluginse[0;39m - [aebc33d1-657d-48ca-80a0-afc32e737bd7] modules [], plugins [], sites []”
“2020-11-20 19:06:55,063 e[1;31mERRORe[0;39m e[36mc.e.x.e.impl.ElasticsearchActivatore[0;39m - bundle com.enonic.xp.core.elasticsearch:7.3.2 (56)[com.enonic.xp.elasticsearch.impl.ElasticsearchActivator(52)] : The activate method has thrown an exception”
org.apache.felix.log.LogException: org.elasticsearch.common.inject.CreationException: Guice creation errors:
“1) Error injecting constructor, java.lang.IllegalArgumentException: Failed to resolve address for [xp.enonic-ecs-tst]”
at org.elasticsearch.discovery.zen.ping.unicast.UnicastZenPing.(Unknown Source)
while locating org.elasticsearch.discovery.zen.ping.unicast.UnicastZenPing
" while locating org.elasticsearch.discovery.zen.ping.ZenPing annotated with @org.elasticsearch.common.inject.multibindings.Element(setName=,uniqueId=2)"
at unknown
while locating java.util.Set<org.elasticsearch.discovery.zen.ping.ZenPing>
for parameter 1 at org.elasticsearch.discovery.zen.ping.ZenPingService.(Unknown Source)
while locating org.elasticsearch.discovery.zen.ping.ZenPingService
for parameter 6 at org.elasticsearch.discovery.zen.ZenDiscovery.(Unknown Source)
while locating org.elasticsearch.discovery.zen.ZenDiscovery
while locating org.elasticsearch.discovery.Discovery
for parameter 3 at org.elasticsearch.node.service.NodeService.(Unknown Source)
while locating org.elasticsearch.node.service.NodeService
Caused by: java.lang.IllegalArgumentException: Failed to resolve address for [xp.enonic-ecs-tst]
at org.elasticsearch.discovery.zen.ping.unicast.UnicastZenPing.(UnicastZenPing.java:165)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.elasticsearch.common.inject.DefaultConstructionProxyFactory$1.newInstance(DefaultConstructionProxyFactory.java:50)
at org.elasticsearch.common.inject.ConstructorInjector.construct(ConstructorInjector.java:86)
at org.elasticsearch.common.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:104)
at org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:47)
at org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:886)
at org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:43)
at org.elasticsearch.common.inject.Scopes$1$1.get(Scopes.java:59)
at org.elasticsearch.common.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:46)
at org.elasticsearch.common.inject.FactoryProxy.get(FactoryProxy.java:54)
at org.elasticsearch.common.inject.InjectorImpl$4$1.call(InjectorImpl.java:823)
at org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:886)
at org.elasticsearch.common.inject.InjectorImpl$4.get(InjectorImpl.java:818)
at org.elasticsearch.common.inject.multibindings.Multibinder$RealMultibinder.get(Multibinder.java:271)
at org.elasticsearch.common.inject.multibindings.Multibinder$RealMultibinder.get(Multibinder.java:195)
at org.elasticsearch.common.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:46)
at org.elasticsearch.common.inject.SingleParameterInjector.inject(SingleParameterInjector.java:42)
at org.elasticsearch.common.inject.SingleParameterInjector.getAll(SingleParameterInjector.java:66)
at org.elasticsearch.common.inject.ConstructorInjector.construct(ConstructorInjector.java:85)
at org.elasticsearch.common.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:104)
at org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:47)
at org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:886)
at org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:43)
at org.elasticsearch.common.inject.Scopes$1$1.get(Scopes.java:59)
at org.elasticsearch.common.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:46)
at org.elasticsearch.common.inject.SingleParameterInjector.inject(SingleParameterInjector.java:42)
at org.elasticsearch.common.inject.SingleParameterInjector.getAll(SingleParameterInjector.java:66)
at org.elasticsearch.common.inject.ConstructorInjector.construct(ConstructorInjector.java:85)
at org.elasticsearch.common.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:104)
at org.elasticsearch.common.inject.FactoryProxy.get(FactoryProxy.java:54)
at org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:47)
at org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:886)
at org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:43)
at org.elasticsearch.common.inject.Scopes$1$1.get(Scopes.java:59)
at org.elasticsearch.common.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:46)
at org.elasticsearch.common.inject.SingleParameterInjector.inject(SingleParameterInjector.java:42)
at org.elasticsearch.common.inject.SingleParameterInjector.getAll(SingleParameterInjector.java:66)
at org.elasticsearch.common.inject.ConstructorInjector.construct(ConstructorInjector.java:85)
at org.elasticsearch.common.inject.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:104)
at org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:47)
at org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:886)
at org.elasticsearch.common.inject.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:43)
at org.elasticsearch.common.inject.Scopes$1$1.get(Scopes.java:59)
at org.elasticsearch.common.inject.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:46)
at org.elasticsearch.common.inject.InjectorBuilder$1.call(InjectorBuilder.java:201)
at org.elasticsearch.common.inject.InjectorBuilder$1.call(InjectorBuilder.java:193)
at org.elasticsearch.common.inject.InjectorImpl.callInContext(InjectorImpl.java:879)
at org.elasticsearch.common.inject.InjectorBuilder.loadEagerSingletons(InjectorBuilder.java:193)
at org.elasticsearch.common.inject.InjectorBuilder.injectDynamically(InjectorBuilder.java:175)
at org.elasticsearch.common.inject.InjectorBuilder.build(InjectorBuilder.java:110)
at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:93)
at org.elasticsearch.common.inject.Guice.createInjector(Guice.java:70)
at org.elasticsearch.common.inject.ModulesBuilder.createInjector(ModulesBuilder.java:46)
at org.elasticsearch.node.Node.(Node.java:213)
at org.elasticsearch.node.Node.(Node.java:140)
at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:143)
at com.enonic.xp.elasticsearch.impl.ElasticsearchActivator.activate(ElasticsearchActivator.java:54)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.felix.scr.impl.inject.methods.BaseMethod.invokeMethod(BaseMethod.java:228)
at org.apache.felix.scr.impl.inject.methods.BaseMethod.access$500(BaseMethod.java:41)
at org.apache.felix.scr.impl.inject.methods.BaseMethod$Resolved.invoke(BaseMethod.java:664)
at org.apache.felix.scr.impl.inject.methods.BaseMethod.invoke(BaseMethod.java:510)
at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:317)
at org.apache.felix.scr.impl.inject.methods.ActivateMethod.invoke(ActivateMethod.java:307)
at org.apache.felix.scr.impl.manager.SingleComponentManager.createImplementationObject(SingleComponentManager.java:340)
at org.apache.felix.scr.impl.manager.SingleComponentManager.createComponent(SingleComponentManager.java:114)
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:982)
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:955)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:765)
at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:1045)
at org.apache.felix.scr.impl.manager.DependencyManager$SingleStaticCustomizer.addedService(DependencyManager.java:999)
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1216)
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.customizerAdded(ServiceTracker.java:1137)
at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.trackAdding(ServiceTracker.java:944)
at org.apache.felix.scr.impl.manager.ServiceTracker$AbstractTracked.track(ServiceTracker.java:880)
at org.apache.felix.scr.impl.manager.ServiceTracker$Tracked.serviceChanged(ServiceTracker.java:1168)
at org.apache.felix.scr.impl.BundleComponentActivator$ListenerInfo.serviceChanged(BundleComponentActivator.java:125)
at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990)
at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838)
at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545)
at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4833)
at org.apache.felix.framework.Felix.registerService(Felix.java:3804)
at org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328)
at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:906)
at org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:892)
at org.apache.felix.scr.impl.manager.RegistrationManager.changeRegistration(RegistrationManager.java:128)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.registerService(AbstractComponentManager.java:959)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:732)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:666)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:432)
at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:665)
at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:338)
at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:382)
at org.apache.felix.scr.impl.Activator.access$200(Activator.java:49)
at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:264)
at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196)
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169)
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:49)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:488)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerModified(BundleTracker.java:420)
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:232)
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450)
at org.apache.felix.framework.EventDispatcher.invokeBundleListenerCallback(EventDispatcher.java:915)
at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:834)
at org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:516)
at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4817)
at org.apache.felix.framework.Felix.startBundle(Felix.java:2336)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1539)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:308)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.net.UnknownHostException: xp.enonic-ecs-tst: Name or service not known
at java.base/java.net.Inet4AddressImpl.lookupAllHostAddr(Native Method)
at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(Unknown Source)
at java.base/java.net.InetAddress.getAddressesFromNameService(Unknown Source)
at java.base/java.net.InetAddress$NameServiceAddresses.get(Unknown Source)
at java.base/java.net.InetAddress.getAllByName0(Unknown Source)
at java.base/java.net.InetAddress.getAllByName(Unknown Source)
at java.base/java.net.InetAddress.getAllByName(Unknown Source)
at org.elasticsearch.transport.netty.NettyTransport.parse(NettyTransport.java:744)
at org.elasticsearch.transport.netty.NettyTransport.addressesFromString(NettyTransport.java:696)
at org.elasticsearch.transport.TransportService.addressesFromString(TransportService.java:426)
at org.elasticsearch.discovery.zen.ping.unicast.UnicastZenPing.(UnicastZenPing.java:160)
… 116 more
“2) Error injecting constructor, java.lang.IllegalArgumentException: Failed to resolve address for [xp.enonic-ecs-tst]”
at org.elasticsearch.discovery.zen.ping.unicast.UnicastZenPing.(Unknown Source)
while locating org.elasticsearch.discovery.zen.ping.unicast.UnicastZenPing
" while locating org.elasticsearch.discovery.zen.ping.ZenPing annotated with @org.elasticsearch.common.inject.multibindings.Element(setName=,uniqueId=2)"
at unknown
while locating java.util.Set<org.elasticsearch.discovery.zen.ping.ZenPing>
for parameter 1 at org.elasticsearch.discovery.zen.ping.ZenPingService.(Unknown Source)
while locating org.elasticsearch.discovery.zen.ping.ZenPingService
Caused by: java.lang.IllegalArgumentException: Failed to resolve address for [xp.enonic-ecs-tst]
at org.elasticsearch.discovery.zen.ping.unicast.UnicastZenPing.(UnicastZenPing.java:165)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)

Hi,

The first problem seems to be that there are no data nodes in the cluster:

{
“cluster_name” : “enonic-ecs-tst”,
“status” : “red”,
“timed_out” : true,
“number_of_nodes” : 7,              <- 7 nodes have joined the cluster
“number_of_data_nodes” : 0,         <- None of them are data nodes
“active_primary_shards” : 0,
“active_shards” : 0,
“relocating_shards” : 0,
“initializing_shards” : 0,
“unassigned_shards” : 4,
“delayed_unassigned_shards” : 0,
“number_of_pending_tasks” : 0,
“number_of_in_flight_fetch” : 0,
“task_max_waiting_in_queue_millis” : 0,
“active_shards_percent_as_number” : 0.0
}

Second problem with the frontend nodes seems to be a DNS issue. The nodes cant seem to resolve the address you provide.

Caused by: java.lang.IllegalArgumentException: Failed to resolve address for [xp.enonic-ecs-tst]
1 Like

Any progress on this @suranga?

Hi tsi,

Still struggling to start the cluster, communication with each node are happening but the cluster in the red state.

I suspect can be some issue with shards. is there any way to allocate the shards from config files rather than doing it with the management URL ?

Thanks & Regards,
Suranga

You can always get more details from Elasticsearch directly by enabling http, and accessing it directly. I believe it is port 9200.

This setting can be enabled from elasticsearch config.

Hi Thomas,

from elasticsearch HTTP anything we can configure? suddenly cluster status becoming red, can it be an issue with shards allocation? please see the error.

org.apache.felix.log.LogException: org.elasticsearch.action.NoShardAvailableActionException: No shard available for [get [storage-system-repo][branch][000-000-000-000_master]: routing [000-000-000-000]]
org.apache.felix.log.LogException: org.elasticsearch.action.NoShardAvailableActionException: No shard available for [get [storage-system-repo][branch][000-000-000-000_master]: routing [000-000-000-000]]

any other suggestions, please?

Thanks

You get get much more details about your problem by querying the ES API directly. I.e. listing all shards:
https://www.elastic.co/guide/en/elasticsearch/reference/current/cat-shards.html

Also, it is important to check how many other nodes in the cluster a node can see!

Hi Thomas,

Could you please explain to me what is the minimum config for setting up a redundancy cluster? because I just want to do load balance front end + & when all the servers are recreated I should be able to load old contents. is that possible?

because the basic cluster explained in the enonic doc not working as expected. but all the config has done as mentioned in the docs.

Minimum config for a redundancy cluster is 3 master nodes (can be smaller) and 2 data nodes, as described in basic cluster. Naturally, you must also ensure to set replica = 1 in this scenario. You also need a shared filesystem for snapshots and blobs.

Basic cluster should work fine if you follow the guide, this is being used by a range of customers.

When you have a working cluster, you can move your data into it by using the dump and load feature!

Hi Thomas 3 x master & 2 x data nodes which mean where to connect front end ?, because as per the guide i have managed to setup snapshots & blobs in shared filesystems too. communication also happening each nodes, but cluster wont work. also let me know can we set replica nodes in initial configuration. ? i am testing this on 7.3 version, are we able to resolve this issue with 7.5 latest version ?

Hi Suranga.

Any updates? Seems to be hard to help you through the forum.

So, you do not want a “basic cluster” after all, but something more advanced where you separate front-end and back-end nodes?

A basic cluster only has “data nodes” ref: https://developer.enonic.com/docs/xp/stable/deployment/strategies#basic_cluster.

If you want separate front-end nodes, you need a different setup, maybe like this: https://developer.enonic.com/docs/xp/stable/deployment/strategies#autoscaling_cluster

On the XP side, the only difference between a front-end and back-end node is a flag that says data=true on the back-end nodes. To differenciate scaling between the different node types (i.e. front-end vs back-end) you must configure these separately in ECS.

From the communication above, you should focus on getting a basic cluster running (that means only data nodes) and just send traffic to these nodes (point the load balancer to the data nodes). When that is working you could move forward by splitting front-end and back-end.

Hi Thomas,

Thanks for the update.
Presently i have managed to start the ECS cluster with frontend(data=false/master=false) + backend(data=true/master=true). frontend autoscaling & backend fixed. but for the higher load, it won’t respond properly. no idea why this behaves like this for a higher load.

Also, let me know what is the possibility of starting the cluster with 7.6. ?

Thanks & Regards,
Suranga

Sweet :slight_smile:
I believe you have missed the fact that you need to have dedicated master nodes. That is three containers with master=true and data=false. The data nodes should then have master=false.

If master nodes become unstable, that might affect cluster stability under load. Otherwise the problems with load may also happen if you don’t have enough capacity on the data nodes. Check out the performance graphs for your nodes to see if you can spot any bottlenecks. Generally, high CPU usage for front-end nodes is a good sign that they are working normally.

Hi Thomas,

Could you kindly explain me this,

we managed to setup cluster as follows

front node (traffiic hit)
master = false
data = false

data node
master = false
data = true

master node
master = true
data = false

but cluster is yellow status.

the only thing we have skip is we did not set the shared as follows

enonic repo replicas 1 --auth user:password ( is this nessassary )

Could you kindly give me some idea about this.

Thanks
Suranga

Replicas need to be set to number of datanodes - 1. This May be why you have a yellow cluster

Hi Thomas,

Could you kindly let me know when adding virtual domain mapping in com.enonic.xp.web.vhost.cfg with cluster environment, in which node we can update this config? (ie, front node? or data node ? or master node ?)

Thanks & Regards,
Suranga

Any node which needs to respond to incoming requests needs to have the vhost.cfg set, i.e. your front node(s).

2 Likes

Thanks bhj,

ill give it a try & let you know

Thanks

Hi Thomas,

Could you kindly let me know when we are putting health checks in aws target group, what is the best status code & health check path should we use? when this wasn’t properly set instances belong to the target group will always in draining status.

Thanks & Regards,
Suranga

I usually used the status code as 307 on the target group health check. but after default admin mapping change to our own DNS instead of putting localhost, the health check won’t properly detect even front end servers in good condition.

Thanks & Regards,
Suranga