Manage Elastic Stack Versionsedit

Elastic Cloud Enterprise ships with a number of different versions of the Elastic Stack containing Elasticsearch and Kibana. Periodically, you might need to manage Elastic Stack versions for one of the following reasons:

  • To add new versions of the Elastic Stack as they become available
  • To obtain information about existing Elastic Stack versions
  • To update existing versions of the Elastic Stack
  • To add the Elastic Stack versions that shipped with a version of ECE that you upgraded to

New or updated versions of the Elastic Stack must be prepared to work with Elastic Cloud Enterprise and are provided as packs that you can download.

The following packs containing Elastic Stack versions are available:

Elastic Stack pack Contains

2.4.6

Elasticsearch version 2.4.6 and Kibana version 4.6.5

2.4.5

Elasticsearch version 2.4.5 and Kibana version 4.6.4

For offline or air-gapped installations, additional steps are required to add Elastic Stack packs, as these packs do not contain any Docker images. After downloading an Elastic Stack pack, you also need to pull and load the required Docker images. The stack.json file in each pack can tell you which Docker images you need. To learn more about pulling and loading Docker images, see Install ECE (Without Internet Access).

Before you begin

The examples shown all use HTTPS over port 12443, which requires that you have a TLS certificate configured. Alternatively, you can specify the -k option to turn off certificate verification or use HTTP over port 12400.

Get Elastic Stack Informationedit

You can obtain information about existing Elastic Stack versions that are available in your installation through the Cloud UI or through the command line.

To obtain information about available Elastic Stack versions through the Cloud UI:

  1. Log into the Cloud UI.
  2. Go to Platform, select a Elastic Cloud Enterprise installation and click Elastic Stack.

    The available Elastic Stack versions are shown. More detailed information about Docker images, plugins, and related Kibana versions are also available for each Elasticsearch version.

To obtain information about available Elastic Stack versions through the command line:

curl -X GET -u USER:PASSWORD https://COORDINATOR_HOST:12443/api/v1/stack/versions

For example (output abridged for brevity):

curl -X GET -u root:4Z52y8Gq7PrxMDy47ipJPSh4ozBMynOGa9HWxcy2D3j https://10.56.12.153:12443/api/v1/stack/versions
{
  "stacks": [
    {
      "version": "2.4.5",
      "template": {
        "template_version": "",
        "hashes": []
      },
      "elasticsearch": {
        "docker_image": "docker.elastic.co/cloud-enterprise/elasticsearch:2.4.5-0",
        "plugins": [
          "graph",
          "analysis-icu",
          "analysis-kuromoji",
          "analysis-smartcn",
          "analysis-stempel",
          "analysis-phonetic",
          "watcher",
          "mapper-attachments",
          "delete-by-query"
        ],
        "default_plugins": [
          "found-elasticsearch",
          "cloud-aws",
          "found-license-plugin",
          "shield",
          "marvel-agent"
        ...
        ]
      }
    },
    {
      "version": "5.2.2",
      "template": {
        "template_version": "",
        "hashes": []
      },
      "elasticsearch": {
        "docker_image": "docker.elastic.co/cloud-enterprise/elasticsearch:5.2.2-0",
        "plugins": [
          "analysis-icu",
          "analysis-kuromoji",
          "analysis-smartcn",
          "analysis-stempel",
          "analysis-phonetic",
          "mapper-attachments",
          "ingest-attachment",
          "ingest-geoip",
          "ingest-user-agent"
        ],
        "default_plugins": [
          "repository-s3",
          "found-elasticsearch",
          "x-pack"
        ...
        ]
      }
    }
  ]
}

You can also query for a specific version with a URI such as https://COORDINATOR_HOST:12443/api/v1/stack/versions/5.3.2, for example.

Add Elastic Stack Packsedit

You can add new Elastic Stack packs to your installation through the Elastic Cloud Enterprise installation script or through the RESTful API.

To add a new Elastic Stack pack through the Elastic Cloud Enterprise installation script from the command line:

  1. Log into a host running Elastic Cloud Enterprise.
  2. Add the Elastic Stack pack with the add-stack-version action:

    ./elastic-cloud-enterprise.sh add-stack-version \
        --user USER --pass PASSWORD \
        --version X.Y.Z 

    A supported Elastic Stack version, such as 5.4.0

    For example:

    bash elastic-cloud-enterprise.sh add-stack-version \
        --user admin --pass pGX5DwKzVAAIeCIpTwwAkCuJDu0ASdFP33UmYpfogfF \
        --version 5.4.0

To add a new Elastic Stack pack through the RESTful API from the command line:

  1. Download the pack on an internet-connected host from Elastic and make it available locally.
  2. Add the Elastic Stack pack with the following API call:

    curl -X POST -u USER:PASSWORD https://COORDINATOR_HOST:12443/api/v1/stack/versions \
        -H 'content-type: application/zip' \
        --data-binary "@PATH/STACK_PACK_FILE" 

    The local path and the new Elastic Stack pack .zip file

    For example:

    curl -X POST -u admin:pGX5DwKzVAAIeCIpTwwAkCuJDu0ASdFP33UmYpfogfF https://10.56.12.153:12443/api/v1/stack/versions \
        -H 'content-type: application/zip' \
        --data-binary "@/Users/iuriitceretian/Documents/stacks/5.4.0.zip"

Update Elastic Stack Packsedit

Updating an Elastic Stack pack might become necessary if an Elastic Stack version has been updated with security fixes, for example. You can update an existing Elastic Stack version through the command line.

Updated versions of Elasticsearch and Kibana are used when you create new clusters, but they are not automatically applied to already running clusters. To update existing Elasticsearch clusters and Kibana after an updated Elastic Stack pack has been added, you need to change the cluster configuration.

To update Elastic Stack packs through the RESTful API from the command line:

  1. Download an updated pack on an internet-connected host from Elastic and make it available locally.
  2. Update the Elastic Stack pack with the following API call:

      curl -X PUT -u USER:PASSWORD https://COORDINATOR_HOST:12443/api/v1/stack/versions \
      -H 'content-type: application/zip' \
      --data-binary "@PATH/STACK_PACK_FILE" 

    The local path and the updated Elastic Stack pack .zip file

    For example:

    curl -X PUT -u admin:pGX5DwKzVAAIeCIpTwAAkCuJDu0ASdFP33UmYpfogfF https://10.58.12.153:12443/api/v1/stack/versions \
      -H 'content-type: application/octet-stream' \
      --data-binary "@/Users/johnsmith/Documents/stacks/5.4.0.zip"