Install the CloudBees Analytics server in cluster mode

4 minute readScalability

The CloudBees Analytics server uses the OpenSearch search engine to gather data from the CloudBees CD/RO server for use in the CloudBees Analytics dashboards such as the Deployments, Releases, and Release Command Center dashboards. OpenSearch is a powerful search and analysis engine, and part of this power lies in the ability to scale for better performance and stability.

An OpenSearch cluster is a collection of one or more nodes (servers) that holds your entire data and provides federated indexing and search capabilities across all nodes. A cluster is identified by a unique name, which is set using the Server Cluster name provided to the CloudBees Analytics server installer. This name is important, because a node can be part of a cluster only if the node is set up to join the cluster by its name.

A node is a single server that is part of your cluster, stores your data, and participates in the cluster’s indexing and search capabilities. Just like a cluster, a node is identified by a name, which is set using the Node name provided to the CloudBees Analytics server installer.

A cluster can have any number of nodes. At least three nodes are recommended for a cluster.

Creating a typical CloudBees Analytics cluster

To set up a typical CloudBees Analytics cluster deployment, complete the following steps.

Choosing the security mode for the cluster

If the mode will be password protected, then you must choose a password. This password must be used during installation for every node in cluster and it must be the same for all nodes. If the cluster will not be password protected, then all nodes must be installed using the same mode.

Installing the first node in the cluster

Use one of the following installer modes:

  • GUI mode—In the Cluster Settings installer screen, check the This is the first node in the cluster checkbox.

    For details about this screen and when it appears during the installation session, see Running an Advanced Graphical User Interface Installation .

  • Console mode—Answer Yes at the Do you want to specify additional cluster mode settings? prompt and at the Is this node the first node to be installed in the cluster? prompt.

    For details about when these prompts appear during the installation session, see Running an Advanced Command-Line Installation .

  • Silent mode—Additional arguments are not needed (cluster mode is the default).

This node will be a master node and a data node automatically.

Retrieve the certificate file containing a CA-signed certificate for the CloudBees Analytics server, which is located at <DATA_DIR>/conf/analytics/signing-ca.p12. This file is needed for installing the CloudBees Analytics server on all other cluster nodes.

Installing each additional node

Perform this step on each additional node. These settings should be the same across all additional nodes. Use one of the following installer modes:

  • GUI mode—In the Cluster Settings pane, uncheck the This is the first node in the cluster checkbox. For details about this screen and when it appears during the installation session, see Running an Advanced Graphical User Interface Installation .

    Then specify the certificate file containing a CA-signed certificate retrieved from the first node on the Advanced Settings pane.

  • Console mode—Answer Yes at the Do you want to specify additional cluster mode settings? prompt and No at the Is this node the first node to be installed in the cluster? prompt.

    For details about when these prompts appear during the installation session, see Running an Advanced Command-Line Installation .

    Then specify the certificate file containing a CA-signed certificate retrieved from the first node at the PKCS#12 file containing a CA-signed certificate for the CloudBees Analytics Server prompt.

    You can leave this entry blank for a new installation in non-clustered mode or for the first node in clustered mode. In this case, the installer will generate a new self-signed certificate and will use it to sign other TLS certificates.
  • Silent mode—Use the --serverNodeAdditional command line argument and specify the certificate file containing a CA-signed certificate retrieved from the first node using the --serverCACertificateFile command line argument.

The cluster name must be the same for all nodes.
During node installation, the list of other nodes should be specified. It is mandatory for additional nodes and optional for the first node. You should specify all available master nodes in this list.

Configuring the load balancer and the CloudBees CD/RO server

You must configure a load balancer to balance one port for the CloudBees Analytics services:

  • TCP port of the CloudBees Analytics service. The default port number is 9201.

You must configure the CloudBees CD/RO server to use the load balancer host by using the instructions in Install and configure a load balancer.

DNS issue and publish host setting

The Publish host setting is critical for nodes in a cluster. By default, this setting contains the value of the node’s hostname. The cluster will not work if this hostname resolves as an internal IP address that is unreachable by other nodes or as the IP address of the loopback interface (such as 127.0.0.1). If this is the case, then messages similar to the following will be in the log file:

[2024-03-20T21:42:49,037][WARN ][o.o.c.c.ClusterFormationFailureHelper] [dev.c.flow-testing-project.internal] cluster-manager not discovered yet, this node has not previously joined a bootstrapped cluster, and this node must discover cluster-manager-eligible nodes [dev.c.flow-testing-project.internal, foo, bar] to bootstrap a cluster: have discovered [{dev.c.flow-testing-project.internal}{LBovyYaMTJ2vR8TwX_GQsQ}{Rk0FzS7STyuLvS9bjhXy3A}{dev.c.flow-testing-project.internal}{10.30.176.76:9301}{dim}{shard_indexing_pressure_enabled=true}]; discovery will continue using [] from hosts providers and [{dev.c.flow-testing-project.internal}{LBovyYaMTJ2vR8TwX_GQsQ}{Rk0FzS7STyuLvS9bjhXy3A}{dev.c.flow-testing-project.internal}{10.30.176.76:9301}{dim}{shard_indexing_pressure_enabled=true}] from last-known cluster state; node term 0, last-accepted version 0 in term 0 [2024-03-20T21:42:49,039][WARN ][o.o.d.SeedHostsResolver ] [dev.c.flow-testing-project.internal] failed to resolve host [foo] java.net.UnknownHostException: foo at java.net.InetAddress$CachedAddresses.get(InetAddress.java:801) ~[?:?] at java.net.InetAddress.getAllByName0(InetAddress.java:1533) ~[?:?]

To fix this issue, you must specify a hostname that resolves to a real IP address by setting --serverPublishHost in console or silent install modes or in the corresponding field in GUI installation mode. Also, the exact IP address can be passed to this setting.

Changing the password for secure access to a CloudBees Analytics cluster

To change the password for secure access to a CloudBees Analytics cluster, you must perform the reconfiguration with the corresponding changes over each node in the cluster.