Running GRR and Fleetspeak with Envoy
The following diagram shows the high level architecture of the sandbox environment.
This sandbox uses Docker Compose to demonstrate how to run GRR and Fleetspeak with Envoy leveraging Fleetspeak in the HTTPS header frontend mode.
This frontend mode lends itself to showcase an example of Fleetspeak’s more involved frontend modes.
Fleetspeak offers several other frontend modes to run GRR/Fleetspeak in varying contexts. You can find more information about them in the Fleetspeak repository.
The sandbox also features the sample configurations that can be used to learn about Fleetspeak’s frontend mode options and how to model your own configurations.
Before you begin you will need to setup the sandbox environment. It is important that you follow all the steps in the setup instructions section before running the sandbox.
Setup the sandbox environment
Install docker
Ensure that you have a recent versions of docker
installed.
You will need a minimum version of 19.03.0+
.
Version 20.10
is well tested, and has the benefit of included compose
.
The user account running the examples will need to have permission to use Docker on your system.
Full instructions for installing Docker can be found on the Docker website.
Install docker compose
The examples use Docker compose configuration version 3.8.
You will need to a fairly recent version of Docker Compose.
Install Git
The GRR Doc repository is managed using Git.
You can find instructions for installing Git on various operating systems here.
Clone the GRR Doc repository
If you have not cloned the GRR Doc repository already, clone it with:
git clone https://github.com/google/grr-doc
Create configurations
cd grr-doc/fleetspeak/sandbox
./createConfig.sh
Run the GRR Fleetspeak sandbox demo
docker compose up --build -d
When you run the sandbox for the first time Docker will have to build the containers before running them.
This will take a couple of minutes so you might want to grab a cup of coffee now.
The next runs will be a lot faster.
Connect to the GRR UI
Once the containers are up and running you can connect to the GRR UI.
You will have to create a demo
user first. The script will ask you for a password. We suggest you use demo
for simplicity.
You can create the demo
user by executing the command listed in the box below.
docker exec -it sandbox-grr-admin-1 /grr/venv/bin/grr_config_updater add_user demo
With the demo
user in place you can now point your browser to the GRR UI: http://localhost:8000
Stop the GRR Fleetspeak sandbox demo
docker compose down