It is time to say goodbye: This version of Elastic Cloud Enterprise has reached end-of-life (EOL) and is no longer supported.
The documentation for this version is no longer being maintained. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Red Hat Enterprise Linux (RHEL) 7 and CentOS 7
editRed Hat Enterprise Linux (RHEL) 7 and CentOS 7
editThe following instructions show you how to prepare your hosts on Red Hat Enterprise Linux (RHEL) 7 or later and on CentOS 7 or later.
Install a supported Linux kernel
editElastic Cloud Enterprise requires 3.10 or higher. Before you proceed, update the OS, and reboot the system.
Kernel-LT has a regression on 4.4.156. From the archive repository, install 4.4.155.
-
Add the repository required to obtain the kernel:
yum update reboot
-
Add the required options to the kernel boot arguments:
sudo /sbin/grubby --update-kernel=ALL --args='cgroup_enable=memory cgroup.memory=nokmem swapaccount=1'
-
Enable the
overlay
kernel module:echo "overlay" | sudo tee -a /etc/modules-load.d/overlay.conf
-
Refresh the dynamically generated grub2 configuration and configure grub to boot the newly installed kernel 3.10 or higher:
sudo grub2-set-default 0 sudo grub2-mkconfig -o /etc/grub2.cfg
Install Docker
editWhich version of Docker you install depends on whether you use Red Hat Enterprise Linux (RHEL) or CentOS.
RHEL
editIf you are using RHEL 7.5 or later, we recommend that you use Docker 1.13 included with your RHEL distribution:
- Follow the installation instructions provided by Red Hat.
If the docker daemon does not start after correctly install, continue with the rest of the configuration steps below.
- Follow the same Docker configuration steps as those for CentOS.
CentOS
editIf you are using CentOS, install Docker LTS version 18.09.2:
-
Add the Docker repository:
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF' [dockerrepo] name=Docker Repository baseurl=https://download.docker.com/linux/centos/7/x86_64/stable enabled=1 gpgcheck=1 gpgkey=https://download.docker.com/linux/centos/gpg EOF sudo yum makecache fast
-
Install the latest version of docker-ce:
sudo yum install docker-ce-18.09.2* containerd.io-1.4.3-3.1*
Recommended: Set Up XFS quotas
editElastic Cloud Enterprise can run without XFS quotas, but they are required to support disk space quotas for Elasticsearch data directories. Some Linux distributions such as RHEL and CentOS already provide XFS as the default file system; however, quotas might be disabled.
Disk space quotas set a limit on the amount of disk space a 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.
If you use XFS, you must use XFS on all allocators.
To set up XFS with quotas on a single, pre-partitioned block device named /dev/xvdg1
:
-
Format the partition:
sudo mkfs.xfs /dev/xvdg1
-
Create the
/mnt/data/
directory as a mount point:sudo install -o $USER -g $USER -d -m 700 /mnt/data
-
Modify the entry for the XFS volume in the
/etc/fstab
file to addpquota,prjquota
. The default filesystem path used by Elastic Cloud Enterprise is/mnt/data
./dev/xvdg1 /mnt/data xfs defaults,nofail,x-systemd.automount,prjquota,pquota 0 2
-
Regenerate the mount files:
sudo systemctl daemon-reload sudo systemctl restart local-fs.target
Update the configurations settings
edit-
Stop the Docker service:
sudo systemctl stop docker
-
If you plan to run Elasticsearch 5.0 and later: Update the
/etc/sysctl.conf
file to set the maximum number of mapped memory areas a process can have:echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf
-
For RHEL only: Verify that
fs.may_detach_mounts
is enabled:cat /proc/sys/fs/may_detach_mounts
If the output of this command is not
1
, you must enable the setting in order for Docker to cleanly remove containers:-
Update the
/etc/sysctl.conf
file to include this line:fs.may_detach_mounts = 1
-
-
Verify that IPv4 forwarding is enabled:
cat /proc/sys/net/ipv4/ip_forward
If the output of this command is not
1
, you must enable IPv4 forwarding so that Docker can work as expected:-
Update the
/etc/sysctl.conf
file to include this line:net.ipv4.ip_forward = 1
-
Restart the network service:
sudo service network restart
-
Verify that the change is applied:
cat /proc/sys/net/ipv4/ip_forward
The output
1
indicates that IPv4 forwarding is turned on.
-
-
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 root soft nofile 1024000 root hard nofile 1024000 root soft memlock unlimited
-
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 $USER -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:$USER /mnt/data
-
-
Create the
/mnt/data/docker
directory for the Docker service storage:sudo install -o $USER -g $USER -d -m 700 /mnt/data/docker
-
Disable the firewalld service. The service is not compatible with Docker and interferes with the installation of ECE. You must disable firewalld before installing or reinstalling ECE.
sudo systemctl disable firewalld
Configure the Docker daemon options
editCentOS
edit-
Update the
/etc/systemd/system/docker.service.d/docker.conf
file. If the file path and file do not exist, create them.[Unit] Description=Docker Service After=multi-user.target [Service] ExecStart= ExecStart=/usr/bin/dockerd --data-root /mnt/data/docker --storage-driver=overlay --bip=172.17.42.1/16
With Docker version 1.13.x, Docker will not start with the --data-root
option. If this is the case, try using the --graph
option instead.
-
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
-
-
Enable your user to communicate with the Docker subsystem by adding it to the
docker
group:sudo usermod -aG docker $USER
-
Pin the Docker version to ensure that the
docker-ce
package does not get upgraded:echo "exclude=docker-ce" | sudo tee -a /etc/yum.conf
RHEL
edit-
Update the system docker configuration:
-
Edit the
/etc/sysconfig/docker
file and add the following to theOPTIONS
variable:OPTIONS="... -g /mnt/data/docker"
-
Edit the
/etc/sysconfig/docker-network
file to set the docker network options:DOCKER_NETWORK_OPTIONS="--bip=172.17.42.1/16"
-
Edit the
/etc/sysconfig/docker-storage-setup
file to set theSTORAGE_DRIVER
option:STORAGE_DRIVER=overlay
-
-
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
-
-
Enable your user to communicate with the Docker subsystem by adding it to the
docker
group:sudo groupadd -f docker sudo usermod -aG dockerroot docker $USER sudo chown root:docker /var/run/docker.sock
-
Pin the Docker version to ensure that the
docker
package does not get upgraded:echo "exclude=docker" | sudo tee -a /etc/yum.conf
-
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 SETTINGS
-
Reboot your system to ensure that all configuration changes take effect:
sudo reboot
-
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, see 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.