Plan your upgrade
There are a number of things you need to plan for before performing the actual upgrade, so create a test plan. Consider the following recommendations:
- Plan for an appropriate amount of time to complete the upgrade. Depending on your configuration and the size of your cluster, the process can take up to a few weeks or more to complete.
- Consider opening a support case with Elastic to alert our Elastic Support team of your system change. If you need additional assistance, Elastic Consulting Services provides the technical expertise and step-by-step approach for upgrading your Elastic deployment.
- Schedule a system maintenance window within your organization.
Ensure the version you’re upgrading to for Elasticsearch, Kibana, and any ingest components supports your current operating system. Refer to the Product and Operating System support matrix.
By default, Elasticsearch is built using Java and includes a bundled version of OpenJDK within each distribution. While we strongly recommend using the bundled Java Virtual Machine (JVM) in all installations of Elasticsearch, if you choose to use your own JVM, ensure it’s compatible by reviewing the Product and JVM support matrix.
If you’re running Elasticsearch in FIPS 140-2 mode, we recommend using Bouncy Castle as a Java security provider when running Elasticsearch.
It is very important to map all the components that are being used on the Elastic Stack. When you upgrade your deployment, you also may need to upgrade all the other components. You should record whether each component is used, and if it is, also record the current version. While not comprehensive, here’s a list of components you should check:
- Elasticsearch
- Elasticsearch Hadoop
- Elasticsearch plugins
- Elasticsearch clients
- Kibana
- Logstash
- Logstash plugins
- Beats
- Beats modules
- APM agent
- APM server
- Elastic Agent
- Fleet
- Security
- Browsers
- External services (Kafka, etc.)
When you do your inventory, you can enable audit logging to evaluate resources accessing your deployment.
We highly recommend testing and upgrading in your development environment before your production environment. Therefore, it is crucial to ensure that both your development and production environments have the same settings. Consider checking the following components beforehand:
- Enrichment information
- Plugins
- Mapping
- Index lifecycle management (ILM)
- Snapshot lifecycle management (SLM)
- Index templates
- Machine learning jobs
- Inbound sample data
- Live data
- Performance
- Outbound integrations
- Dashboards
- Alerts
- Authentication
The procedures you follow to upgrade depend on your infrastructure and deployment method. You’ve installed Elastic components using either Elastic-managed infrastructure or self-managed infrastructure.
Elastic-managed infrastructure includes Elastic Cloud – the umbrella term for Elastic Cloud Hosted (ECH) and Elastic Cloud Serverless. Elastic Cloud Serverless (“Serverless”) is a fully managed cloud offering with three products: Elasticsearch Serverless, Elastic Observability Serverless, and Elastic Security Serverless. All serverless products are built on top of the Search AI Lake. Customers on serverless receive the latest features automatically when updates are published and do not need to choose an upgrade path.
Elastic Cloud Hosted is Elastic’s cloud offering for managing Elastic Stack deployments, built on top of Elasticsearch. A single click in the Elastic Cloud console can upgrade a deployment to a newer version.
Self-managed infrastructure – either on-prem or on public cloud, includes:
- Elastic Stack
- Elastic Cloud Enterprise (ECE)
- Elastic Cloud on Kubernetes (ECK)
For ECE and ECK, ensure the operator is running a version compatible with the Elastic Stack version you’re upgrading to. If not, you need to upgrade that before you can upgrade your cluster.
If you’re running the Elastic Stack on your own self-managed infrastructure, you must upgrade each component individually.