Install Icinga with IcingaDB on Ubuntu 24.04

2 April, 2026

Dirk Wening
Dirk Wening
Technical Writer

Dirk arbeitet seit Januar 2025 bei NETWAYS als Junior Consultant im Zuge seiner Umschulung zum Fachinformatiker für Systemintegration. Aktuell arbeitet er in der Abteilung  NETWAYS Professional Services und strebt nach seiner Umschulung eine Übernahme zum Consulting-Team an. In seiner Freizeit unternimmt er sehr viel mit seiner Tochter oder spielt American Football.

by | Apr 2, 2026

Dieser Eintrag ist in der Serie Grundinstallation Icinga

Last updated: 02.04.2026

You want to install Icinga on Ubuntu 24.04 LTS and work directly with IcingaDB? Good decision! The new architecture ensures that monitoring data is processed much better than with older backends.

Step-by-step instructions for installing Icinga on Ubuntu 24.04

In this guide I will show you step by step how to install and configure Icinga 2 with IcingaDB.

Requirements for the installation

Before you start installing Icinga on Ubuntu 24.04, your environment should fulfill the following requirements:

  • Operating system Ubuntu 24.04 LTS with at least 2 GB RAM and 20 GB free storage space
  • You have the right to work as a Sudo user on this machine
  • Access to an SQL database
  • An Internet connection on the machine

Step 1: Integration of the Icinga repository

In order to install the current version of Icinga, we need the official Icinga repository. To begin with, we will update the list of available software packages.

To do this, execute the following commands in your terminal:

1)

apt update

2)

wget -O icinga-archive-keyring.deb "https://packages.icinga.com/icinga-archive-keyring_latest+ubuntu$(
. /etc/os-release; echo "$VERSION_ID"
).deb"

apt install ./icinga-archive-keyring.deb

3)

echo "deb [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/ubuntu icinga-noble main"> /etc/apt/sources.list.d/noble-icinga.list
echo "deb-src [signed-by=/usr/share/keyrings/icinga-archive-keyring.gpg] https://packages.icinga.com/ubuntu icinga-noble main">> /etc/apt/sources.list.d/noble-icinga.list

4)

apt update

As soon as this command block has run successfully, you will see in your terminal that the new repos can now be found in your list.

Step 2: Install the Icinga package

To install the Icinga package in the next step, use :

apt install -y icinga2

Step 3: Installing the monitoring plugin and activating the Icinga api

The following step allows you to create the first checks and collect data by installing the monitoring plugins.

apt install monitoring-plugins

To retrieve the results of the check plugins, the Icinga API must be set up. The first command activates the API feature and automatically creates X.509 TLS certificates for secure communication. It also creates an API user in the configuration file:
/etc/icinga2/conf.d/api-users.conf


Restarting the service loads the new configurations and activates them.

icinga2 api setup
systemctl restart icinga2

Step 4: Set up Icinga DB

IcingaDB is not, as the name might suggest, a stand-alone database.
Rather, it is a collection of components for publishing, synchronizing and visualizing monitoring data in the Icinga ecosystem. This includes Redis, the IcingaDB feature of Icinga Core and the IcingaDB daemon.

To be able to use IcingaDB, you need a Redis server. Redis stands for Remote Dictionary Server. It offers an in-memory database. Icinga has optimized this so that it fits perfectly into the Icinga2 infrastructure.

It saves results and downtimes temporarily and thus reduces the load on the main database. Icinga2 uses port 6380 instead of the usual port 6379. This can then be activated immediately.

apt install icingadb-redis
systemctl enable --now icingadb-redis-server

By default, icingadb-redis only listens on 127.0.0.1, i.e. on localhost. To change this and to be able to integrate additional nodes in the future, we change the following configuration file: /etc/icingadb-redis/icingadb-redis.conf

In this file, it is best to adjust the “bind” item: bind 127.0.0.1 becomes bind 0.0.0.0
This means that all interfaces can access the Redis.

systemctl restart icingadb-redis

Security note: Redis does not have active authentication by default. If you change bind to 0.0.0.0, this may allow unauthorized access if your system communicates externally. To close this security gap, it is advisable to take various security precautions.
This includes: setting up a password, setting up firewall rules or setting up TLS.

In this guide, however, this has been omitted in order to make it easier to understand and to reduce the scope. It is strongly recommended that these adjustments are also made retrospectively.

We restart the service with the command and the changes are activated.
In order for Icinga to be able to process data via Redis using IcingaDB, the corresponding feature must be enabled. Icinga2 must then be restarted.

icinga2 feature enable icingadb
systemctl restart icinga2

Installing IcingaDB and setting up the database

Now that the interface of Icinga2 and IcingaDB has been activated, IcingaDB will be installed.

apt-get install icingadb

In this example, I use MySQL (but you are also welcome to use MariaDB or PostgreSQL, although the corresponding command is different for PostgreSQL. You are welcome to refer to the official Icinga Docs) to create a database for IcingaDB.

mysql -u root -p
CREATE DATABASE icingadb;
CREATE USER 'icingadb'@'localhost' IDENTIFIED BY 'DeinSicheresPasswort';
GRANT ALL ON icingadb.* TO 'icingadb'@'localhost';

You have now successfully created the database and the database user. IcingaDB also provides a database schema, which is now imported:

mysql -u root -p icingadb </usr/share/icingadb/schema/mysql/schema.sql

Adjust access authorizations

During the installation of Icinga DB, a configuration file is created under /etc/icingadb/config.yml , which is filled with default values. In order for the connection from Icinga DB to Redis and MariaDB to be successful, these values must be checked and adjusted if necessary.

Open the path with a text editor of your choice and adjust the following parameters if necessary.

For the database:
Host with the corresponding host name/host IP of your database, database with the name of your database, user with the name of your database user and password with the password that you have assigned to your database.

For Redis:
host with the corresponding host name/host IP of your Redis instance. If you have changed the port or set a password during the installation of your Redis server, you must also enter this here.

Once these changes have been completed, the IcingaDB service can be activated:

systemctl restart icingadb

systemctl enable --now icingadb

Step 5: Node Wizard

The Node Wizard helps you to set up your zones and define the endpoints of your Icinga monitoring. For this you use:

icinga2 node wizard

The following points are queried interactively:

  • Is this agent/satellite setup? -> Enter ‘n’ here and confirm with Enter
  • Specifiy common name (FQDN of your master) -> Enter nothing and confirm with Enter
  • Master zone name -> Enter nothing and confirm with Enter
  • Specify additional global zones -> Enter nothing and confirm with Enter
  • Specify API bind host/port -> Enter nothing and confirm with Enter
  • Bind Host -> Enter nothing and confirm with Enter
  • Bind Port -> Enter nothing and confirm with Enter
  • Disable inclusion of conf.d directory -> Enter nothing and confirm with Enter

To verify the configuration and then reload Icinga2:

Icinga2 daemon -C
systemctl reload icinga2

Congratulations, you have installed Icinga2 with IcingaDB!

This will run your Icinga environment with IcingaDB on Ubuntu 24.04. In the next step, you can expand your monitoring in a targeted manner, e.g. with additional hosts, checks or distributed structures.

If you have any further questions or need support, please contact our team by email at sales@netways.de, via our contact form or by phone.

get advice on all topics related to Icinga!

How did you like our article?