Last updated: 30.04.2026
This guide will walk you through the complete installation of Icinga 2 with IcingaDB on Red Hat Enterprise Linux 10.1 – from repository setup to the running monitoring stack. You get a cleanly set up Icinga stack with IcingaDB as a modern data backend.
Step-by-step instructions for installing Icinga and IcingaDB on RHEL 10.1
An important note before starting: The official RHEL repositories of Icinga are part of the Icinga Repository Subscription. It is not possible to install Icinga on RHEL-based systems without official access! A subscription to Icinga is required to gain access.
All information and contact options can be found on the Icinga homepage: https://icinga.com/pricing/
Requirements for the installation
Before you start, the following points should be fulfilled:
- Operating system: RHEL 10.1
- You have the right to be a Sudo user
- Access to an SQL database (I use MariaDB here)
- An Internet connection on the server
- An active Icinga repository subscription
Step 1: Add repository and install packages
Start with the following command:
rpm --import https://packages.icinga.com/icinga.key
wget https://packages.icinga.com/subscription/rhel/ICINGA-release.repo -O /etc/yum.repos.d/ICINGA-release.repoOnce the command block has been successfully completed, you must edit /etc/yum.repos.d/ICINGA-release.repo with your Icinga Subscription Repository access data.
dnf repolistThis command activates all repos. It may happen that you are shown that your system is not yet registered. If this is the case, don’t panic!
subscription-manager register --username=DeinRedHatBenutzername --password=DeinRedHatPasswordYou can now install Icinga2 by simply executing the following command.
dnf install icinga2
systemctl enable icinga2
systemctl start icinga2
icinga daemon -C
dnf install icinga2-selinuxStep 2: Activate the Icinga API and install monitoring plugins
Now you need an external check plugin, as Icinga does not have one integrated by default. This allows you to collect and analyze your data.
dnf install nagios-pluginsIn case you are wondering why Icinga uses plugins for Nagios: Historically, Icinga 2 evolved from Nagios. The plugin collection also works with other monitoring systems based on Nagios.
To interact with Icinga, the Icinga API must be set up. This can be easily triggered with the corresponding Icinga 2 command:
icinga2 api setup
systemctl restart icinga2An API user is generated in /etc/icinga2/conf.d/api-users.conf with a random password so that the API can be addressed by Icinga2.
Step 3: Set up IcingaDB
IcingaDB is based on a Redis server. To avoid problems with the server configuration, the Icinga team provides a special Redis package: icindadb-redis contains a current Redis version and is optimally adapted to the requirements of Icinga DB. This is how you install it:
dnf install icingadb-redisThe Redis server can basically be installed anywhere in an Icinga environment. For the best practice recommendation, however, you should place it on the central Icinga node to keep latency as low as possible.
If there is already a configured Redis server in your infrastructure, you can use this. However, this requires customization, which is why the special Icinga package is recommended.
Step 4: Activating the Redis
The installation of icingadb-redis automatically creates all the required system files. This allows you to activate and start the service directly.
systemctl enable --now icingadb-redisBy default, icingadb-redis only listens on 127.0.0.1, i.e. on localhost. To enable you to integrate additional nodes in the future, 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-redisActivate the feature in Icinga 2 to enable data forwarding to Redis. All changes made in this step are verified by restarting the entire Icinga service.
icinga2 feature enable icingadb
systemctl restart icinga2Security 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:
- Set up a password
- Set up firewall rules or
- Set up TLS
In this guide, however, this has been omitted in order to improve comprehensibility and reduce the scope. However, it is strongly recommended that these adjustments are also made retrospectively.
Step 5: Install icingaDB and create database
After activating IcingaDB as a feature in Icinga, this step serves to install the package on your system.
dnf install icingadbTo use the data collected by Icinga2, create a database. In our example, I am using MariaDB. The command remains the same in MySQL.
If you use PostgreSQL, you can find the corresponding command in the official Icinga docs.
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.sqlStep 6: Adjust access permissions
The installation of Icinga DB creates a configuration file filled with default values under /etc/icingadb/config.yml. The access parameters of the database and Redis must now be entered in this file to enable communication between all components.
The following parameters must be checked and adjusted if necessary:
For the database:
- host with the corresponding host name/host IP of your database
- database with the name of your database (in this guide icingadb)
- user with the name of your database user
- 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 Icinga DB service can be activated:
systemctl enable --now icingadbStep 7: 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 wizardThe 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 icinga2Congratulations, you have successfully installed Icinga2 with IcingaDB on RHEL 10.1!
You want to use Icinga 2 in your environment, but want someone else to set it up? We support you in planning, installing and operating your monitoring stack. Enquire now without obligation!

