Recherche de site Web

Comment installer Icinga2 sur RHEL, Rocky et AlmaLinux


Icinga2 est une application de surveillance et d’alerte réseau open source riche en fonctionnalités, qui est un fork de l’outil de surveillance Nagios.

Il a été construit pour remédier aux lacunes de Nagios et introduire de nouvelles fonctionnalités telles qu’une interface utilisateur améliorée et moderne, une API REST pour intégrer de nouvelles extensions sans avoir besoin d’apporter des modifications au noyau d’Icinga, et des connecteurs de base de données supplémentaires.

Icinga2 surveille la disponibilité des hôtes ainsi que des services. Certains de ces services incluent SNMP, HTTP, HTTPS et SSH. Il surveille également les périphériques réseau tels que les routeurs et les commutateurs.

Icinga collecte également des métriques et génère des journaux pour vous donner une image complète de votre infrastructure réseau. Les logs et les métriques sont ensuite visualisés sur des tableaux de bord pour mieux contextualiser le tout.

Dans cet article, nous vous expliquons comment installer l’application de surveillance Icinga2 sur RHEL, Rocky Linux et AlmaLinux.

Conditions préalables

Pour l’installation d’Icinga2, vous devez avoir installé la pile LAMP. Un peu de prudence ici - Icinga2 nécessite PHP 7.3 et les versions ultérieures pour l’installation.

Nous avons déjà un tutoriel sur la façon d’installer LAMP sur RHEL 8 - Utilisez cet article pour installer le serveur Web Apache et le serveur de base de données MariaDB uniquement puisque les instructions se concentrent sur l’installation de PHP 7.2 qui n’est pas pris en charge par Icinga2.

Dans la première étape de ce guide, nous allons vous guider tout au long du processus d’installation de PHP 7.4 et des modules requis.

Étape 1 : Installer PHP et les modules PHP

Avec Apache et MariaDB installés, allons-y et installons PHP 7.4. Si vous avez installé PHP 7.2 et les versions ultérieures, supprimez-le en exécutant :

$ sudo dnf remove php

Ensuite, réinitialisez le module PHP actuel sur le système.

$ sudo dnf module reset php

Après cela, listez les versions PHP disponibles comme indiqué.

$ sudo dnf module list php

Activez ensuite PHP 7.4.

$ sudo dnf module enable php:7.4

Une fois le module PHP 7.4 activé, installez PHP et les extensions PHP requises.

$ sudo dnf install php-gd php-mbstring php-mysqlnd php-curl php-devel php-pear php-xml php-cli php-soap php-intl php-json php-ldap php-xmlrpc php-zip php-json php-common php-opcache php-gmp php-pgsql make -y

Icinga2 nécessite également l’extension php-imagick. Cependant, il ne peut pas être installé de manière conventionnelle comme nous l’avons fait avec les autres modules PHP.

Pour installer l’extension, exécutez les commandes suivantes :

$ dnf install -y ImageMagick ImageMagick-devel
sudo pecl install imagick

Ensuite, passez à l’utilisateur root et ajoutez les extensions au PHP. Fichier INI.

$ su -
echo "extension=imagick.so" > /etc/php.d/20-imagick.ini

Pour appliquer les modifications, redémarrez le serveur Web Apache.

$ sudo systemctl restart httpd

Étape 2 : Installer Icinga2 dans RHEL 8

Pour installer Icinga2, nous devons ajouter le référentiel Icinga car Icinga2 n’est pas hébergé sur les référentiels AppStream.

Pour ce faire, il faut d’abord activer le référentiel EPEL.

$ sudo dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Ensuite, activez la clé de signature GPG.

$ sudo rpm --import https://packages.icinga.com/icinga.key

Ensuite, créez un fichier de référentiel dans le répertoire /etc/yum.repos.d.

$ sudo vim  /etc/yum.repos.d/icinga2.repo

Collez le bloc de code suivant

 
[icinga2]
name=Icinga 2 Repository for EPEL 8
baseurl=https://packages.icinga.com/epel/8/release
enabled=1

Enregistrez et quittez le fichier de référentiel. Mettez ensuite à jour les packages de cache,

$ sudo dnf makecache

Une fois le référentiel ajouté, installez le package Icinga2 et les autres packages Icinga2 associés.

$ sudo dnf install icinga2 icinga2-ido-mysql icinga2-selinux  vim-icinga2 -y

Ensuite, installez les plugins Nagios qui seront utilisés pour surveiller les hôtes physiques et virtuels.

$ sudo dnf install nagios-plugins-all -y

Ensuite, activez le module ido-mysql Icinga2 et d’autres fonctionnalités.

$ sudo icinga2 feature enable ido-mysql syslog command

Redémarrez ensuite Icinga pour que les modifications soient appliquées.

$ sudo systemctl restart icinga2

Étape 3 : Créer une base de données pour le module MySQL Icinga-IDO

La fonctionnalité mysql icinga2-IDO (Icinga Data Output) est une fonctionnalité backend qui rassemble et exporte toutes les informations de configuration et d’état dans une base de données. Pour cette raison, nous devons créer une base de données pour la fonctionnalité Icinga2-ido-mysql.

Alors, connectez-vous au serveur de base de données MySQL :

$ sudo mysql -u root -p

Créez une base de données ainsi qu’un utilisateur de base de données pour Icinga2. Accordez ensuite tous les privilèges de l’utilisateur de la base de données à la base de données Icinga2.

> CREATE DATABASE icinga2;
> GRANT ALL PRIVILEGES ON icinga2.* TO 'icinga2_user'@'localhost' IDENTIFIED BY 'P@ssword321';

Appliquez les modifications et quittez le serveur de base de données.

> FLUSH PRIVILEGES;
> EXIT;

Ensuite, importez le schéma de base de données comme suit. Vous serez invité à entrer un mot de passe sur lequel vous devrez fournir le mot de passe de la base de données.

$ sudo mysql -u root -p icinga2 < /usr/share/icinga2-ido-mysql/schema/mysql.sql

Ensuite, modifiez le fichier de configuration ido-mysql.

$ sudo vim /etc/icinga2/features-available/ido-mysql.conf

Décommentez le bloc de base de données et spécifiez les détails de la base de données.

Enregistrez et quittez.

Ensuite, démarrez et activez Icinga2.

$ sudo systemctl start icinga2
sudo systemctl enable icinga2

Vérifiez ensuite l’état d’Icinga2 comme indiqué.

$ sudo systemctl status icinga2

D’après le résultat ci-dessous, il est clair qu’Icinga est opérationnel comme prévu.

Étape 4 : Installer IcingaWeb2 sur RHEL 8

IcingaWeb2 est un outil de surveillance Web open-source qui intègre également une interface en ligne de commande. Il prend en charge toutes les fonctionnalités backend d’Icinga telles que Icinga-ido-mysql, Icinga core, Icinga2 et d’autres modules.

Pour installer IcingaWeb2, installez PowerTools à l’aide de la commande suivante.

$ sudo dnf install 'dnf-command(config-manager)'
sudo dnf config-manager --set-enabled powertools

Une fois l’installation terminée, installez IcingaWeb2 et l’interface de ligne de commande comme indiqué.

$ sudo dnf install icingaweb2 icingacli

Étape 5 : Créer une base de données pour IcingaWeb2

Tout comme nous avons créé un schéma de base de données pour la fonctionnalité Icinga2-IDO-mysql, nous devons également créer un deuxième schéma pour Icinga Web2.

Donc, une fois de plus, connectez-vous au serveur de base de données.

$ sudo mysql -u root -p

Créez une base de données et un utilisateur de base de données pour IcingaWeb2, puis accordez toutes les autorisations à l’utilisateur de la base de données sur la base de données Icinga Web2.

> CREATE DATABASE icingaweb2;
> GRANT ALL ON icingaweb2.* TO icingaweb2@localhost IDENTIFIED BY 'P@ssword321';

Enregistrez les modifications et quittez.

> FLUSH PRIVILEGES;
> QUIT

Lors de l’installation d’Icinga2, un nouveau fichier de configuration pour Icinga2 a été créé. Vous pouvez l’afficher comme indiqué.

$ cat /etc/httpd/conf.d/icingaweb2.conf

Vous devez redémarrer le serveur Web Apache pour que les modifications entrent en vigueur.

$ sudo systemctl restart httpd

De plus, vous devez également définir le mode SELinux sur « permissif » comme suit.

$ sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config

Étape 6 : Terminez la configuration d’Icinga2 à partir du navigateur

L’étape de l’installation d’Icinga2 est la création d’un jeton d’installation, qui est un code unique qui sera utilisé pour l’authentification lors de la première étape lors de la configuration d’Icinga2 sur un navigateur.

Pour générer un jeton secret, exécutez la commande :

$ sudo icingacli setup token create

Copiez et conservez le jeton d’installation en lieu sûr. Si vous perdez le jeton, vous pouvez le récupérer en exécutant la commande :

$ sudo icingacli setup token show

À ce stade de ce guide, toutes les configurations sont en ordre. Il ne reste plus qu’à terminer l’installation à partir d’un navigateur Web. Pour ce faire, parcourez l’URL affichée

http://server-ip/icingaweb2/setup

Sur la page d’accueil, collez le jeton d’installation que vous avez généré précédemment.

Une fois que vous avez collé le jeton, cliquez sur « Suivant » pour continuer. Cela vous amène à la page « Modules ». Cela donne un aperçu de tous les modules que vous pouvez activer. Par défaut, le module 'monitoring' est activé.

Activez vos modules préférés et faites défiler vers le bas et cliquez sur « Suivant » pour continuer.

Dans cette section, assurez-vous que toutes les conditions préalables PHP ont été satisfaites, ce qui inclut les modules, les bibliothèques et les répertoires PHP. Si tout semble correct, faites défiler vers le bas et cliquez sur « Suivant ».

Sur la page « Authentification », laissez tout tel quel et cliquez sur « Suivant ».

Dans la section 'Ressource de base de données', remplissez les détails de la base de données pour IcingaWeb2 comme spécifié à l’étape 5.

Pour confirmer que les détails de la base de données sont corrects, faites défiler vers le bas et cliquez sur « Valider la configuration ».

Si tout se passe bien, vous devriez recevoir une notification indiquant que la configuration a été validée avec succès.

Pour passer à l’étape suivante, faites défiler vers le bas et cliquez sur « Suivant ». Pour « Authentication Backend », cliquez simplement sur « Suivant » pour accepter les valeurs par défaut.

À l’étape suivante, créez un utilisateur Admin qui sera utilisé pour accéder et se connecter à l’interface Web d’Icinga2.

Pour la section « Surveillance des applications », acceptez les valeurs par défaut et cliquez sur « Suivant ».

Passez en revue toutes les modifications que vous avez apportées jusqu’à présent en cours de route. Si tout semble correct, cliquez sur « Suivant » et si vous sentez qu’il est nécessaire d’apporter des modifications, cliquez sur « Retour » et apportez les modifications requises.

La section suivante est la configuration du module de surveillance pour IcingaWeb2. Il s’agit du module de base d’Icinga Web 2 qui offre des vues d’état et de rapport avec des capacités de filtrage robustes pour le suivi des événements cruciaux.

Cliquez sur « Suivant » pour continuer.

À l’étape suivante, remplissez le formulaire avec les détails de la base de données pour la fonctionnalité Icinga2-ido-mysql comme spécifié à l’étape 3.

Pour valider la configuration, faites défiler vers le bas et cliquez sur « Valider la configuration ».

Vous recevrez une notification indiquant que la configuration a été validée avec succès.

Pour passer à l’étape suivante, faites défiler vers le bas et cliquez sur « Suivant ». Pour 'Transport de commande', utilisez 'Fichier de commande local' comme type de transport et cliquez sur 'Suivant'.

Dans la section « Surveillance de la sécurité », cliquez sur « Suivant ».

Encore une fois, passez en revue toutes les configurations du module de surveillance Icinga2. Si tout semble correct, cliquez sur « Terminer », puis revenez en arrière et apportez les modifications nécessaires.

Si tout s’est bien passé avec la configuration d’Icinga Web 2, vous devriez recevoir une notification indiquant que Icinga Web 2 a été configuré avec succès. Pour vous connecter à l’interface web, cliquez sur le lien « Se connecter à Icinga Web 2 ».

Cela ouvre l’interface d’Icinga Web 2. Fournissez les détails du compte administrateur et cliquez sur « Connexion ».

Cela vous amène au tableau de bord de surveillance Icinga2 comme indiqué.

Et c’est tout. À partir de là, vous pouvez surveiller divers hôtes et services au sein de votre infrastructure réseau. Dans ce guide, nous vous avons expliqué l’installation d’Icinga Web 2 sur RHEL 8, Rocky Linux et AlmaLinux.

Articles connexes: