Prerequisites

We want your experience with Elastic Cloud Enterprise to be a success, so we compiled a list of tried-and-tested prerequisites that will help you install and run our software successfully. To make it easier to look through these prerequisites, we separated them into sections for hardware, software, users, and networking.

Hardware

The following hardware specifications for host machines work well with Elastic Cloud Enterprise:

  • Memory: At least 8 GB of RAM, 64 GB or more preferred
  • Storage:

    • For allocators handling user requests: Enough storage to support the RAM-to-storage ratio. For example, if you use a host with 16 GB of RAM and the default ratio of 1:32, provide 512 GB of disk space.
    • For hosts that will hold other runner roles, such as coordinators, directors and proxies: At least 10 GB of disk space.

Software

The following software works well with Elastic Cloud Enterprise:

  • One of the following Linux distributions:

    • Ubuntu 14.04 LTS (Trusty Tahr; instructions)
    • Ubuntu 16.04 LTS (Xenial Xerus; instructions)
    • Red Hat Enterprise Linux 7 or later (RHEL 7; instructions, limitations)
    • CentOS 7 or later (instructions, limitations)

      Note

      Amazon Linux is not currently supported. If you attempt to install Elastic Cloud Enterprise on Amazon Linux, installation will likely fail with an error.

  • Linux kernel 3.10 or higher
  • Docker 1.11
  • File system:

    • We recommend that you use XFS, but any file system that supports the OverlayFS storage driver used by Docker can be used.
    • XFS is required if you want to use disk space quotas for Elasticsearch data directories.
    • On RHEL and CentOS, XFS file systems must be created with the -n ftype=1 option to make sure they can work with the OverlayFS storage driver used by Docker.
  • If SELinux is enabled: Your SELinux configuration must allow mounting Docker sockets into containers (required for cluster management to work)

Elastic Cloud Enterprise is certified for Linux kernel 3.10 or higher and Docker 1.11. The latter is the only version of Docker Elastic recommends.

If you intend to use Docker 1.12 or higher, please note:

  • You should avoid Linux kernel version 4.4 or lower, as there is a known issue with kernel memory (kmem) accounting.
  • You should disable kernel memory accounting for all memory cgroups by passing the cgroup.memory=nokmem parameter to the kernel at boot time.
  • While Elastic Cloud Enterprise may work with these Docker and kernel versions, it has not been thoroughly tested with them and might have issues. Elastic will attempt to support Elastic Cloud Enterprise running Docker version 1.12 or higher and kernel version 4.5 or higher, but we might not be able to resolve issues related to these configurations. In such cases, you will be asked to move to a certified kernel and Docker version, so that Elastic can support you.

Users

The following users and permissions are required:

  • To prepare your environment: A user with sudo permissions, such as the elastic user included with our AWS AMIs or the ubuntu user provided on Ubuntu.
  • To install Elastic Cloud Enterprise: A user with a UID and GID in the 1000 to 60000 range who is part of the docker group. You must not install Elastic Cloud Enterprise as the root user.

You can find out information about a user with the id command:

id
uid=1000(elastic) gid=1000(elastic) groups=1000(elastic),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),102(netdev),112(libvirtd),1001(docker)

In this example, the user elastic belongs to both the sudo and the docker groups.

Networking

Important

The first host you install Elastic Cloud Enterprise on initially requires the ports for all roles to be open, which includes the ports for the coordinator, allocator, director, and proxy roles. After you have brought up your initial Elastic Cloud Enterprise installation, only the ports for the roles that the initial host continues to hold need to remain open.

The following networking or internet access is required for Elastic Cloud Enterprise:

  • Internet access for a typical installation (offline installation is supported)
  • Outbound traffic open on the following ports:

    Host roleOutbound portsPurpose

    All

    80

    Installation script and container-registry.elastic.co Docker registry access (HTTP)

    All

    443

    Installation script and container-registry.elastic.co Docker registry access (HTTPS)

  • Inbound traffic open from any source on the following ports:

    Host roleInbound portsPurpose

    All

    22

    Required for troubleshooting

    Coordinator

    12300

    Elastic support access (HTTP)

    Coordinator

    12343

    Elastic support access (HTTPS)

    Coordinator

    12400

    Cloud UI and API access to the administration console (HTTP)

    Coordinator

    12443

    Cloud UI and API access to the administration console (HTTPS)

    Proxy

    9200/9243

    Kibana and Elasticsearch (HTTP/HTTPS), also required by load balancers

    Proxy

    9300/9343

    Elasticsearch (transport client/transport client with TLS/SSL), also required by load balancers

  • Internal components of Elastic Cloud Enterprise require inbound traffic open on the following ports:

    Host roleInbound portsPurpose

    Coordinator

    8764

    Services forwarder for the administration console

    Coordinator

    22191-22195

    Connections to initial coordinator from allocators and proxies (for up to five coordinators)

    Director

    12191-12301, 12898-12908, 13898-13908

    ZooKeeper stunnels (typically up to five)

    Director

    2112

    ZooKeeper ensemble discovery/joining

    Allocator

    18000-20000

    Elasticsearch (HTTP and transport)

A typical ECE installation should be contained within a single data center. We recommend that Elastic Cloud Enterprise installations not span different data centers, due to variations in networking latency and bandwidth that cannot be controlled.

Installation of Elastic Cloud Enterprise across multiple data centers might be feasible with sufficiently low latency and high bandwidth, with some restrictions around what we can support. Based on our experience with our hosted Elastic Cloud service, the following is required:

  • A typical network latency between the data centers of less than 10ms round-trip time during pings
  • A network bandwidth of at least 10 Gigabit

If you choose to deploy a single ECE installation across multiple data centers, you might need to contend with additional disruptions due to bandwidth or latency issues. Both ECE and Elasticsearch are designed to be resilient to networking issues, but this resiliency is intended to handle exceptions and should not be depended on as part of normal operations. If Elastic determines during a support case that an issue is related to an installation across multiple data centers, the recommended resolution will be to consolidate your installation into a single data center, with further support limited until consolidation is complete.