Install Imply Enterprise on Linux
This document describes how to install the binary distribution of Imply on Linux. This is a basic, self-hosted deployment that leaves the provisioning and bootstrapping of the cluster nodes to you.
If you have Kubernetes expertise and infrastructure, we recommend deploying Imply Enterprise (formerly Imply Private) on Kubernetes. Use the installation described here if you cannot use Kubernetes or Imply Hybrid (formerly Imply Cloud).
Overview
To deploy Imply Enterprise on Linux, start by installing an Imply Manager and Imply Agent. Imply Agents become the master, query, and data nodes in your cluster, as administered by Imply Manager. For information about cluster nodes, see Design.
If you want to run Imply Enterprise on machines shared with other services, Imply recommends that you either use Kubernetes or some form of virtualization.
In addition to Imply Enterprise, Manager, and Agent, a complete Imply deployment includes the following components as depicted in the image:
-
MySQL or PostgreSQL for metadata storage. Imply recommends that you use a version that supports instant ADD COLUMN semantics, such as MySQL 8. MariaDB and other MySQL-compatible or PostgreSQL-compatible databases aren't supported. The metadata store user requires
ALL
privileges:GRANT ALL PRIVILEGES ON druid.* TO druid;
-
A ZooKeeper ensemble for server coordination
-
A distributed storage system to serve as Druid's deep storage—for example S3, GCS, HDFS, NFS
Imply supports ZooKeeper version 3.5. For information about ZooKeeper version 3.5, see ZooKeeper 3.5 Release Notes.
Distribution archive versioning
The distribution consists of two independently versioned archives:
- Imply Manager distribution:
imply-manager-2025.04.1
- Imply Agent distribution:
imply-agent-v8
There are a few points to note regarding this versioning:
- While the Manager archive version corresponds to the Imply software it is distributed with, the Manager distribution archive is not bound to that version. That is, you can typically upgrade the Imply cluster to a later version without updating the Manager version.
- Occasionally, a change in a subsequent version of the Imply software may necessitate an update to the Imply Manager software, as installed here. You may wish to upgrade to access new features in the Manager as well. However, it is not typically required for a routine update of a cluster with the latest Imply software version.
- Imply agents follow a simple versioning scheme, such as
v1
,v2
, and so on. Like the Manager, agent versions are not necessarily bound to an Imply software version; that is, you can update the cluster to a later version without updating the agent. However, it is possible, although relatively rare, that an update to a new Imply version will first require an update to a particular Imply agent version.
Imply Enterprise on Ubuntu is supported by Imply Agent v2 and above.
Supported architectures and Linux distributions
Starting with Imply Manager 2024.09
and Imply Agent v7, Imply Enterprise supports both x86 and ARM architectures. Previous versions only support x86 architecture.
Imply Enterprise supports the following Linux distributions on both x86 and ARM architectures:
- Ubuntu 20.04
- Amazon Linux 2
- RHEL 8.x
Newer versions of these operating systems may work with Imply but are untested.
Software dependencies
To install Imply Manager and each Imply Agent successfully, verify that you have the following software packages:
- Java 17 or Java 11—we recommend the Java 17 Zulu OpenJDK
- Python 3 (3.8 or higher)
- Perl 5 (5.26 or higher)
The Imply installer checks for these dependencies and will fail if they are not found.
Networking
You must configure Imply Manager and each Imply Agent machine with a hostname unique within your network infrastructure. Each hostname needs to have a corresponding entry in the Domain Name System (DNS) for Imply services to connect to each other using the hostname. The Fully Qualified Domain Name (FQDN), which is used in DNS, includes the hostname and the entire domain name. The hostname and the domain name labels are separated by dots, in the following format: hostname.domain
.
When deploying a cluster, Imply Manager attempts to download the latest version of the cluster software over the internet. However, Imply Manager in Imply Enterprise on Linux does not need to be connected to the internet to complete the installation. In air-gapped environments, if Imply Manager cannot reach Imply servers to retrieve version information, it deploys the cluster software that it bundles, which is the same as its own version.
Installation steps
Before starting, verify the availability of the following external dependencies: a relational database, ZooKeeper, and deep storage. Imply Manager and cluster both rely on external databases to store metadata. You can either use the same or different databases for Imply Manager and the cluster.
You will need sudo privileges on the target machines to run the installers.
Step 1: Install Imply Manager
On the machine that will serve Imply Manager, follow these steps:
Download the imply-manager-2025.04.1.tar.gz archive to the target directory.
Extract the distribution archive:
tar -xvf imply-manager-2025.04.1.tar.gz
To run the installer:
sudo imply-manager-2025.04.1/script/install -u <imply-user> -g <imply-user-group>
The user and group arguments are optional. If you do not specify a custom user or group under which Imply will run, the installer creates a default user and group named
imply
.As it runs, the installer checks the environment for software dependencies. It raises an error message if they are not found.
Configure Imply Manager by editing
/etc/opt/imply/manager.conf
. Specify the connection settings for the manager store database, ZooKeeper, the Imply metadata storage database, and deep storage, as appropriate for your environment. For example:IMPLY_MANAGER_LICENSE_KEY=<license (trial if not set)> IMPLY_MANAGER_STORE_TYPE=<[mysql, postgresql]> IMPLY_MANAGER_STORE_HOST=<db_host> IMPLY_MANAGER_STORE_PORT=3306 IMPLY_MANAGER_STORE_USER=<user> IMPLY_MANAGER_STORE_PASSWORD=<password> IMPLY_MANAGER_STORE_DATABASE=imply_manager IMPLY_MANAGER_STORE_CA_CERT_PATH=</path/to/tls.crt>
# These can be set here or through Imply Manager when creating the cluster imply_defaults_zkType=external imply_defaults_zkHosts=<zk_host>:2181 imply_defaults_zkBasePath=imply imply_defaults_metadataStorageType=<[mysql, postgresql]> imply_defaults_metadataStorageHost=<db_host> imply_defaults_metadataStoragePort=3306 imply_defaults_metadataStorageUser=<user> imply_defaults_metadataStoragePassword=<password> imply_defaults_deepStorageType=<[azure, google, hdfs, local, s3]> imply_defaults_deepStoragePath=<s3://bucket-name/path> imply_defaults_deepStorageUser=<user> imply_defaults_deepStoragePassword=<password>
See Enabling TLS, below, for how to configure TLS in the cluster.
Start Imply Manager:
sudo systemctl start imply-manager
(Optional) Ensure Imply Manager is running.
Ensure all services starting with
imply-
, such asimply-grove-server.service
have a green dot:systemctl list-dependencies --reverse imply-manager
The Imply Manager UI should now be accessible on port 9097.
Step 2: Log in and create the cluster
Follow these steps to create a cluster:
- From a browser, access Imply Manager at:
http://<hostname>:9097
. - Create the administrator account and click Login to proceed.
- From the dashboard, click + New cluster.
- The default values are appropriate for a small-scale deployment. If you did not provide the
imply_defaults_*
configurations in themanager.conf
file, you must set them at this time. - In the Schema field, type a distinguishing name for the Imply Manager database schema, such as
imply_manager
. - Click Create cluster to proceed.
- Click OK to confirm cluster creation. Note the Cluster ID indicated in the cluster status page. You will use it in the next step to configure the agents.
Step 3: Install agents
Install the agent on each node that will be part of this cluster. You need at least one master, one query, and one data node.
The Imply agent must have read and write permissions to the
/mnt/var
and/mnt/tmp
directories. If the/mnt/var
and/mnt/tmp
directories do not exist, the installer creates them and sets appropriate permissions. If the directories exist but theimply
user does not have read and write permissions, the install will fail.
Download
imply-agent-v8
to the target directory.Extract the archive:
tar -xvf imply-agent-v8.tar.gz
Run the installer:
sudo imply-agent-v8/script/install
Configure the agent by editing
/etc/opt/imply/agent.conf
:# NODE_TIER_VALUE = "<integer>" # Tier number assigned to the node when you use more than 3 data tiers.
# You must also set IMPLY_MANAGER_AGENT_NODE_TYPE todata
.
IMPLY_MANAGER_HOST=MANAGER_HOST
IMPLY_MANAGER_AGENT_CLUSTER=CLUSTER_ID
IMPLY_MANAGER_AGENT_NODE_TYPE= [master, query, data, dataTier2, dataTier3]# Optional settings used for generating TLS certificates. These are only required
if you use custom DNS entries for the agent servers.
# IMPLY_AGENT_FQDN=<Fully qualified domain name for the agents>
# IMPLY_AGENT_IP_ADDRESS=<External IP address for the agentsIMPLY_MANAGER_HOST
: The host for Imply Manager. Don't include the protocol (http:// or https://) for the URL value.IMPLY_MANAGER_AGENT_CLUSTER
: The cluster ID for your Imply cluster. You can get the value from the cluster status page in Imply Manager.IMPLY_MANAGER_AGENT_NODE_TYPE
: The type of node for this agent. Usemaster
orquery
for their respective nodes. For data nodes, the value depends on how many data tiers you are using:- For the first tier, use
data
. - For tiers 2 and 3, use
dataTier2
anddataTier3
respectively. - For tiers 4 and higher, create an environment variable that assigns an integer value to
NODE_TIER_VALUE
. The integer value corresponds to the tier number you want to set. Each time you want to create an additional tier, increment the value forNODE_TIER_VALUE
by one. Usedata
for the value ofIMPLY_MANAGER_AGENT_NODE_TYPE
.
- For the first tier, use
Start the agent:
sudo systemctl start imply-agent
(Optional) Ensure Imply Agent is running.
Ensure all services starting with "imply-" are running:
systemctl list-dependencies --reverse imply-agent imply-agent.service
The command returns the following where a green dot indicates that the service is running:
● ├─imply-grove-agent.service
● ├─imply-runsvdir.service
Repeat this step for each server in the cluster, specifying the appropriate node type for each.
You can view status or stop the agent by running
systemctl status imply-agent
andsudo systemctl stop imply-agent
, respectively.