GNU/Linux >> Tutoriels Linux >  >> Linux

Comment surveiller les hôtes avec l'outil de surveillance Linux Icinga

La surveillance est l'un des aspects les plus critiques de l'infrastructure, et l'outil de surveillance Icinga propose une variété d'options parmi lesquelles choisir. Icinga vous permet de surveiller de manière flexible l'ensemble de votre infrastructure en fonction des configurations.

Dans cet article, vous apprendrez à surveiller vos serveurs avec la pile de surveillance Icinga2 ; vous installerez la pile et configurerez la surveillance distribuée.

Prêt? Lancez-vous !

Prérequis

Ce tutoriel sera une démonstration pratique. Pour suivre, assurez-vous d'avoir les éléments suivants :

  • Deux machines Linux – Ce didacticiel utilise le serveur Ubuntu 20.04 sur les deux maîtres (maître ) et client (client01 ) les serveurs.
  • Un utilisateur avec des privilèges root sur les deux appareils.
  • MariaDB est installé et en cours d'exécution sur le serveur maître.

Configuration du nom de domaine complet sur tous les serveurs

Icinga2 est une solution de surveillance prête pour l'entreprise qui vous permet de surveiller les infrastructures de serveurs et les applications dans de nombreux endroits.

Vous configurerez des noms de domaine pleinement qualifiés (FQDN) pour tous vos serveurs, ce qui facilitera la gestion des serveurs dans les grands environnements. Le domaine dans ce tutoriel est nommé example.lan, mais vous pouvez utiliser un domaine local existant.

Notez que vous devez exécuter les commandes suivantes sur les deux serveurs. Modifiez les valeurs en conséquence.

1. Ouvrez votre terminal et connectez-vous au serveur.

2. Ensuite, exécutez chaque commande ci-dessous pour configurer le FQDN sur les ordinateurs maître et client. Le nom de domaine complet des serveurs est master.example.lan (maître ) et client01.example.lan (client01 ).

# Set FQDN on master server
sudo hostnamectl set-hostname master.example.lan

# Set FQDN on client01 server
sudo hostnamectl set-hostname client01.example.lan

3. Modifiez le /etc/hosts fichier avec votre éditeur de texte préféré et remplissez l'entrée ci-dessous. Remplacez les adresses IP par les adresses de serveur réelles.

# /etc/hosts for master
172.16.1.10   master.example.lan   master

# /etc/hosts for client01
172.16.1.30   client01.example.lan   client01

4. Enfin, exécutez la commande ci-dessous pour vérifier le FQDN.

hostname --fqdn

Installation d'Icinga2 et des plugins de surveillance

Avec le FQDN configuré, il est temps d'installer Icinga2. Vous installerez les packages apt pour les plugins icinga2 et de surveillance. Ces packages sont le composant principal d'Icinga2 et le plugin qui fournit des scripts pour la surveillance du système.

L'installation d'Icinga2 et des plugins de surveillance doit être effectuée sur les serveurs maître et client01.

1. Exécutez le apt install ci-dessous commande pour installer les dépendances de package en toute sécurité via HTTPS (apt-transport-https ) et vérifiez la clé GPG.

sudo apt install -y apt-transport-https wget gnupg

2. Ensuite, exécutez le wget commande pour télécharger la clé GPG d'Icinga2. Le canal apt-key La commande ajoute la clé GPG pour vérifier l'intégrité des packages Icinga2.

wget -O - https://packages.icinga.com/icinga.key | apt-key add -

3. Exécutez chaque commande ci-dessous pour ajouter le référentiel Icinga2 apt sur votre machine.

# Adding repository for icinga2
. /etc/os-release; if [ ! -z ${UBUNTU_CODENAME+x} ]; then DIST="${UBUNTU_CODENAME}"; else DIST="$(lsb_release -c| awk '{print $2}')"; fi; \
echo "deb https://packages.icinga.com/ubuntu icinga-${DIST} main" > \
/etc/apt/sources.list.d/${DIST}-icinga.list
echo "deb-src https://packages.icinga.com/ubuntu icinga-${DIST} main" >> \
/etc/apt/sources.list.d/${DIST}-icinga.list

# Verify the Icinga2 apt repository is added
cat /etc/apt/sources.list.d/focal-icinga.list

4. Enfin, exécutez le apt commandes ci-dessous pour actualiser l'index des packages et installer les packages.

# Refresh package index
sudo apt update

# Installing package
sudo apt install icinga2 monitoring-plugins -y

Installation du pilote IDO MySQL sur le serveur maître

Icinga2 est installé et presque prêt à fonctionner. Mais pour que Icinga2 fonctionne correctement, il a besoin d'une base de données. Vous allez donc installer le pilote IDO MySQL et configurer la connexion à la base de données sur votre serveur maître.

Le référentiel Icinga2 fournit le icinga2-ido-mysql forfait. Le package est un pilote de base de données qui fonctionne pour les serveurs MySQL et MariaDB.

1. Exécutez la commande ci-dessous pour installer le icinga2-ido-mysql forfait.

sudo apt install -y icinga2-ido-mysql

2. Sélectionnez Oui. lorsque vous êtes invité à configurer le pilote et à créer une base de données, comme illustré ci-dessous. La configuration définit icinga2 comme utilisateur de la base de données et génère un nouveau fichier, /etc/icinga2/features-available/ido-mysql.conf .

3. Maintenant, sélectionnez Oui pour activer le ido-mysql fonctionnalité sur Icinga2, qui crée automatiquement une nouvelle base de données et un nouvel utilisateur pour Icinga2.

4. Fournissez un mot de passe pour l'utilisateur MariaDB icinga2, puis sélectionnez OK. pour terminer l'installation de icinga2-ido-mysql.

5. Ensuite, exécutez le cat commande ci-dessous pour vérifier le contenu de /etc/icinga2/features-available/ido-mysql.conf dossier.

cat /etc/icinga2/features-available/ido-mysql.conf

Vous verrez ci-dessous les détails de la base de données MariaDB correspondant à ce que vous avez fourni.

6. Exécutez le icinga2 commande ci-dessous à enable le ido-mysql caractéristique.

sudo icinga2 feature enable ido-mysql

7. Enfin, exécutez les commandes suivantes pour redémarrer et vérifier le icinga2 service status .

# restart service
sudo systemctl restart icinga2

# verifying service
sudo systemctl status icinga2

De même ci-dessous, vous verrez que la fonctionnalité ido-mysql est activée et que le service icinga2 est actif (en cours d'exécution).

Configuration de l'API Icinga2

Vous venez d'installer le pilote Icinga2 IDO MySQL et de configurer la connexion à la base de données. Mais pour gérer et configurer la pile de surveillance Icinga2 via des requêtes HTTP, vous configurerez l'API Icinga2.

La pile de surveillance Icinga2 est également un système de surveillance distribué.

1. Exécutez la commande ci-dessous sur votre serveur maître pour activer l'API Icinga2, générer des certificats TLS pour Icinga2 et mettre à jour les configurations Icinga2.

sudo icinga2 api setup

2. Maintenant, modifiez le /etc/icinga2/conf.d/api-users.conf file dans votre éditeur de texte et remplissez la configuration suivante. Prenez note des informations d'identification de l'utilisateur de l'API que vous fournissez, car vous en aurez besoin plus tard.

Remplacez le mot de passe par un mot de passe suffisamment fort si nécessaire.

/** api for icingaweb2 */
object ApiUser "icingaweb2" {
  password = "passwordapiicngaweb2"
  permissions = [ "status/query", "actions/*", "objects/modify/*", "objects/query/*" ]
}

3. Enfin, exécutez la commande ci-dessous pour restart le icinga2 service et appliquer la nouvelle configuration.

sudo systemctl restart icinga2

Installation et configuration d'icingaweb2 sur le serveur maître

Vous aurez besoin d'un tableau de bord pour mieux surveiller vos hôtes après avoir activé l'API Icinga2 et configuré le nouvel utilisateur de l'API. Comment? Vous installerez et configurerez Icingaweb2 sur le serveur maître.

Icingaweb2 est l'interface Web de la pile de surveillance Icinga2, écrite en PHP, et fournit un tableau de bord de surveillance réactif et extensible.

1. Exécutez la commande ci-dessous pour installer Icingaweb2 avec les composants nécessaires pour gérer l'application Web Icingaweb2.

sudo apt install icingaweb2 libapache2-mod-php icingacli -y

2. Ensuite, exécutez le icingacli commande ci-dessous pour générer un jeton pour configurer Icingaweb2. L'installation d'Icingaweb2 aura besoin de ce jeton plus tard, alors notez-le.

sudo icingacli setup token create

3. Exécutez le mysql commande ci-dessous pour se connecter au shell MySQL et créer un nouvel utilisateur (root ) pour Icingaweb2.

mysql -u root -p

4. Maintenant, exécutez les requêtes suivantes pour créer une nouvelle base de données et l'utilisateur icingaweb2 avec un mot de passe. Vous pouvez définir le nom d'utilisateur et le mot de passe selon vos préférences.

CREATE DATABASE icingaweb2;
GRANT ALL ON icingaweb2.* TO [email protected] IDENTIFIED BY 'strongpasswordicingaweb2';
FLUSH PRIVILEGES;

5. Enfin, exécutez exit pour vous déconnecter du shell MySQL.

exit

Configuration de l'installation d'Icingaweb2

Vous avez installé Icingaweb2 sur le serveur maître et généré le jeton de configuration pour un nouvel utilisateur. Mais pour accéder au tableau de bord icingaweb2, vous configurerez votre installation icingaweb2 via votre navigateur Web.

1. Ouvrez votre navigateur Web et accédez à l'adresse IP du serveur maître, suivie du chemin de l'URL /icingaweb2/setup (par exemple, http://172.16.1.10/icingaweb2/setup) .

2. Ensuite, saisissez le jeton de configuration Icingaweb2 que vous avez généré dans la section "Installation et configuration d'icingaweb2 sur le serveur maître" (deuxième étape), puis cliquez sur Suivant .

3. Acceptez les valeurs par défaut (Monitoring ) dans les Modules page et cliquez sur Suivant .

4. Sélectionnez Base de données dans le Type d'authentification liste déroulante, puis cliquez sur Suivant . Ce type d'authentification sécurise le tableau de bord d'administration Icingaweb2.

À ce stade, Icingaweb2 commence à vérifier la configuration système requise pour l'installation.

5. Assurez-vous que toutes les conditions d'état sont vertes, à l'exception de PostgreSQL, et cliquez sur Suivant .

Ignorez le message d'erreur PostgreSQL. Vous utilisez MariaDB comme backend de base de données.

6. Maintenant, fournissez les mêmes valeurs que vous avez définies dans la section "Installation et configuration d'icingaweb2 sur le serveur maître" (étape quatre) à la ressource de base de données formulaire ci-dessous.

Cliquez sur Valider la configuration pour vous assurer que la configuration fonctionne, puis cliquez sur Suivant après avoir vu le message La configuration a été validée avec succès.

7. Quittez le backend d'authentification avec la valeur par défaut (icingaweb2) comme nom de backend, puis cliquez sur Suivant.

8. Fournissez les informations d'identification pour le premier compte administratif d'Icingaweb2 et cliquez sur Suivant . Prenez note des informations d'identification, car vous en aurez besoin pour vous connecter au tableau de bord Icingaweb2 ultérieurement.

9. Laissez les valeurs de journalisation par défaut dans la configuration de l'application pour Icingaweb2, puis cliquez sur Suivant .

10. Ensuite, passez en revue les paramètres de configuration, puis cliquez sur Suivant pour confirmer l'installation d'icingaweb2.

11. Maintenant, cliquez sur Suivant pour continuer la mise en place du module de monitoring pour Icingaweb2.

12. Fournissez le nom de la base de données et l'utilisateur pour Icinga2 en conséquence, comme indiqué ci-dessous. Les détails de la base de données pour Icinga2 sont disponibles dans /etc/icinga2/features-available/ido-mysql.conf fichier.

Cliquez sur Valider la configuration, assurez-vous que la connexion à la base de données est réussie, puis cliquez sur Suivant.

13. Entrez l'utilisateur et le mot de passe de l'API Icinga2 stockés dans /etc/icinga2/conf.d/api-users.conf fichier dans les champs ci-dessous.

Cliquez sur le bouton Valider la configuration, assurez-vous que le message indiquant que la configuration a été validée avec succès s'affiche, puis cliquez sur Suivant.

14. Acceptez les variables personnalisées par défaut sur le Monitoring Security paramètre et cliquez sur Suivant . Ces variables aident à protéger votre environnement de surveillance des regards indiscrets.

15. Inspectez la configuration du module de surveillance et cliquez sur Terminer pour terminer l'installation.

16. Une fois l'installation d'icingaweb2 terminée, vous verrez le message Félicitation ! Icinga Web 2 a été configuré avec succès message, comme indiqué ci-dessous.

Cliquez sur Connexion à Icinga Web 2 et votre navigateur redirige vers la page de connexion icingaweb2 (étape 17).

17. Saisissez votre utilisateur administrateur et votre mot de passe pour icingaweb2 et cliquez sur Connexion pour accéder au tableau de bord Icinga.

18. Enfin, cliquez sur Aperçu —> Services , et vous verrez le statut de votre maître serveur similaire à celui ci-dessous.

Initialisation du serveur maître Icinga2

Vous avez installé avec succès la pile de surveillance Icinga2 pour surveiller l'état de votre serveur maître. Vous allez maintenant initialiser le serveur maître en tant que nœud maître pour la pile de surveillance Icinga2. Le nœud maître est le contrôleur principal de la pile de surveillance distribuée Icinga2.

1. Exécutez la commande ci-dessous sur le terminal de votre serveur maître pour initialiser le icinga2 maître node .

sudo icinga2 node wizard

2. Appuyez sur n pour configurer le nœud agent/satellite (nœud maître Icinga2).

3. Appuyez sur ENTER sur le nom commun (CN) configuration. L'Icinga2 détectera automatiquement le FQDN du serveur.

4. Ensuite, spécifiez le nom de la zone maître sous la forme master.example.lan , et appuyez sur N pour ignorer l'ajout de zones globales. Les zones globales par défaut synchronisent tous les objets de configuration dans icinga2.

5. Laissez l'hôte et le port de liaison API par défaut et appuyez sur ENTREE. L'API communiquera entre le nœud Icinga2 avec des connexions cryptées TLS.

6. Tapez O pour désactiver toute configuration dans /etc/icinga2/conf.d/ car vous utiliserez la configuration des zones Icinga2 que vous créerez plus tard.

7. Maintenant, exécutez le systemctl commande ci-dessous pour redémarrer le service icinga2 et appliquer la configuration.

sudo systemctl restart icinga2

8. Enfin, exécutez la commande ci-dessous pour générer le ticket d'enregistrement client01 avec Icinga2.

sudo icinga2 pki ticket --cn 'client01.example.lan'

Copiez le ticket généré que vous utiliserez pour inscrire ultérieurement le client01 en tant qu'agent Icinga2.

Initialisation de l'agent Icinga2 sur le serveur client

Après avoir initialisé le serveur maître en tant que nœud maître, vous configurerez également l'agent Icinga2 sur le client01 pour surveiller la machine client01 à l'aide d'Icinga2.

1. Connectez-vous au client01 et suivez les étapes que vous avez suivies dans la section "Initialisation du serveur maître Icinga2" (étapes 1 à 3) pour initialiser l'agent Icinga2.

2. Ensuite, spécifiez le point de terminaison parent en tant que master.example.lan , et saisissez O pour établir la connexion avec le nœud parent/maître.

3. Saisissez l'adresse IP du serveur maître (172.16.1.10 ), et laissez le port du point de terminaison par défaut.

4. Maintenant, tapez N lorsqu'on lui a demandé d'ajouter d'autres points de terminaison.

5. Tapez O pour confirmer les informations et ajouter le certificat du serveur maître Icinga2.

6. Saisissez le ticket que vous avez généré à la dernière étape de la section "Initialisation du serveur maître Icinga2" pour enregistrer le nœud de l'agent (client01.example.lan).

7. Appuyez sur ENTRÉE pour accepter les valeurs par défaut pour l'hôte et le port de liaison API.

8. Ensuite, saisissez Y deux fois pour accepter la configuration et les commandes du nœud parent/maître.

9. Appuyez sur ENTRÉE pour accepter la valeur par défaut pour le nom de la zone locale, mais entrez le nom de la zone parent, qui doit correspondre au nom de la zone (master.example.lan ) sur le serveur maître.

10. Maintenant, tapez N pour ignorer l'ajout de zones globales, puis saisissez Y pour désactiver les configurations sur /etc/icinga2/conf.d annuaire.

11. Enfin, exécutez la commande suivante pour redémarrer le service Icinga2 et appliquer les modifications de configuration. sudo systemctl restart icinga2

sudo systemctl restart icinga2

Création de la configuration des zones sur le serveur maître

Une fois la surveillance distribuée terminée, vous allez créer un nouveau répertoire de zone et définir la configuration de surveillance pour l'agent client.

1. Exécutez le mkdir commande ci-dessous pour créer un nouveau répertoire comme zone par défaut (master.example.lan ) sur Icinga2.

sudo mkdir -p /etc/icinga2/zones.d/master.example.lan/

2. Ensuite, créez un fichier de configuration (client01.example.lan.conf ) dans /etc/icinga2/zones.d/master.example.lan/ annuaire. Remplissez le fichier avec la configuration suivante.

Le code ci-dessous définit les points de terminaison, les zones et l'objet hôte pour surveiller les serveurs.

// Endpoints
object Endpoint "client01.example.lan" {
}
// Zones
object Zone "client01.example.lan" {
    endpoints = [ "client01.example.lan" ]
    parent = "master.example.lan"
}
// Host Objects
object Host "client01.example.lan" {
    check_command = "hostalive"
    address = "172.16.1.30"
    vars.client_endpoint = name
}

3. Créez un autre fichier de configuration, copiez/collez le code ci-dessous dans le fichier et enregistrez-le sous /etc/icinga2/zones.d/master.example.lan/services.conf.

Cette configuration ci-dessous surveille certains services de base sur la machine client01.

 // Ping
 apply Service "Ping" {
 check_command = "ping4"
 assign where host.address // check executed on master
 }
 // System Load
 apply Service "System Load" {
 check_command = "load"
 command_endpoint = host.vars.client_endpoint // Check executed on client01
 assign where host.vars.client_endpoint
 }
 // SSH Service
 apply Service "SSH Service" {
 check_command = "ssh"
 command_endpoint = host.vars.client_endpoint
 assign where host.vars.client_endpoint
 }
 // Icinga 2 Service
 apply Service "Icinga2 Service" {
 check_command = "icinga"
 command_endpoint = host.vars.client_endpoint
 assign where host.vars.client_endpoint
 }

4. Exécutez maintenant le icinga2 commande ci-dessous pour vérifier la configuration Icinga2.

sudo icinga2 daemon -C

Si tout se passe bien, vous verrez une sortie similaire à celle ci-dessous.

5. Enfin, exécutez la commande ci-dessous pour redémarrer le service Icinga2 et appliquer les modifications de configuration.

sudo systemctl restart icinga2

Vérification sur le tableau de bord Icinga2

Vous avez configuré toutes les ressources, mais vous devez encore tester si elles fonctionnent toutes. Vous vérifierez les résultats de votre travail en consultant le tableau de bord Icinga2.

Retournez au tableau de bord Icinga2 et cliquez sur Aperçu —> Hôtes , comme illustré ci-dessous, et vous verrez que le client01 est UP .

Maintenant, cliquez sur Services menu pour voir tous les services surveillés avec la pile de surveillance Icinga2 sur client01.

Conclusion

Ce didacticiel visait à vous aider tout au long du processus de configuration de la pile de surveillance Icinga2 sur le serveur Ubuntu. Vous avez également appris à configurer la surveillance distribuée à l'aide d'un agent Icinga2 pour surveiller une infrastructure étendue.

Maintenant, quelle est la prochaine étape ? Peut-être apprendre à paramétrer Icinga Director pour simplifier votre suivi ?


Linux
  1. Surveillez votre serveur Linux avec Checkmk

  2. Surveillance des hôtes Linux et Windows avec Glances

  3. 3 choses utiles que vous pouvez faire avec l'outil IP sous Linux

  4. Comment surveiller la sécurité du serveur Linux avec Osquery

  5. Surveillance du niveau du microphone avec un outil de ligne de commande sous Linux

Comment surveiller rapidement plusieurs hôtes sous Linux

Comment surveiller vos serveurs Linux avec Checkmk

Comment rechercher des fichiers avec la commande fd sous Linux

Comment installer l'outil de surveillance du système Gtop sous Linux

Comment surveiller vos serveurs Linux avec Checkmk

Comment installer l'outil de surveillance Icinga 2 sur Rocky Linux 8