Comment installer Icinga et Icinga Web sur Ubuntu 16.04

introduction

Icinga est un système de surveillance open source flexible et puissant utilisé pour surveiller la santé des hôtes et des services en réseau. Il pourrait être utilisé pour surveiller la charge et la disponibilité d’un cluster de travailleurs Web, l’espace disque disponible sur un périphérique de stockage, la consommation de mémoire sur un service de mise en cache, etc. Une fois correctement configuré, Icinga peut vous donner un aperçu rapide du statut d’un grand nombre d’hôtes et de services, ainsi que des notifications, de la planification des temps morts et du stockage à long terme des données de performance.

Ce didacticiel couvrira l’installation du noyau Icinga, de son backend de base de données et de l’interface Web de Icinga. Enfin, nous allons configurer la notification par courrier électronique afin que vous puissiez recevoir des alertes dans votre boîte de réception lorsqu’un service fonctionne mal.

Conditions préalables

Avant de commencer ce tutoriel, vous aurez besoin de:

Étape 1 - Installation de Icinga

Pour obtenir la dernière version de Icinga, nous devons d’abord ajouter un référentiel de logiciels géré par l’équipe de Icinga. Nous installerons ensuite le logiciel avec + apt-get + et passerons en revue quelques écrans de configuration pour configurer le backend de la base de données de Icinga.

Tout d’abord, téléchargez la clé de signature du paquetage des développeurs Icinga et ajoutez-la au système + apt +:

curl -sSL https://packages.icinga.com/icinga.key | sudo apt-key add -

Cette clé sera utilisée pour vérifier automatiquement l’intégrité de tout logiciel téléchargé à partir du référentiel Icinga. Nous devons maintenant ajouter l’adresse du référentiel à un fichier de configuration + apt +. Ouvrez le fichier avec votre éditeur de texte préféré. Nous allons utiliser + nano + tout au long de ce tutoriel:

sudo nano /etc/apt/sources.list.d/icinga.list

Cela ouvrira un nouveau fichier texte vierge. Collez dans la ligne suivante:

/etc/apt/sources.list.d/icinga.list

deb https://packages.icinga.com/ubuntu icinga-xenial main

Enregistrez et fermez le fichier, puis actualisez le cache de votre paquet:

sudo apt-get update

+ apt-get + va maintenant télécharger les informations depuis le référentiel que nous venons d’ajouter, rendant les paquets Icinga disponibles pour l’installation:

sudo apt-get install icinga2 icinga2-ido-mysql

Cela installera le logiciel principal Icinga, ainsi qu’un adaptateur de base de données permettant à Icinga de mettre des données historiques et d’autres informations dans une base de données MySQL. Vous verrez quelques écrans de configuration pour l’adaptateur de base de données:

  1. Activer la fonctionnalité ido-mysql de Icinga 2?

  2. Configurer la base de données pour icinga2-ido-mysql avec dbconfig-common?

  3. Vous serez ensuite invité à configurer un mot de passe de base de données Icinga. Créez un mot de passe fort et enregistrez-le pour plus tard. Nous en aurons besoin lors de la configuration de l’interface Web.

Nous devons maintenant activer le backend de la base de données Icinga. La commande + icinga2 + peut activer et désactiver des fonctionnalités sur la ligne de commande. Pendant que nous y sommes, nous activerons également la fonctionnalité * command * qui nous permettra éventuellement d’exécuter des vérifications de santé manuelles à partir de l’interface Web.

sudo icinga2 feature enable ido-mysql command

Maintenant, redémarrez + icinga2 + pour utiliser les nouvelles fonctionnalités:

sudo systemctl restart icinga2

Et enfin, vérifions l’état de + icinga2 + pour s’assurer qu’il fonctionne correctement:

sudo systemctl status icinga2
Output● icinga2.service - Icinga host/service/network monitoring system
  Loaded: loaded (/lib/systemd/system/icinga2.service; enabled; vendor preset: enabled)

 Process: 15354 ExecStartPre=/usr/lib/icinga2/prepare-dirs /usr/lib/icinga2/icinga2 (code=exited, status=0/SUCCESS)
Main PID: 15416 (icinga2)
   Tasks: 11
  Memory: 7.7M
     CPU: 488ms
. . .

Si vous voyez + Actif: actif (en cours d’exécution) +, Icinga est opérationnel. Maintenant que nous avons configuré le système principal de Icinga et la base de données, il est temps de mettre l’interface Web en marche.

Étape 2 - Installation de l’interface Web Icinga

Le noyau d’Icinga est entièrement configurable et utilisable sans interface Web, mais Icinga Web fournit un bon aperçu de la santé de vos hôtes et services, et vous permet de planifier les temps d’arrêt, de reconnaître les problèmes, de déclencher manuellement des contrôles de santé et d’envoyer des notifications. depuis votre navigateur.

Installons Icinga Web avec + apt-get:

sudo apt-get install icingaweb2

Le reste de la configuration d’Icinga Web se fait dans un navigateur Web, mais avant de passer à l’autre, il faut mettre à jour un paramètre. Icinga Web a besoin d’un fuseau horaire pour l’environnement PHP. Modifions donc le fichier de configuration PHP:

sudo nano /etc/php/7.0/apache2/php.ini

Nous devons trouver une ligne spécifique à mettre à jour. Dans + nano +, nous pouvons appuyer sur + CTRL-W + pour afficher une interface de recherche, saisir + date.timezone +, puis appuyer sur + ENTER +. Le curseur se déplacera sur la ligne à mettre à jour. Commencez par décommenter la ligne en supprimant le point-virgule +; + initial, puis tapez votre fuseau horaire correct. + Vous pouvez trouver le format de fuseau horaire correct dans la section fuseau horaire du manuel PHP. Cela devrait ressembler à quelque chose comme ça quand vous avez fini:

/etc/php/7.0/apache2/php.ini

date.timezone =

Enregistrez et fermez le fichier. Redémarrez Apache pour mettre à jour:

sudo systemctl restart apache2

Il est maintenant temps de travailler avec la configuration basée sur un navigateur Web Icinga.

Étape 3 - Configuration de l’interface Web Icinga

Avant de passer à notre navigateur pour le processus de configuration basé sur le Web, nous devons créer un jeton setup. Il s’agit d’une clé générée sur la ligne de commande qui nous autorise à utiliser l’outil de configuration Web. Nous créons cette clé avec la commande + icingacli +:

sudo icingacli setup token create

Un jeton court sera imprimé:

Output

Copiez le jeton dans votre presse-papiers, puis basculez dans votre navigateur et chargez l’adresse Web Icinga. Par défaut, il s’agit du nom de domaine ou de l’adresse IP de votre serveur, suivi de + / icingaweb2 +:

https:///icingaweb2

image: https: //assets.digitalocean.com/articles/icinga-ubuntu-1604/icinga-web-setup.png [Page de configuration Web d’Icing]

Vous serez présenté avec un écran de configuration. Collez le jeton que vous avez copié dans votre presse-papiers et appuyez sur * Suivant * pour lancer le processus. Il existe de nombreuses pages d’options à parcourir. Nous allons les parcourir un à la fois.

Configuration du module

Sur la deuxième page, vous aurez la possibilité d’activer des modules supplémentaires pour l’interface Web. Nous pouvons accepter en toute sécurité la valeur par défaut d’activer uniquement le module * Monitoring *. Cliquer sur Suivant pour continuer.

Etat de l’environnement

La troisième page montre l’état de notre environnement PHP. Vous ne devriez voir aucune case rouge qui indiquerait un problème ou une mauvaise configuration. Vous verrez peut-être des cases jaunes mentionnant l’absence de modules PostgreSQL. Nous pouvons en toute sécurité les ignorer, car nous utilisons MySQL, pas PostgreSQL. Cliquer sur Suivant pour continuer.

Icinga Web Authentification

La quatrième page nous laisse choisir comment nous voulons authentifier les utilisateurs de Icinga Web. Si vous souhaitez intégrer un service LDAP pour l’authentification, c’est à vous de choisir. Nous utiliserons la valeur par défaut, * Database *, pour stocker les utilisateurs dans notre base de données MySQL. Cliquer sur Suivant pour continuer.

Configuration de la base de données utilisateur

La cinquième page nous demande de configurer une base de données pour stocker les données de l’utilisateur. Ceci est distinct de la base de données que nous avons précédemment configurée lors de l’installation en ligne de commande.

La plupart des valeurs par défaut sont correctes, mais nous devons également choisir un nom de base de données et une combinaison utilisateur / mot de passe:

  1. Nom de la ressource:

  2. Type de base de données:

  3. Hôte:

  4. Port:

  5. Nom de la base de données:

  6. Nom d’utilisateur:

  7. Mot de passe:

  8. Jeu de caractères:

  9. Persistant:

  10. Utiliser SSL:

Appuyez sur * Suivant * pour continuer.

Créer une base de données d’utilisateurs

La page suivante indiquera que votre base de données n’existe pas et que vous ne disposez pas des informations d’identification pour la créer. Entrez * root * pour le nom d’utilisateur, saisissez le mot de passe root MySQL et cliquez sur * Suivant * pour créer la base de données et l’utilisateur Icinga Web.

Nommez le fournisseur d’authentification

Nous devons maintenant nommer le serveur d’authentification que nous venons de créer. La valeur par défaut * icingaweb2 * est correcte. Cliquez sur Suivant*.

Créer un compte administrateur

Maintenant que nous avons configuré notre base de données d’utilisateurs, nous pouvons créer notre premier compte administratif Icinga Web. Choisissez un nom d’utilisateur et un mot de passe, puis cliquez sur * Suivant * pour continuer.

Préférences et stockage des journaux

Nous avons ensuite présenté des options sur la manière de stocker les préférences et les journaux de l’utilisateur. Les valeurs par défaut sont correctes et stockent les préférences dans la base de données lors de la connexion à syslog. Appuyez sur * Suivant * pour continuer.

Vérification de la configuration

On nous présente une page pour passer en revue toutes nos configurations. Cliquez sur * Suivant * pour confirmer les détails de la configuration et passer à la configuration du module de surveillance.

Introduction à la configuration de surveillance

Nous commençons maintenant à configurer le module de surveillance proprement dit pour Icinga Web. Cliquez sur * Suivant * pour commencer.

Sélectionnez Monitoring Backend

Tout d’abord, nous sélectionnons notre système de surveillance. Le nom par défaut de * icinga * et le type de * IDO * conviennent bien. Cela indique que Icinga Web récupérera les informations de la base de données * ido-mysql * que nous avons configurée précédemment lors de l’installation d’éléments sur la ligne de commande.

Configurer la base de données de surveillance

Nous devons entrer les détails de connexion pour la base de données * ido-mysql *. Nous avons créé ce mot de passe lors de l’installation.

Cette page contient les mêmes options que l’écran de configuration de la base de données utilisateur:

  1. Nom de la ressource:

  2. Type de base de données:

  3. Hôte:

  4. Port:

  5. Nom de la base de données:

  6. Nom d’utilisateur:

  7. Mot de passe:

  8. Jeu de caractères

  9. Persistant:

  10. Utiliser SSL:

Cliquer sur Suivant pour continuer.

Sélectionnez la méthode de transport de commande

Suivant est un * Command Transport * invite. Cela nous permet de spécifier la manière dont Icinga Web passera les commandes à Icinga lorsque nous exécutons manuellement des vérifications de l’état dans l’interface Web. Le fichier par défaut * Local Command File * est correct et fonctionnera avec la fonction * command * que nous avons activée à l’étape 1. Cliquer sur Suivant pour continuer.

Configurer la sécurité de l’interface de surveillance

Cela vous permet de spécifier les données à masquer dans l’interface Web afin d’empêcher les éventuels spectateurs de voir les mots de passe et autres informations sensibles. Les valeurs par défaut sont correctes. Appuyez sur * Suivant * pour continuer.

Résumé de la configuration du module de surveillance

Une fois encore, nous avons reçu un résumé de notre configuration. Appuyez sur * Terminer * pour terminer la configuration de Icinga Web. Un message * Félicitations! * Sera chargé.

Cliquez sur * Connexion à Icinga Web 2 * et connectez-vous avec votre nom d’utilisateur et votre mot de passe administrateur.

image: https: //assets.digitalocean.com/articles/icinga-ubuntu-1604/icinga-web.png [Interface Web de Icinga]

L’interface principale de Icinga Web va se charger. Explorez un peu et familiarisez-vous avec l’interface. Si votre serveur n’a pas d’espace d’échange défini, vous pouvez voir une boîte rouge * Erreur critique *. Nous pouvons l’ignorer pour le moment, ou vous pouvez * Acknowledge * résoudre le problème en cliquant sur la case rouge, en sélectionnant * Acknowledge * dans la colonne de droite, en remplissant un commentaire, puis en cliquant sur le bouton * Acknowledge problem *.

Maintenant que nous avons fini de configurer Icinga et Icinga Web, configurons les notifications par courrier électronique.

Étape 4 - Configuration du courrier électronique

La surveillance n’est pas très utile si vous ne pouvez pas recevoir d’alerte en cas de problème. La configuration par défaut de Icinga contient des scripts pour envoyer un courrier électronique à un administrateur, mais nous devons configurer le courrier électronique sur notre serveur avant de pouvoir fonctionner. Le moyen le plus simple consiste à utiliser un programme appelé + ssmtp + pour acheminer tout le courrier du serveur via un serveur SMTP standard.

Tout d’abord, installez + ssmtp + et quelques utilitaires de courrier auxiliaire:

sudo apt-get install ssmtp mailutils

Et maintenant, nous éditons le fichier de configuration + ssmtp + avec nos détails SMTP. Ceux-ci doivent être fournis par votre fournisseur d’accès, votre fournisseur de messagerie ou votre service informatique. Vous aurez besoin d’un nom d’utilisateur, d’un mot de passe et de l’adresse de votre serveur SMTP:

sudo nano /etc/ssmtp/ssmtp.conf

Il y aura une configuration existante dans le fichier. Supprimez-le et remplacez-le par cette configuration très basique qui devrait fonctionner avec la plupart des serveurs SMTP:

/etc/ssmtp/ssmtp.conf

mailhub=:465
UseTLS=yes
FromLineOverride=yes
AuthUser=
AuthPass=

Enregistrez et fermez le fichier. Pour tester la connexion, utilisez la commande + mail +:

echo "" | mail -s ""

Vous devriez bientôt voir un email dans votre boîte de réception. Nous devons maintenant mettre à jour quelques paramètres pour que Icinga puisse envoyer des messages.

Étape 5 - Configuration et test des notifications

Pour que les notifications par courrier électronique fonctionnent, mettez à jour l’adresse électronique que Icinga envoie à:

sudo nano /etc/icinga2/conf.d/users.conf

Remplacez la ligne + email + par l’adresse à laquelle vous souhaitez recevoir les notifications à l’adresse:

/etc/icinga2/conf.d/users.conf

. . .
email = ""
. . .

Redémarrez Icinga une dernière fois:

sudo systemctl restart icinga2

L’hôte * icinga-master * est déjà configuré pour envoyer des notifications lorsque des problèmes surviennent. Causons un problème et voyons ce qui se passe. Nous allons utiliser une commande appelée + stress + pour augmenter la charge du système afin de déclencher un avertissement.

Installez + stress:

sudo apt-get install stress

+ stress + peut manipuler la charge, les E / S de disque, la mémoire et d’autres métriques du système. La configuration par défaut de Icinga déclenchera un avertissement lorsque la charge du système est supérieure à cinq. Faisons en sorte que maintenant:

stress --cpu 6

Revenez à l’interface Web de Icinga et vous verrez la métrique * load * augmenter lentement. Après quelques vérifications, il entrera dans un état soft * Warning *. Soft signifie que la vérification doit échouer plusieurs fois avant d’être considérée comme un état «dur», auquel cas des notifications seront envoyées. Cela évite d’envoyer des notifications pour les problèmes passagers qui se résolvent rapidement.

Attendez que l’avertissement atteigne un état critique et envoyez la notification. Vous devriez recevoir un email avec les détails de ce qui ne va pas.

Appuyez sur + CTRL-C + pour quitter la commande + stress +. La charge du système va se rétablir assez rapidement et revenir à * Ok * dans l’interface Web de Icinga. Vous recevrez également un autre courrier électronique vous indiquant que le problème a été résolu.

Conclusion

Dans ce tutoriel, nous avons configuré avec succès Icinga et Icinga Web, y compris la fonction de notification par courrier électronique de Icinga. Actuellement, nous ne surveillons que l’hôte Icinga lui-même. Continuez avec notre prochain tutoriel Comment surveiller les hôtes et les services avec Icinga sur Ubuntu 16.04 où nous allons configurer la surveillance à distance.