Upgrades
Before You Upgrade
- Contact Superna Support before upgrading the cluster to confirm compatibility between the target ECA and Eyeglass versions — Eyeglass and the ECA cluster must run the same version.
- Upgrade assistance is a scheduled service and is not covered under 24/7 support. Review your EULA terms and conditions.
- Always take a VM-level snapshot before any upgrade step, so you can roll back to the previous release if needed.
Two upgrade paths are available: a carrier-grade (rolling) upgrade with no downtime, and a standard upgrade that takes the cluster offline during the upgrade window.
Carrier-Grade Upgrade (No Downtime)
Requires ECA release 2.5.8.2 or later.
-
Log in to ECA node 1 and copy the upgrade run file to that node.
-
Make the file executable:
chmod 777 eca-xxxxx.run -
Run the upgrade with the rolling-upgrade flag:
./eca-xxxxx.run --rolling-upgrade -
Provide your credentials when prompted. Nodes are upgraded one at a time so that audit data ingestion and all ECA products continue operating throughout. The process manages all node upgrades and exits when complete, with all containers running the new code.
Standard Upgrade
-
Take a hypervisor-level VM snapshot of every ECA node — mandatory, to allow rollback if needed.
-
Disable Data Security, Easy Auditor, and Performance Auditor before beginning:
- Log in to ECA node 1.
- Run
ecactl cluster down. - Wait for the command to complete on all nodes.
-
Upgrade the Eyeglass VM first. Eyeglass and the ECA cluster must be upgraded to the same version.
-
Download the latest GA release for the ECA upgrade.
-
Log in to ECA node 1. The cluster should already be down from step 2 — verify with:
ecactl cluster statusIf containers are still running, stop them with
ecactl cluster downand wait for it to complete on all nodes. -
Transfer the run file to node 1 (
/home/ecaadmin), then run it:ssh ecaadmin@x.x.x.x
cd /home/ecaadmin
chmod +x ecaxxxxxxx.run
./ecaxxxxxxx.runEnter your credentials when prompted, wait for the installation to complete, and capture the upgrade log in case you need it for a support case.
-
Bring the cluster back up:
ecactl cluster exec "sudo systemctl enable --now zkcleanup.timer"
ecactl cluster upWait until all services start on every node. If errors occur, capture the upgrade log for a support case.
-
Verify the upgrade. Log in to Eyeglass, open Manage Services, and confirm all ECA nodes show green and online. If a service shows a warning or is inactive, wait at least 5 minutes before opening a support case.
-
Validate the pipeline using the Security Guard test (Data Security) or the Robo Audit feature (Easy Auditor) to confirm audit data ingestion is functioning correctly after the upgrade.
Migrating to a New ECA Cluster (OS Upgrade)
To upgrade the underlying OpenSUSE OS version, deploy a new ECA cluster on the new OS and migrate the existing configuration to it, rather than upgrading the OS in place.
-
Retrieve the existing cluster name and back up configuration files. Log in to ECA node 1 and run:
cat /opt/superna/eca/eca-env-common.conf | grep ECA_CLUSTER_IDUse the returned value as the cluster name when deploying the new OVA. Copy the following files off node 1:
/opt/superna/eca/eca-env-common.conf/opt/superna/eca/docker-compose.overrides.yml/opt/superna/eca/conf/common/overrides/ThreatLevels.json/opt/superna/eca/data/audit-nfs/auto.nfs
noteThis procedure assumes IP addresses stay the same, so cluster NFS exports and firewall rules don't need to change.
-
Deploy a new OVA using the latest OS version, with the same cluster name and IP addresses as the current cluster.
-
Shut down the old cluster: run
ecactl cluster downon node 1, wait for shutdown to finish, then power off the vApp in vCenter. -
Start the new cluster: power on the new vApp and ping each node's IP until all VMs respond — do not continue if any node doesn't respond.
-
Restore the configuration files copied in step 1 onto node 1 of the new cluster, and recreate the audit mount directories on each node (
/opt/superna/mnt/audit/<cluster GUID>/<cluster name>) for every cluster managed by this ECA cluster — the GUID and name are in the restoredauto.nfsfile. -
Restart autofs on each node and verify the mounts:
ecactl cluster exec "sudo systemctl restart autofs"
ecactl cluster exec "mount" -
Start the new cluster:
ecactl cluster upReview the startup messages for errors.
Threat Hunting ML VM
The ML VM is Kubernetes-based, not upgraded with the ECA .run installer above. Component updates (configuration changes or a new chart/image version) are applied per-component with Helm, from the ML module server:
-
Update the relevant
<component_name>-onprem-values.yamlfile with the required changes. -
Apply the update:
helm upgrade --install <component_name> chart-seed-ml/charts/<component_name> -n seed-ml --create-namespace -f <component_name>-onprem-values.yamlFor example, to update the
seedmlbackcomponent:helm upgrade --install seedmlback chart-seed-ml/charts/seedmlback -n seed-ml --create-namespace -f seedmlback-onprem-values.yaml -
Get the running pod name (including its generated ID):
kubectl -n seed-ml get pods -
Restart the pod so it picks up the change — Kubernetes automatically recreates it with the updated configuration:
kubectl -n seed-ml delete pod <pod_name_with_id>
Each values file maps to a specific set of components to restart:
| YAML file | Components to restart |
|---|---|
clickhouse-onprem-values.yaml | clickhouse |
seedml-onprem-values.yaml | ml-data-exfiltration, inventory, pipelines |
seedmlback-onprem-values.yaml | ui-ml, api-ml, service-ml-core |
superset-onprem-values.yaml | superset |
This is the same Helm-based mechanism documented for the Threat Hunting module today — it applies to configuration updates and component version updates alike. See Threat Hunting Troubleshooting for restart and diagnostic commands used alongside an upgrade.
See also
- Installation — installation landing page.
- Eyeglass, ECA, and Mini-ECA Installation — full deployment procedure, including the source material for the ECA steps above.
- Threat Hunting Troubleshooting — Helm/kubectl reference for the ML VM.