- Elastic Cloud Enterprise - Elastic Cloud on your Infrastructure: other versions:
- Introducing Elastic Cloud Enterprise
- Preparing your installation
- Installing Elastic Cloud Enterprise
- Identify the deployment scenario
- Install ECE on a public cloud
- Install ECE on your own premises
- Alternative: Install ECE with Ansible
- Log into the Cloud UI
- Install ECE on additional hosts
- Migrate ECE to Podman hosts
- Post-installation steps
- Configuring your installation
- System deployments configuration
- Configure deployment templates
- Tag your allocators
- Edit instance configurations
- Create instance configurations
- Create deployment templates
- Configure system deployment templates
- Configure index management for templates
- Updating custom templates to support
node_roles
and autoscaling - Updating custom templates to support Integrations Server
- Default instance configurations
- Include additional Kibana plugins
- Manage snapshot repositories
- Manage licenses
- Change the ECE API URL
- Change endpoint URLs
- Enable custom endpoint aliases
- Configure allocator affinity
- Change allocator disconnect timeout
- Migrate ECE on Podman hosts to SELinux in
enforcing
mode
- Securing your installation
- Monitoring your installation
- Administering your installation
- Working with deployments
- Create a deployment
- Access Kibana
- Adding data to Elasticsearch
- Migrating data
- Ingesting data from your application
- Ingest data with Node.js on Elastic Cloud Enterprise
- Ingest data with Python on Elastic Cloud Enterprise
- Ingest data from Beats to Elastic Cloud Enterprise with Logstash as a proxy
- Ingest data from a relational database into Elastic Cloud Enterprise
- Ingest logs from a Python application using Filebeat
- Ingest logs from a Node.js web application using Filebeat
- Manage data from the command line
- Administering deployments
- Change your deployment configuration
- Maintenance mode
- Terminate a deployment
- Restart a deployment
- Restore a deployment
- Delete a deployment
- Migrate to index lifecycle management
- Disable an Elasticsearch data tier
- Access the Elasticsearch API console
- Work with snapshots
- Restore a snapshot across clusters
- Upgrade versions
- Editing your user settings
- Deployment autoscaling
- Configure Beats and Logstash with Cloud ID
- Keep your clusters healthy
- Keep track of deployment activity
- Secure your clusters
- Deployment heap dumps
- Deployment thread dumps
- Traffic Filtering
- Connect to your cluster
- Manage your Kibana instance
- Manage your APM & Fleet Server (7.13+)
- Manage your APM Server (versions before 7.13)
- Manage your Integrations Server
- Switch from APM to Integrations Server payload
- Enable logging and monitoring
- Enable cross-cluster search and cross-cluster replication
- Access other deployments of the same Elastic Cloud Enterprise environment
- Access deployments of another Elastic Cloud Enterprise environment
- Access deployments of an Elasticsearch Service organization
- Access clusters of a self-managed environment
- Enabling CCS/R between Elastic Cloud Enterprise and ECK
- Edit or remove a trusted environment
- Migrate the cross-cluster search deployment template
- Enable App Search
- Enable Enterprise Search
- Enable Graph (versions before 5.0)
- Troubleshooting
- RESTful API
- Authentication
- API calls
- How to access the API
- API examples
- Setting up your environment
- A first API call: What deployments are there?
- Create a first Deployment: Elasticsearch and Kibana
- Applying a new plan: Resize and add high availability
- Updating a deployment: Checking on progress
- Applying a new deployment configuration: Upgrade
- Enable more stack features: Add Enterprise Search to a deployment
- Dipping a toe into platform automation: Generate a roles token
- Customize your deployment
- Remove unwanted deployment templates and instance configurations
- Secure your settings
- API reference
- Changes to index allocation and API
- Script reference
- Release notes
- Elastic Cloud Enterprise 3.7.3
- Elastic Cloud Enterprise 3.7.2
- Elastic Cloud Enterprise 3.7.1
- Elastic Cloud Enterprise 3.7.0
- Elastic Cloud Enterprise 3.6.2
- Elastic Cloud Enterprise 3.6.1
- Elastic Cloud Enterprise 3.6.0
- Elastic Cloud Enterprise 3.5.1
- Elastic Cloud Enterprise 3.5.0
- Elastic Cloud Enterprise 3.4.1
- Elastic Cloud Enterprise 3.4.0
- Elastic Cloud Enterprise 3.3.0
- Elastic Cloud Enterprise 3.2.1
- Elastic Cloud Enterprise 3.2.0
- Elastic Cloud Enterprise 3.1.1
- Elastic Cloud Enterprise 3.1.0
- Elastic Cloud Enterprise 3.0.0
- Elastic Cloud Enterprise 2.13.4
- Elastic Cloud Enterprise 2.13.3
- Elastic Cloud Enterprise 2.13.2
- Elastic Cloud Enterprise 2.13.1
- Elastic Cloud Enterprise 2.13.0
- Elastic Cloud Enterprise 2.12.4
- Elastic Cloud Enterprise 2.12.3
- Elastic Cloud Enterprise 2.12.2
- Elastic Cloud Enterprise 2.12.1
- Elastic Cloud Enterprise 2.12.0
- Elastic Cloud Enterprise 2.11.2
- Elastic Cloud Enterprise 2.11.1
- Elastic Cloud Enterprise 2.11.0
- Elastic Cloud Enterprise 2.10.1
- Elastic Cloud Enterprise 2.10.0
- Elastic Cloud Enterprise 2.9.2
- Elastic Cloud Enterprise 2.9.1
- Elastic Cloud Enterprise 2.9.0
- Elastic Cloud Enterprise 2.8.1
- Elastic Cloud Enterprise 2.8.0
- Elastic Cloud Enterprise 2.7.2
- Elastic Cloud Enterprise 2.7.1
- Elastic Cloud Enterprise 2.7.0
- Elastic Cloud Enterprise 2.6.2
- Elastic Cloud Enterprise 2.6.1
- Elastic Cloud Enterprise 2.6.0
- Elastic Cloud Enterprise 2.5.1
- Elastic Cloud Enterprise 2.5.0
- Elastic Cloud Enterprise 2.4.3
- Elastic Cloud Enterprise 2.4.2
- Elastic Cloud Enterprise 2.4.1
- Elastic Cloud Enterprise 2.4.0
- Elastic Cloud Enterprise 2.3.2
- Elastic Cloud Enterprise 2.3.1
- Elastic Cloud Enterprise 2.3.0
- Elastic Cloud Enterprise 2.2.3
- Elastic Cloud Enterprise 2.2.2
- Elastic Cloud Enterprise 2.2.1
- Elastic Cloud Enterprise 2.2.0
- Elastic Cloud Enterprise 2.1.1
- Elastic Cloud Enterprise 2.1.0
- Elastic Cloud Enterprise 2.0.1
- Elastic Cloud Enterprise 2.0.0
- Elastic Cloud Enterprise 1.1.5
- Elastic Cloud Enterprise 1.1.4
- Elastic Cloud Enterprise 1.1.3
- Elastic Cloud Enterprise 1.1.2
- Elastic Cloud Enterprise 1.1.1
- Elastic Cloud Enterprise 1.1.0
- Elastic Cloud Enterprise 1.0.2
- Elastic Cloud Enterprise 1.0.1
- Elastic Cloud Enterprise 1.0.0
- What’s new with the Elastic Stack
- About this product
SUSE Linux Enterprise Server (SLES) 12 SP5 and 15
editSUSE Linux Enterprise Server (SLES) 12 SP5 and 15
editThe following instructions show you how to prepare your hosts on SLES 12 SP5 or 15.
If you want to install Elastic Cloud Enterprise on your own hosts, the steps for preparing your hosts can take a bit of time. There are two ways you can approach this:
- Think like a minimalist: Install the correct version of Docker on hosts that meet the prerequisites for Elastic Cloud Enterprise, then skip ahead and install Elastic Cloud Enterprise. Be aware that some checks during the installation can fail with this approach, which will mean doing further host preparation work before retrying the installation.
- Cover your bases: If you want to make absolutely sure that your installation of Elastic Cloud Enterprise can succeed on hosts that meet the prerequisites, or if any of the checks during the installation failed previously, run through the full preparation steps in this section and then and install Elastic Cloud Enterprise. You’ll do a bit more work now, but life will be simpler later on.
Regardless of which approach you take, the steps in this section need to be performed on every host that you want to use with Elastic Cloud Enterprise.
Install Docker
editMake sure to use a combination of Linux distribution and Docker version that is supported, following our official Support matrix. Using unsupported combinations can cause multiple issues with you ECE environment, such as failures to create system deployments, to upgrade workload deployments, proxy timeouts, and more.
-
Remove Docker and previously installed podman packages (if previously installed).
sudo zypper remove -y docker docker-ce podman podman-remote
-
Update packages to the latest available versions
sudo zypper refresh sudo zypper update -y
-
Install Docker and other required packages:
-
For SLES 12:
sudo zypper install -y docker=24.0.7_ce-98.109.3
-
For SLES 15:
sudo zypper install -y curl device-mapper lvm2 net-tools docker=24.0.7_ce-150000.198.2 net-tools
-
-
Disable nscd, as it interferes with Elastic’s services:
sudo systemctl stop nscd sudo systemctl disable nscd
Set up OS groups and user
edit-
If they don’t already exist, create the following OS groups:
sudo groupadd elastic sudo groupadd docker
-
Add the user to these groups:
sudo usermod -aG elastic,docker $USER
Set up XFS on SLES
editXFS is required to support disk space quotas for Elasticsearch data directories. Some Linux distributions such as RHEL and Rocky Linux already provide XFS as the default file system. On SLES 12 and 15, you need to set up an XFS file system and have quotas enabled.
Disk space quotas set a limit on the amount of disk space an Elasticsearch cluster node can use. Currently, quotas are calculated by a static ratio of 1:32, which means that for every 1 GB of RAM a cluster is given, a cluster node is allowed to consume 32 GB of disk space.
Using LVM, mdadm
, or a combination of the two for block device management is possible, but the
configuration is not covered here, nor is it provided as part of supporting Elastic Cloud Enterprise.
You must use XFS and have quotas enabled on all allocators, otherwise disk usage won’t display correctly.
Example: Set up XFS on a single, pre-partitioned block device named /dev/xvdg1
. Replace /dev/xvdg1
in the following example with the corresponding device on your host.
-
Format the partition:
sudo mkfs.xfs /dev/xvdg1
-
Create the
/mnt/data/
directory as a mount point:sudo install -o $USER -g elastic -d -m 700 /mnt/data
-
Add an entry to the
/etc/fstab
file for the new XFS volume. The default filesystem path used by Elastic Cloud Enterprise is/mnt/data
./dev/xvdg1 /mnt/data xfs defaults,pquota,prjquota,x-systemd.automount 0 0
-
Regenerate the mount files:
sudo mount -a
Update the configurations settings
edit-
Stop the Docker service:
sudo systemctl stop docker
-
Enable cgroup accounting for memory and swap space.
-
In the
/etc/default/grub
file, ensure that theGRUB_CMDLINE_LINUX=
variable includes these values:cgroup_enable=memory swapaccount=1 cgroup.memory=nokmem
-
Update your Grub configuration:
sudo update-bootloader
-
-
Configure kernel parameters
cat <<EOF | sudo tee -a /etc/sysctl.conf # Required by Elasticsearch vm.max_map_count=262144 # enable forwarding so the Docker networking works as expected net.ipv4.ip_forward=1 # Decrease the maximum number of TCP retransmissions to 5 as recommended for Elasticsearch TCP retransmission timeout. # See https://www.elastic.co/guide/en/elasticsearch/reference/current/system-config-tcpretries.html net.ipv4.tcp_retries2=5 # Make sure the host doesn't swap too early vm.swappiness=1 EOF
The
net.ipv4.tcp_retries2
setting applies to all TCP connections and affects the reliability of communication with systems other than Elasticsearch clusters too. If your clusters communicate with external systems over a low quality network then you may need to select a higher value fornet.ipv4.tcp_retries2
.-
Apply the settings:
sudo sysctl -p sudo service network restart
-
-
Adjust the system limits.
Add the following configuration values to the
/etc/security/limits.conf
file. These values are derived from our experience with the Elastic Cloud hosted offering and should be used for Elastic Cloud Enterprise as well.If you are using a user name other than
elastic
, adjust the configuration values accordingly.* soft nofile 1024000 * hard nofile 1024000 * soft memlock unlimited * hard memlock unlimited elastic soft nofile 1024000 elastic hard nofile 1024000 elastic soft memlock unlimited elastic hard memlock unlimited elastic soft nproc unlimited elastic hard nproc unlimited root soft nofile 1024000 root hard nofile 1024000 root soft memlock unlimited
-
NOTE: This step is optional if the Docker registry doesn’t require authentication.
Authenticate the
elastic
user to pull images from the Docker registry you use, by creating the file/home/elastic/.docker/config.json
. This file needs to be owned by theelastic
user. If you are using a user name other thanelastic
, adjust the path accordingly.Example: In case you use
docker.elastic.co
, the file content looks like as follows:{ "auths": { "docker.elastic.co": { "auth": "<auth-token>" } } }
-
If you did not create the mount point earlier (if you did not set up XFS), create the
/mnt/data/
directory as a mount point:sudo install -o $USER -g elastic -d -m 700 /mnt/data
-
If you set up a new device with XFS earlier:
-
Mount the block device (change the device name if you use a different device than
/dev/xvdg1
):sudo mount /dev/xvdg1
-
Set the permissions on the newly mounted device:
sudo chown $USER:elastic /mnt/data
-
-
Create the
/mnt/data/docker
directory for the Docker service storage:sudo install -o $USER -g elastic -d -m 700 /mnt/data/docker
Configure the Docker daemon
edit-
Edit
/etc/docker/daemon.json
, and make sure that the following configuration values are present:{ "storage-driver": "overlay2", "bip":"172.17.42.1/16", "icc": false, "log-driver": "json-file", "log-opts": { "max-size": "500m", "max-file": "10" }, "data-root": "/mnt/data/docker" }
-
The user installing Elastic Cloud Enterprise must have a User ID (UID) and Group ID (GID) of 1000 or higher. Make sure that the GID matches the ID of the
elastic`
group created earlier (likely to be 1000). You can set this using the following command:sudo usermod -g <elastic_group_gid> $USER
-
Apply the updated Docker daemon configuration:
Reload the Docker daemon configuration:
sudo systemctl daemon-reload
Restart the Docker service:
sudo systemctl restart docker
Enable Docker to start on boot:
sudo systemctl enable docker
-
Recommended: Tune your network settings.
Create a
70-cloudenterprise.conf
file in the/etc/sysctl.d/
file path that includes these network settings:cat << SETTINGS | sudo tee /etc/sysctl.d/70-cloudenterprise.conf net.ipv4.tcp_max_syn_backlog=65536 net.core.somaxconn=32768 net.core.netdev_max_backlog=32768 net.ipv4.tcp_keepalive_time=1800 net.netfilter.nf_conntrack_tcp_timeout_established=7200 net.netfilter.nf_conntrack_max=262140 SETTINGS
-
Ensure settings in /etc/sysctl.d/*.conf are applied on boot
SCRIPT_LOCATION="/var/lib/cloud/scripts/per-boot/00-load-sysctl-settings" sudo sh -c "cat << EOF > ${SCRIPT_LOCATION} #!/bin/bash set -x lsmod | grep ip_conntrack || modprobe ip_conntrack sysctl --system EOF " sudo chmod +x ${SCRIPT_LOCATION}
-
-
Reboot your system to ensure that all configuration changes take effect:
sudo reboot
-
If the Docker daemon is not already running, start it:
sudo systemctl start docker
-
After rebooting, verify that your Docker settings persist as expected:
sudo docker info | grep Root
If the command returns
Docker Root Dir: /mnt/data/docker
, then your changes were applied successfully and persist as expected.If the command returns
Docker Root Dir: /var/lib/docker
, then you need to troubleshoot the previous configuration steps until the Docker settings are applied successfully before continuing with the installation process. For more information, check Custom Docker daemon options in the Docker documentation. - Repeat these steps on other hosts that you want to use with Elastic Cloud Enterprise or follow the steps in the next section to start installing Elastic Cloud Enterprise.
On this page