Upgrade ExtraHop firmware through the REST API with ExtraHop Cloud Services
You can automate upgrades to the firmware on your appliances through the ExtraHop REST API. You can also view available firmware versions and download firmware directly to your appliance through ExtraHop Cloud Services.
Note: | Before you can complete the steps in this guide, the appliance must be connected to ExtraHop Cloud Services. For information on upgrading without ExtraHop Cloud Services, see Upgrade ExtraHop firmware through the REST API. |
While the firmware upgrade process is similar across all ExtraHop appliances, some appliances have additional considerations or steps that you must address before you install the firmware in your environment. If you need assistance with your upgrade, contact ExtraHop Support.
All appliances must meet the following requirements:
- The firmware version must be compatible with your appliance model.
- The firmware version on your appliance must be supported by the upgrade version.
- Command appliances must be running firmware that is greater than or equal to their connected appliances.
- Discover appliances must be running firmware that is greater than or equal to connected Explore and Trace appliances.
If your deployment only includes a sensor, proceed to the API Explorer or Python upgrade instructions.
If your deployment includes additional appliance types, you must address the following dependencies before proceeding with the upgrade instructions.
If your deployment includes... | Pre-upgrade tasks | Upgrade order |
---|---|---|
Command appliances | Reserve a maintenance window of an hour for Command appliances managing 50,000 devices or more. |
|
Explore appliances | See Upgrading ExtraHop recordstores. | |
Trace appliances | None |
Retrieve and run the example Python script
The ExtraHop GitHub repository contains an example Python script that upgrades multiple appliances by reading URLs and API keys from a CSV file.
Note: | The script does not automatically disable record ingest for ExtraHop recordstores. You must manually disable record ingest before running the script for an ExtraHop recordstores. |
Important: | The example python script authenticates to the sensor or console through an API key, which is not compatible with the RevealX 360 REST API. To run this script with RevealX 360, you must modify the script to authenticate with API tokens. See the py_rx360_auth.py script in the ExtraHop GitHub repository for an example of how to authenticate with API tokens. |
Upgrading ExtraHop recordstores
Pre-upgrade tasks
Before upgrading an ExtraHop recordstore, you must halt record ingest. You can halt record ingest for all of the nodes in a cluster from a single node.
Note: | The message Could not determine ingest status on some nodes and Error might appear on the Cluster Data Management page in the Administration settings of the upgraded nodes until all nodes in the cluster are upgraded. These errors are expected and can be ignored. |
- Open a terminal application.
- Run the following command, where YOUR_KEY is the API for your
user account, and HOSTNAME is the hostname of your ExtraHop
recordstore:
curl -X PATCH "https://HOST/api/v1/extrahop/cluster" -H "accept: application/json" -H "Authorization: ExtraHop apikey=YOUR_KEY" -H "Content-Type: application/json" -d "{ \"ingest_enabled\": false}"
Post-upgrade tasks
After you have upgraded all of the nodes in the recordstore cluster, enable record ingest.
- Open a terminal application.
- Run the following command, where YOUR_KEY is the API for your
user account, and HOSTNAME is the hostname of your ExtraHop
recordstore:
curl -X PATCH "https://HOST/api/v1/extrahop/cluster" -H "accept: application/json" -H "Authorization: ExtraHop apikey=YOUR_KEY" -H "Content-Type: application/json" -d "{ \"ingest_enabled\": true}"
Thank you for your feedback. Can we contact you to ask follow up questions?