Introduction
This tutorial will walkthrough how to install Gremlin on CentOS 7 and perform a Chaos Engineering experiment using a Gremlin CPU attack.
Prerequisites
Before you begin this tutorial, you'll need the following:
- A CentOS 7 server
- A Gremlin account (sign up here)
Step 1 - Installing the Gremlin Daemon and CLI
First, add the Gremlin RPM repository:
# Add the Gremlin repo
sudo curl https://rpm.gremlin.com/gremlin.repo -o /etc/yum.repos.d/gremlin.repo
Then install the Gremlin daemon and CLI:
# Install Gremlin client and daemon
sudo yum install -y gremlin gremlind
After you have created your Gremlin account (sign up here) you will need to find your Gremlin Daemon credentials. Login to the Gremlin App using your Company name and sign-on credentials. These were emailed to you when you signed up to start using Gremlin.
Navigate to Team Settings and click on your Team. Make a note of your Gremlin Secret and Gremlin Team ID.
Then initialise Gremlin and follow the prompts:
gremlin init
You are now ready to create attacks using the Gremlin App.
Step 2 - Creating attacks using the Gremlin App
Login to the Gremlin App using your Company name and sign-on credentials. These details were emailed to you when you created your Gremlin account.
Select Create Attack in the Gremlin App.
Example: The Hello World of Chaos Engineering (a CPU attack)
You can use the Gremlin App or the Gremlin API to trigger Gremlin attacks. You can view the available range of Gremlin Attacks in Gremlin Help.
The Hello World of Chaos Engineering is the CPU Resource Attack. To create a CPU Resource Attack select Resource and then CPU in the dropdown menu.
The CPU Resource Attack will consume CPU resources based on the settings you select. The most popular default settings for a CPU Resource Attack are pre-selected, a default attack will utilize 1 core for 60 seconds. Before you can run the Gremlin attack you will need to click either Exact hosts to run the attack on or click the Random attack option.
Click Exact and select a Gremlin Client in the list.
Your attack will begin to run, you will be able to view its progress via Gremlin Attacks in the Gremlin App.
On your server, run top to check the impact of the Gremlin Attack:
$ top
top - 06:26:47 up 7 days, 7:00, 1 user, load average: 0.28, 0.07, 0.02
Tasks: 105 total, 1 running, 104 sleeping, 0 stopped, 0 zombie
%Cpu(s): 79.7 us, 20.3 sy, 0.0 ni, 0.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 1016120 total, 127140 free, 93956 used, 795024 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 712192 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
23768 gremlin 20 0 13268 11136 3576 S 99.3 1.1 0:14.05 gremlin
23766 root 20 0 40388 3600 3072 R 0.3 0.4 0:00.03 top
1 root 20 0 37760 5760 3940 S 0.0 0.6 0:13.74 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:01.28 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root 20 0 0 0 0 S 0.0 0.0 0:06.14 rcu_sched
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
10 root rt 0 0 0 0 S 0.0 0.0 0:04.09 watchdog/0
When your attack is complete it will move to Completed Attacks.
Step 3 - Halting a CPU resource attack using the Gremlin App
You can stop a Gremlin Attack at anytime using the Gremlin App. Navigate to Gremlin Attacks and click on the halt button.
Conclusion
You've installed Gremlin on a server running CentOS 7 and validated that Gremlin works by running the Hello World of Chaos Engineering, the CPU Resource attack. You now possess tools that make it possible for you to explore additional Gremlin Attacks including attacks that impact State and Network.
Gremlin's Developer Guide is a great resource and reference for using Gremlin to do Chaos Engineering. You can also explore the Gremlin Blog for more information on how to use Chaos Engineering with your application infrastructure.