Change Node Discovery from Multicast to TCP/IP or AWS

On this page:

If you're setting up Confluence Data Center for the first time, it'll step you through the process of choosing your discovery mode and adding cluster nodes. If you decide to change the node discovery for the cluster, you'll need to edit the confluence.cfg.xml file in the local home directory of each cluster node.

  • Before you make any changes, shut down all nodes in your cluster
  • Make sure the discovery configuration is exactly the same for each node (make the same changes to the confluence.cfg.xml file in each local home directory)
  • Always perform a safety backup before making manual edits to these files

The changes you need to make may differ slightly, depending on whether you've upgraded from an older version of Confluence Data Center or if you've started with version 5.9. We've detailed both methods, below.

To change from multicast to TCP/IP

Look for the following two lines in the confluence.cfg.xml file:

<property name="confluence.cluster.address">[multicast IP]</property>
<property name="confluence.cluster.join.type">multicast</property>

If both lines exist in the file, change them to the lines below; where the confluence.cluster.address property exists, but there's no reference to the confluence.cluster.join.type property, update the first line and add the second line as shown below.

<property name="confluence.cluster.peers">[node 1 IP],[node 2 IP],[node 3 IP]</property> <!-- A comma-separated list of node IP addresses, without spaces -->
<property name="confluence.cluster.join.type">tcp_ip</property> <!-- accepted values are multicast or tcp_ip -->

Enter the address of each node, and separate each address with a comma. Please, make sure to remove the brackets from around the IP addresses.

You can now restart your cluster nodes.

To change from multicast to AWS

Look for the following two lines in the confluence.cfg.xml file and remove them:

<property name="confluence.cluster.address">[multicast IP]</property>
<property name="confluence.cluster.join.type">multicast</property>


Depending on which type of credentials you are passing to Confluence, you will add one of the following two blocks with your AWS configuration. 

Option 1: For Access Key/Secret Key based credentials:

<property name="confluence.cluster.join.type">aws</property>
<property name="confluence.cluster.aws.host.header">[---VALUE---]</property>
<property name="confluence.cluster.aws.region">[---VALUE---]</property>
<property name="confluence.cluster.aws.tag.key">[---VALUE---]</property>
<property name="confluence.cluster.aws.tag.value">[---VALUE---]</property>
<property name="confluence.cluster.aws.access.key">[---VALUE---]</property>
<property name="confluence.cluster.aws.secret.key">[---VALUE---]</property>

Option 2: For IAM role based credentials:

<property name="confluence.cluster.join.type">aws</property>
<property name="confluence.cluster.aws.host.header">[---VALUE---]</property>
<property name="confluence.cluster.aws.region">[---VALUE---]</property>
<property name="confluence.cluster.aws.tag.key">[---VALUE---]</property>
<property name="confluence.cluster.aws.tag.value">[---VALUE---]</property>
<property name="confluence.cluster.aws.iam.role">[---VALUE---]</property>

To change from TCP/IP to AWS

Look for the following two lines in the confluence.cfg.xml file and remove them:

<property name="confluence.cluster.join.type">tcp_ip</property>
<property name="confluence.cluster.peers">[node 1 IP],[node 2 IP],[node 3 IP]</property>

Depending on which type of credentials you are passing to Confluence, you will add one of the following two blocks with your AWS configuration. 

Option 1: For Access Key/Secret Key based credentials:

<property name="confluence.cluster.join.type">aws</property>
<property name="confluence.cluster.aws.host.header">[---VALUE---]</property>
<property name="confluence.cluster.aws.region">[---VALUE---]</property>
<property name="confluence.cluster.aws.tag.key">[---VALUE---]</property>
<property name="confluence.cluster.aws.tag.value">[---VALUE---]</property>
<property name="confluence.cluster.aws.access.key">[---VALUE---]</property>
<property name="confluence.cluster.aws.secret.key">[---VALUE---]</property>

Option 2: For IAM role based credentials:

<property name="confluence.cluster.join.type">aws</property>
<property name="confluence.cluster.aws.host.header">[---VALUE---]</property>
<property name="confluence.cluster.aws.region">[---VALUE---]</property>
<property name="confluence.cluster.aws.tag.key">[---VALUE---]</property>
<property name="confluence.cluster.aws.tag.value">[---VALUE---]</property>
<property name="confluence.cluster.aws.iam.role">[---VALUE---]</property>

You can now restart your cluster nodes.

Note that if you're using a CloudFormation YAML template you need to make sure you have these appropriate values as a minimum and they should be reflected on the AWS side as well. If you switch to AWS mode cluster type, please also review Running Confluence Data Center in AWS and make sure you have the following set up in your YAML:

Key: Cluster
Value: !Ref AWS::StackName
PropagateAtLaunch: true

To change from TCP/IP to multicast

To switch from TCP/IP to multicast, just perform the reverse of the changes outlined above.

Reference of properties in the confluence.cfg.xml file

keyvalid valuesnotes

confluence.cluster.join.type

'multicast' or 'tcp_ip'or 'aws'

Pre-5.9 Data Center installations won't have this key. By default, if the key is missing, Confluence will choose multicast
confluence.cluster.address
a single multicast IP addressThis key is only used by confluence if confluence.cluster.join.type is set to multicast
confluence.cluster.peers
a comma-separated string of IP addresses (no spaces)

There must be at least one address here. The addresses are the IP address of each node in the cluster, for example
<property name="confluence.cluster.peers">[node 1 IP],[node 2 IP],[node 3 IP]</property> 

This key is only used by confluence if confluence.cluster.join.type is set to tcp_ip

confluence.cluster.authentication.enabledtrue, falseSet this property to false if you don't want to authenticate Confluence nodes as they join the cluster. This is not recommended.
confluence.cluster.authentication.secret(automatically generated)Set this property to change the shared secret used to authenticate nodes as they join the cluster. The secret must be a string of maximum 40 characters. 




Last modified on May 25, 2023

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.