Cluster Upgrade
Warning
Rolling upgrades are not supported when upgrading to version 8.x. An upgraded node will not join an existing 7.x cluster. For upgrades to 8.x, all nodes must be stopped and upgraded together. See Upgrade to Version 8.0.0 for the full procedure.
This section describes how to upgrade a multi-node cluster while maintaining availability during upgrades within the same major version (e.g., 7.8 to 7.9). For single-node installations, use the standard procedure described in Version-Specific Upgrades.
In a multi-node deployment, each node is upgraded individually using the same ./install.sh -u script. The API commands in this procedure (shard allocation control, flush) prevent unnecessary shard rebalancing while nodes are being restarted.
Prerequisites
Cluster health is green
A current backup exists (see Backup and Recovery)
All nodes are running the same Energy Logserver version
Verify cluster health before proceeding:
curl -u $USER:$PASSWORD "http://localhost:9200/_cluster/health?pretty"
Procedure
1. Disable shard reallocation
Run this once, from any node, before starting the upgrade process:
curl -u $USER:$PASSWORD "localhost:9200/_cluster/settings" \
-H "Content-Type: application/json" -d '{
"persistent": {
"cluster.routing.allocation.enable": "primaries"
}
}'
curl -u $USER:$PASSWORD "localhost:9200/_flush?pretty"
2. Upgrade each node
Repeat the following steps for each node in the cluster.
a) Stop all services on the node:
systemctl stop logserver logserver-gui logserver-probe alert cerebro \
e-doc skimmer intelligence intelligence-scheduler license-service
b) Run the upgrade:
cd install
./install.sh -u
When the script asks whether to restart services, answer no — services will be started manually in the correct order.
c) Start the database service first and wait for the node to rejoin the cluster:
systemctl start logserver
Wait until the node appears in the cluster:
curl -u $USER:$PASSWORD "localhost:9200/_cat/nodes?v"
d) Wait for cluster health to reach at least yellow before moving to the next node:
curl -u $USER:$PASSWORD "http://localhost:9200/_cluster/health?pretty"
3. Re-enable shard allocation
After all nodes have been upgraded:
curl -u $USER:$PASSWORD -X PUT \
"http://localhost:9200/_cluster/settings?pretty" \
-H 'Content-Type: application/json' -d '{
"persistent": {
"cluster.routing.allocation.enable": "all"
}
}'
4. Start remaining services
On each node that runs client services, start services in the following order — the database service (logserver) must be running and healthy before starting the remaining services:
systemctl start logserver-gui alert cerebro e-doc skimmer \
intelligence intelligence-scheduler license-service logserver-probe
5. Verify
curl -u $USER:$PASSWORD "http://localhost:9200/_cluster/health?pretty"
curl -u $USER:$PASSWORD "localhost:9200/_cat/nodes?v"
After the upgrade, follow any version-specific post-upgrade steps described in Version-Specific Upgrades.