Akvorado Basic Install (without Docker)

Let me first state that I hate Docker and I won’t run or support an environment using Docker containers. I recently needed to spin up a copy of Akvorado for testing, and it was sort of annoying trying to figure out which parts of the documentation were actually useful when not using Docker. I’ll just outline the basic steps I used to accomplish having a running instance of Akvorado.

Deploy Debian 12

I use Debian for almost everything so I did a basic deployment of the latest stable Debian 12. At the time of this article, the required Go version provided by the Debian stable repo was 1.19 but Akvorado requires 1.21. You’ll need to pop over to the unstable repo by editing /etc/apt/sources.list and changing “bookworm” to “unstable” for the main apt source, then running apt update after saving the file.

Install some required packages: apt install golang nodejs npm curl openjdk-8-jre

For my deployment, this installed Go 1.22. The other packages also seemed to be new enough to support Akvorado’s requirements. If you haven’t already done so, you’ll want to create a user account to run all the Akvorado services under.

Deploy Kafka

Obtain the latest stable version and see the instructions at https://kafka.apache.org/quickstart

As your designated Akvorado user account, enter the Kafka directory and start the services:

  • bin/zookeeper-server-start.sh config/zookeeper.properties
  • bin/kafka-server-start.sh config/server.properties

Deploy ClickHouse

This is also pretty simple, just do the following:

  • curl https://clickhouse.com/ | sh
  • ./clickhouse server

I believe the first run will prompt you to set a user password. You also have the option of using “clickhouse install” to have it place itself in a more standard location.

Deploy Akvorado

The latest release at the time of this article can be found here: https://github.com/akvorado/akvorado/releases/tag/v1.10.1

You have the option of just downloading a binary or compiling it yourself. For the purposes of this article, we’ll just assume you have the binary in your user account’s home directory.

  1. Generate a base config file:
    ./akvorado orchestrator –dump –check /dev/null > config.yaml
  2. Edit the file generated above as I think you need to change the default listen ports for the “inlet” and “console” sections since they overlap with the orchestrator on 8080. I just set these to 8081 and 8082.
  3. Run the orchestrator:
    ./akvorado orchestrator config.yaml
  4. Run the inlet:
    ./akvorado inlet http://(yourhostname):8080
  5. Run the console:
    ./akvorado console http://(yourhostname):8080

The port you configured under the console section in config.yaml is where the web interface listens. The inlet and console both need to communicate with the orchestrator on 8080. Using the noted configuration above, going to http://(yourhostname):8082 should display some empty graphs as the system is waiting for flow data.

Final Thoughts

This is a very “quick n dirty” article and probably not the recommended way of deploying this long term. If you plan on using this in production, you should properly configure all of the required processes to run as services. I’ll also note I have no idea what I’m doing, and I’ve never heard of any of this stuff before last week. I just refuse to deploy a hundred Docker containers to accomplish one thing.


You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.