3. Cluster Node setup

3.1. Prerequisites

The following prerequisites have to be given:

  • Server must be suitable for the Nextron base image.

  • All nodes must be able to reach each other by resolving the fully qualified host name.

  • TCP port 9300 must be open between all nodes (Note: API port 9200 is only used locally).

3.2. Elasticsearch node installation

Install the server from the Nextron ISO base image as you normally would when installing the Analysis Cockpit itself, but DO NOT run the Nextron Installer.

Instead, copy es-node-install.sh to the new node and run it:

nextron@es-node1:~$ chmod +x es-node-install.sh
nextron@es-node1:~$ sudo ./es-node-install.sh

The script will automatically install Elasticsearch and configure the node to join the cluster with the Analysis Cockpit host as its master.

3.3. Resulting Elasticsearch configuration

The Elasticsearch configuration can be found in /etc/elasticsearch/elasticsearch.yml. It will look like the following:

 1cluster.name: elasticsearch
 2cluster.routing.allocation.exclude._name: elastic-test-01.nextron
 3path.data: /var/lib/elasticsearch
 4path.logs: /var/log/elasticsearch
 5node.roles: [ data, ingest ]
 6http.host: _local:ipv4_
 7transport.host: _site:ipv4_
 8discovery.seed_hosts: [ elastic-test-01.nextron ]
 9discovery.zen.minimum_master_nodes: 1
10xpack.security.transport.ssl.enabled: true
11xpack.security.transport.ssl.verification_mode: certificate
12xpack.security.transport.ssl.client_authentication: required
13xpack.security.transport.ssl.keystore.path: elastic-certificates.p12
14xpack.security.transport.ssl.truststore.path: elastic-certificates.p12

3.4. Enabling the node

After the installation, start elasticsearch and watch it becoming healthy:

nextron@es-node1:~$ sudo systemctl restart elasticsearch.service
nextron@es-node1:~$ watch curl

The node should automatically join the cluster.