rss logo

Installer Icinga2 sur Debian 13 : guide complet de mise en place de la supervision

Logo de supervision Icinga2 sur un système Linux Debian 13

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.

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-pgsql pour Icinga 2 (backend PostgreSQL) :
Écran de configuration du paquet Debian demandant l’activation de la fonctionnalité ido-pgsql d’Icinga2 (backend PostgreSQL).
Activer la fonctionnalité 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-common de configurer automatiquement la base de données PostgreSQL pour icinga2-ido-pgsql.
Programme d’installation Debian demandant la configuration automatique de la base de données PostgreSQL pour icinga2-ido-pgsql via dbconfig-common.
Utiliser 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.
Programme d’installation Debian demandant le nom d’hôte de la base de données PostgreSQL pour icinga2-ido-pgsql, avec localhost sélectionné.
Sélectionner localhost comme hôte de la base de données PostgreSQL pour icinga2-ido-pgsql.
  • Enfin, définissez un mot de passe pour l’utilisateur PostgreSQL icinga2, puis confirmez-le lorsque cela vous est demandé.
Programme d’installation Debian demandant la définition et la confirmation du mot de passe de l’application PostgreSQL pour icinga2-ido-pgsql.
Définir et confirmer le mot de passe PostgreSQL utilisé par Icinga2 pour accéder à la base de données IDO.
  • 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.conf et ajoutez les directives ServerName et ServerAdmin :
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 icingaweb2 et stockez-le dans une variable d’environnement :
root@debian:~# ICINGAWEB2_DB_PASSWORD=icingaweb2PASSWD
  • Créez l’utilisateur PostgreSQL icingaweb2 en utilisant le mot de passe stocké dans la variable ICINGAWEB2_DB_PASSWORD :
root@debian:~# sudo -u postgres psql -c "CREATE USER icingaweb2 WITH PASSWORD '$ICINGAWEB2_DB_PASSWORD';"
  • Créez la base de données icingaweb2 et définissez icingaweb2 comme 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 :
Écran d’accueil de l’assistant d’installation d’Icinga Web 2 affichant le champ du jeton de configuration et le bouton Next.
Saisir le jeton d’installation pour accéder à l’assistant de configuration d’Icinga Web 2.
  • Vérifiez que le module Monitoring est activé, puis cliquez sur Next pour continuer.
Écran des modules d’Icinga Web 2 avec le module Monitoring activé avant de poursuivre la configuration.
Activer le module Monitoring afin d’afficher les hôtes et services dans Icinga Web 2.
  • 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.
Page des prérequis d’Icinga Web 2 indiquant que toutes les vérifications sont validées, à l’exception de PDO-MySQL, non requis avec PostgreSQL.
Tous les modules PHP requis sont disponibles ; PDO-MySQL est optionnel lors de l’utilisation de PostgreSQL.
  • Sélectionnez Database comme méthode d’authentification afin de stocker les comptes utilisateurs et les informations d’identification dans le backend PostgreSQL.
Écran de configuration de l’authentification d’Icinga Web 2 avec la méthode Database sélectionnée.
Choisir le backend d’authentification par base de données pour Icinga Web 2.
  • 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).
Écran de configuration de la ressource de base de données PostgreSQL pour Icinga Web 2 utilisant la base icingaweb2.
Configurer la ressource de base de données PostgreSQL utilisée par Icinga Web 2 pour stocker les utilisateurs et les préférences.
  • Confirmez le nom du backend d’authentification, qui doit déjà être défini sur icingaweb2, puis cliquez sur Next.
Écran de configuration du backend d’authentification d’Icinga Web 2 avec le nom icingaweb2 sélectionné.
Confirmer le nom du backend d’authentification par base de données pour Icinga Web 2.
  • 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.
Écran de création du compte administrateur initial pour Icinga Web 2.
Créer le compte administrateur initial pour 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.
Écran de configuration de l’application Icinga Web 2 affichant les options de journalisation et de sécurité.
Configurer le comportement de l’application et les options de journalisation d’Icinga Web 2.
  • Vérifiez le récapitulatif de la configuration appliquée pour Icinga Web 2, puis cliquez sur Next pour poursuivre.
Écran de récapitulatif de la configuration d’Icinga Web 2 présentant les paramètres d’authentification, de base de données et d’application.
Vérifier l’ensemble de la configuration d’Icinga Web 2 avant de continuer.
  • Cliquez sur Next pour commencer la configuration du module de supervision Icinga2.
Écran d’Icinga Web 2 indiquant le démarrage du processus de configuration du module Monitoring.
Démarrer la configuration du module Monitoring afin de connecter Icinga Web 2 à 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.
Écran de configuration de la ressource IDO PostgreSQL d’Icinga Web 2 affichant les paramètres de la base icinga2.
Configurer la ressource de base de données IDO PostgreSQL utilisée par Icinga Web 2 pour lire les données de supervision d’Icinga2.
  • Étant donné que l’ensemble des composants est installé sur le même serveur, utilisez 127.0.0.1 comme 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.
Écran de configuration du transport des commandes d’Icinga Web 2 utilisant l’API Icinga2 sur localhost avec des identifiants API.
Configurer le transport des commandes afin de permettre à Icinga Web 2 d’envoyer des actions à Icinga2 via son API.
  • Conservez les paramètres par défaut sur la page Monitoring Security, puis cliquez sur Next pour continuer.
Écran de configuration de la sécurité du module Monitoring d’Icinga Web 2 montrant la protection des variables personnalisées sensibles.
Les paramètres de sécurité par défaut empêchent l’affichage des variables personnalisées sensibles.
  • Vérifiez le récapitulatif de la configuration de la supervision, puis cliquez sur Finish afin d’appliquer les paramètres.
Écran de récapitulatif de la configuration du module Monitoring d’Icinga Web 2 avec le bouton Finish mis en évidence.
Dernière vérification de la configuration de la supervision avant l’application des 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.
Écran de fin d’installation d’Icinga Web 2 affichant un message de succès et un bouton de connexion.
Icinga Web 2 a été installé avec succès et est prêt à être utilisé.
  • Enfin, connectez-vous à l’aide du compte administrateur créé lors du processus d’installation afin d’accéder à Icinga Web 2.
Écran de connexion d’Icinga Web 2 montrant l’authentification administrateur pour accéder au tableau de bord de supervision.
Se connecter avec le compte administrateur pour accéder au tableau de bord d’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.