Installer Icinga2 sur Debian 13 : guide complet de mise en place de la supervision
- Mise à jour le 20 janv. 2026
Icinga2 est un système de supervision open source, initialement développé comme un fork de Nagios, puis entièrement réécrit afin d’améliorer les performances, la scalabilité et l’extensibilité. Il permet de surveiller les services réseau (SMTP, POP3, HTTP, NNTP, ping), les ressources des hôtes telles que la charge CPU, l’utilisation du disque et de la mémoire, ainsi que les composants d’infrastructure comme les commutateurs, routeurs et capteurs environnementaux.
Icinga2 repose sur une architecture modulaire et prend en charge un large éventail de plugins, offrant aux administrateurs systèmes la possibilité de superviser des services personnalisés et des infrastructures complexes.
- L’architecture d’Icinga 2 se compose des éléments principaux suivants :
- Icinga 2 Core – exécute les contrôles de supervision et planifie l’exécution des plugins
- Icinga Web 2 – interface web permettant de visualiser les données de supervision et l’état du système
- Module de base de données IDO (ido-pgsql) – stocke les données de supervision dans une base de données PostgreSQL
Dans ce tutoriel pas à pas, vous apprendrez à installer et configurer Icinga2 sur Debian 13 en utilisant une base de données PostgreSQL et l’interface Icinga Web 2. Pour simplifier la mise en œuvre, l’ensemble des composants est déployé sur un serveur unique.
Installer Icinga2 sur Debian 13
Comme expliqué précédemment, Icinga2 repose sur plusieurs composants essentiels. Dans cette section, vous apprendrez à installer et configurer le cœur d’Icinga 2, le backend de base de données ainsi que l’interface Icinga Web 2 sur un serveur Debian 13 unique.
Installer les prérequis
- Mettez à jour l’index des paquets APT et installez les paquets nécessaires, notamment le cœur Icinga2, Icinga Web 2, le serveur de base de données PostgreSQL ainsi que les plugins de supervision :
root@debian:~# apt update && apt install -y icinga2 icingaweb2 postgresql monitoring-plugins vim-icinga2 sudo php-pgsql
Installer icinga2-ido-pgsql
icinga2-ido-pgsql est le module de base de données IDO qui permet à Icinga2 d’enregistrer les données de supervision dans une base de données PostgreSQL. Ce module est indispensable pour intégrer Icinga2 avec Icinga Web 2 en utilisant le backend IDO classique.
- Installez le paquet
icinga2-ido-pgsql:
root@debian:~# apt install -y icinga2-ido-pgsql
- Lorsque cela vous est demandé, sélectionnez Oui afin d’activer la fonctionnalité
ido-pgsqlpour Icinga 2 (backend PostgreSQL) :
ido-pgsql lors de l’installation de icinga2-ido-pgsql sur Debian 13.- Lorsque cela vous est demandé, sélectionnez Oui afin de permettre à
dbconfig-commonde configurer automatiquement la base de données PostgreSQL pouricinga2-ido-pgsql.
dbconfig-common pour configurer automatiquement la base de données PostgreSQL pour Icinga2.- Comme la base de données PostgreSQL est installée sur le même serveur, sélectionnez localhost comme hôte de la base de données.
icinga2-ido-pgsql.- Enfin, définissez un mot de passe pour l’utilisateur PostgreSQL
icinga2, puis confirmez-le lorsque cela vous est demandé.
- Vous pouvez retrouver les paramètres de connexion PostgreSQL (nom de la base de données, utilisateur, hôte et mot de passe) dans le fichier
/etc/icinga2/features-available/ido-pgsql.conf:
/**
* The db_ido_pgsql library implements IDO functionality
* for PostgreSQL.
*/
library "db_ido_pgsql"
object IdoPgsqlConnection "ido-pgsql" {
user = "icinga2",
password = "YESidoPASSWD",
host = "localhost",
database = "icinga2"
}
Configurer Apache2 pour Icinga Web 2
- Modifiez le fichier de configuration Apache
/etc/apache2/conf-available/icingaweb2.confet ajoutez les directivesServerNameetServerAdmin:
Alias /icingaweb2 "/usr/share/icingaweb2/public"
ServerName icinga2.std.rocks
ServerAdmin john@std.rocks
<Directory "/usr/share/icingaweb2/public">
Options SymLinksIfOwnerMatch
AllowOverride None
SetEnv ICINGAWEB_CONFIGDIR "/etc/icingaweb2"
EnableSendfile Off
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /icingaweb2/
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>
<IfModule !mod_rewrite.c>
DirectoryIndex error_norewrite.html
ErrorDocument 404 /error_norewrite.html
</IfModule>
</Directory>
Configurer la base de données d’Icinga Web 2
Dans cette section, vous allez créer un utilisateur PostgreSQL dédié ainsi qu’une base de données pour Icinga Web 2.
- Définissez un mot de passe pour l’utilisateur PostgreSQL
icingaweb2et stockez-le dans une variable d’environnement :
root@debian:~# ICINGAWEB2_DB_PASSWORD=icingaweb2PASSWD
- Créez l’utilisateur PostgreSQL
icingaweb2en utilisant le mot de passe stocké dans la variableICINGAWEB2_DB_PASSWORD:
root@debian:~# sudo -u postgres psql -c "CREATE USER icingaweb2 WITH PASSWORD '$ICINGAWEB2_DB_PASSWORD';"
- Créez la base de données
icingaweb2et définissezicingaweb2comme propriétaire :
root@debian:~# sudo -u postgres psql -c "CREATE DATABASE icingaweb2 OWNER icingaweb2;"
Activer les fonctionnalités et modules d’Icinga2
- Remarque :
- ido-pgsql : cette fonctionnalité active le backend de base de données IDO (Icinga Data Output) pour PostgreSQL. Elle permet à Icinga2 d’enregistrer dans la base de données les états des hôtes et des services, les résultats des contrôles, les notifications ainsi que l’historique. Ces données sont indispensables à Icinga Web 2 pour afficher les informations de supervision.
- command : cette fonctionnalité permet à Icinga Web 2 d’envoyer des commandes au cœur d’Icinga2, telles que les acquittements, les périodes de maintenance (downtimes) et les contrôles forcés. Sans cette fonctionnalité, l’interface web serait en lecture seule.
- monitoring (module Icinga Web 2) : il s’agit du module principal utilisé par Icinga Web 2 pour afficher les hôtes, les services, les états, les métriques et les notifications. Son fonctionnement repose à la fois sur la base de données IDO et sur l’API d’Icinga2.
- Activez les fonctionnalités Icinga2 et les modules Icinga Web 2 requis :
root@debian:~# icinga2 feature enable ido-pgsql command
root@debian:~# icingacli module enable monitoring
- Activez l’API Icinga2, nécessaire au bon fonctionnement de Icinga Web 2 :
root@debian:~# icinga2 api setup
- Redémarrez les services Icinga2 et Apache2 afin d’appliquer les modifications :
root@debian:~# systemctl restart icinga2
root@debian:~# systemctl restart apache2
Configurer l’interface Icinga Web 2
Le processus d’installation se poursuit via l’interface web. Ouvrez votre navigateur et connectez-vous à l’URL suivante : http://IP_ADDRESS/icingaweb2/setup.
- Générez un jeton d’installation aléatoire requis pour accéder à l’assistant de configuration d’Icinga Web 2 :
root@debian:~# su www-data -s /bin/sh -c "head -c 12 /dev/urandom | base64 | tee /etc/icingaweb2/setup.token; chmod 0660 /etc/icingaweb2/setup.token"
- Collez le jeton généré précédemment, puis cliquez sur Next :
- Vérifiez que le module Monitoring est activé, puis cliquez sur Next pour continuer.
- Sur la page Requirements, toutes les vérifications doivent être validées. La seule dépendance éventuellement manquante peut être le module PHP PDO-MySQL, qui n’est pas requis dans cette configuration puisque PostgreSQL est utilisé comme backend de base de données.
- Sélectionnez Database comme méthode d’authentification afin de stocker les comptes utilisateurs et les informations d’identification dans le backend PostgreSQL.
- Saisissez le nom de la base de données icingaweb2, le nom d’utilisateur et le mot de passe créés précédemment pour le backend PostgreSQL d’Icinga Web 2 (utilisez votre propre mot de passe).
- Confirmez le nom du backend d’authentification, qui doit déjà être défini sur icingaweb2, puis cliquez sur Next.
- Créez un compte administrateur en définissant un nom d’utilisateur et un mot de passe qui seront utilisés pour se connecter à l’interface Icinga Web 2.
- Vérifiez et ajustez les paramètres de l’application et de la journalisation en fonction de votre environnement, puis cliquez sur Next pour continuer.
- Vérifiez le récapitulatif de la configuration appliquée pour Icinga Web 2, puis cliquez sur Next pour poursuivre.
- Cliquez sur Next pour commencer la configuration du module de supervision Icinga2.
- Saisissez icinga2 comme nom de base de données et nom d’utilisateur, puis utilisez le mot de passe défini lors de l’installation du paquet
icinga2-ido-pgsql. Ces informations d’identification sont disponibles dans le fichier/etc/icinga2/features-available/ido-pgsql.conf.
- Étant donné que l’ensemble des composants est installé sur le même serveur, utilisez
127.0.0.1comme hôte de l’API. Pour le nom d’utilisateur et le mot de passe de l’API, utilisez les identifiants définis dans le fichier/etc/icinga2/conf.d/api-users.conf.
- Conservez les paramètres par défaut sur la page Monitoring Security, puis cliquez sur Next pour continuer.
- Vérifiez le récapitulatif de la configuration de la supervision, puis cliquez sur Finish afin d’appliquer les paramètres.
- Un message de félicitations s’affiche, indiquant que l’installation est terminée. Cliquez sur Login to Icinga Web 2 pour accéder à l’interface web.
- Enfin, connectez-vous à l’aide du compte administrateur créé lors du processus d’installation afin d’accéder à Icinga Web 2.
Vous avez maintenant installé et configuré avec succès Icinga2 avec Icinga Web 2 sur Debian 13. Vous pouvez commencer à superviser vos hôtes et services, configurer les notifications et étendre la plateforme à l’aide de modules et de plugins supplémentaires.