Installing Gremlin on a virtual machine
General steps for deploying the Gremlin Agent to a virtual machine:
Gather your credentials
All Gremlin integration installations require authentication with the Gremlin Control Plane. We recommend using the Client Configuration File method, as it contains everything needed to authenticate and configure the Gremlin Agent in one file. To create and download a client configuration file:
- Access the Team Settings page in the Gremlin web app.
- Click the Configuration tab.
- On the Client Configuration File line, click Download to download the file. You'll receive a file named <span class="code-class-custom">config.yaml</span>.
- Optionally, make any additional configurations to the <span class="code-class-custom">config.yaml file</span>.
If you wish to use another method of authenticating, see the Authentication docs.
Install Gremlin packages
Choose the format that corresponds to your distribution.
- DEB packages (Ubuntu, Debian, etc.)
- RPM packages (SUSE, Amazon Linux, RHEL, CentOS, Rocky, etc.)
- Docker image
If you intend to run experiments against container workloads, it is recommended to install Gremlin as a container using the Docker image. If you choose to install Gremlin using an RPM or DEB package and target container workloads with experiments, some work may be necessary to grant the gremlin
Linux user access to container socket files such as /run/containerd/containerd.sock
. By default, Gremlin will add itself to the docker
Linux group if it is present during installation.
DEB packages
For DEB-based Linux distributions such as Ubuntu, Debian, and so on.
RPM packages
SUSE-based distributions
For distributions based on SUSE Linux, such as SUSE Linux Enterprise Server (SLES), openSUSE, etc.:
Non SUSE-based distributions
For non SUSE-based RPM distributions such as Amazon Linux, RHEL, CentOS, etc.:
If you're using RHEL 8, the following packages must be installed:iproute-tc
kernel-modules-extra
If you're using RHEL 9, the following packages must be installed:
kernel-modules-extra
Fresh deployments of RHEL 9 may require a reboot for the necessary kernel module to be load, as the packages pulls in an updated kernel-core package.
Docker image
Alternatively, instead of installing Gremlin directly on the host operating system, you can deploy Gremlin from the Docker image on DockerHub.
To run the daemon, use the following command. Replace <span class="code-class-custom">$GREMLIN_TEAM_ID</span> with your team ID and <span class="code-class-custom">$GREMLIN_TEAM_SECRET</span> with your team's secret key:
Configure Gremlin
The minimum configuration required to authenticate the Gremlin Agent is:
- Team ID
- Secret or certificate
If you downloaded a client configuration file, you already have everything needed to register the Agent. Just follow these instructions:
Additional configuration options
Read this section if you wish to further configure the Gremlin Agent. Otherwise, skip to the next section.
For Reliability Management, Gremlin uses tags such as operating system, zone, and local-hostname to identify each service's fingerprint. Gremlin automatically detects many tags, but if you wish to apply custom tags (e.g. environment, location, or service name), read the Network tags documentation.
For more information and additional configuration options, see Configuring Gremlin for more information.
Make any edits to the <span class="code-class-custom">/etc/gremlin/config.yaml file</span>, then restart the <span class="code-class-custom">gremlind</span> service after you've made your changes.
Customize Gremlin's Linux user and group
By default on Linux, Gremlin installs a gremlin Linux user and group, and sets the suid bit on /usr/bin/gremlin so that all users can run the Gremlin executable. These defaults can be overridden at installation time by supplying environment variables to the installer.
For example, to run Gremlin as root and restrict executable access to <span class="code-class-custom">root:root</span>, you would run:
The full list of variables available at install time, and their defaults are as follows:
* Gremlin versions before <span class="code-class-custom">2.33.0</span> default this value to <span class="code-class-custom">6111</span> instead.
Validate the installation
There are two ways to ensure your installation was successful and your Agents authenticated successfully:
Check the Gremlin web app
The easiest way to verify connectivity is to open the Agents list in the Gremlin web app. Check for your newly installed Agent by name or by tag. You can also use the search box to search by name or tag, Agent version, operating system (OS), or region. If your Agent does not appear in this list, it may not have been installed or configured correctly, or it might not be able to reach Gremlin's servers.
Check the Gremlin Agent
First, verify that the Gremlin Agent is running on the target system:
This should return the following:
If the service is instead reporting as inactive or failed, try restarting the service using:
After verifying that the Gremlin Agent is running, use <span class="code-class-custom">gremlin check auth</span> to check the Gremlin Agent's authentication status:
If the Gremlin Agent authenticated successfully, the output will be similar to the following:
If not, the output will explain why the Gremlin Agent was unable to authenticate:
Troubleshooting
If the Agent is connected but is reporting as unhealthy, see Troublehsooting Unhealthy State in the Gremlin Knowledge Base. If you're having trouble authenticating, see the Authentication FAQ in the Gremlin Knowledge Base for possible causes and solutions.
Uninstalling Gremlin from a virtual machine
The command for uninstalling the Gremlin agent from a Linux virtual machine will vary depending on your distribution.
Uninstalling DEB packages
For DEB-based Linux distributions such as Ubuntu and Debian:
Uninstalling RPM packages
SUSE-based distributions
For distributions based on SUSE Linux, such as SUSE Linux Enterprise Server (SLES), openSUSE, etc.:
Non SUSE-based distributions
For non SUSE-based RPM distributions such as Amazon Linux, RHEL, CentOS, etc.:
Uninstalling Docker image
If you deployed Gremlin using Docker, use the following command to uninstall it. Note that the container name may be different than <span class="code-class-custom">gremlin</span>, depending on whether you specified a name: