One place for hosting & domains

      serveurs

      Comment installer et configurer Zabbix et configurer des serveurs à distance sur Ubuntu 20.04


      L’auteur a choisi le Computer History Museum comme bénéficiaire d’une donation dans le cadre du programme Write for Donations.

      Introduction

      Zabbix est un logiciel de surveillance open-source pour les réseaux et les applications. Il permet de surveiller en temps réel des milliers de métriques collectées à partir de serveurs, de machines virtuelles, de périphériques réseau et d’applications web. Ces métriques peuvent vous aider à déterminer la santé actuelle de votre infrastructure informatique et à détecter les problèmes liés aux composants matériels ou logiciels avant que les clients ne se plaignent. Les informations utiles sont stockées dans une base de données afin que vous puissiez analyser les données au fil du temps et améliorer la qualité des services fournis ou planifier la mise à niveau de votre équipement.

      Zabbix utilise plusieurs options pour rassembler des métriques, notamment la surveillance sans agent des services aux utilisateurs et l’architecture client-serveur. Pour collecter les métriques du serveur, il utilise un petit agent sur le client surveillé pour rassembler les données et les envoyer au serveur Zabbix. Zabbix prend en charge la communication cryptée entre le serveur et les clients connectés, de sorte que vos données sont protégées lorsqu’elles circulent sur des réseaux non sécurisés.

      Le serveur Zabbix stocke ses données dans une base de données relationnelle alimentée par MySQL ou PostgreSQL. Vous pouvez également stocker des données historiques dans des bases de données NoSQL comme Elasticsearch et TimescaleDB. Zabbix fournit une interface web qui vous permet de visualiser les données et de configurer les paramètres du système.

      Dans ce tutoriel, vous allez configurer Zabbix sur deux machines Ubuntu 20.04. L’un sera configuré comme le serveur Zabbix, et l’autre comme un client que vous surveillerez. Le serveur Zabbix utilisera une base de données MySQL pour enregistrer les données de surveillance et utilisera Nginx pour servir l’interface web.

      Conditions préalables

      Pour suivre ce tutoriel, vous aurez besoin de :

      • Deux serveurs Ubuntu 20.04 configurés en suivant le Guide de configuration initiale du serveur pour Ubuntu 20.04, comprenant un non root user avec des privilèges sudo et un pare-feu configuré avec ufw. Sur un serveur, vous installerez Zabbix ; ce tutoriel fera référence à ce dernier comme étant le serveur Zabbix. Il surveillera votre second serveur ; ce second serveur sera appelé le second serveur Ubuntu.

      • Le serveur qui fera fonctionner le serveur Zabbix nécessite l’installation de Nginx, MySQL et PHP. Suivez les étapes 1 à 3 de notre guide LAMP Stack Ubuntu 20.04 pour les configurer sur votre serveur Zabbix.

      • Un nom de domaine enregistré. Tout au long de ce tutoriel, nous utiliserons your_domain. Vous pouvez acheter un nom de domaine sur Namecheap, en obtenir un gratuitement avec Freenom, ou utiliser le bureau d’enregistrement de domaine de votre choix.

      • Les deux enregistrements DNS suivants ont été configurés pour votre serveur Zabbix. Si vous utilisez DigitalOcean, veuillez consulter notre documentation DNS pour plus de détails sur la façon de les ajouter.

        • Un enregistrement A avec your_domain pointant sur l’adresse IP publique de votre serveur Zabbix.
        • Un enregistrement A avec www.your_domain​​​​​​ pointant sur l’adresse IP publique de votre serveur Zabbix.

      En outre, comme le serveur Zabbix est utilisé pour accéder à des informations précieuses sur votre infrastructure auxquelles vous ne voudriez pas que des utilisateurs non autorisés accèdent, il est important que vous gardiez votre serveur sécurisé en installant un certificat TLS/SSL. Ceci est facultatif mais fortement encouragé. Si vous souhaitez sécuriser votre serveur, suivez les instructions du guide Let’s Encrypt sur Ubuntu 20.04 après l’étape 3 de ce tutoriel.

      Étape 1 – Installer le serveur Zabbix

      Tout d’abord, vous devez installer Zabbix sur le serveur sur lequel vous avez installé MySQL, Nginx et PHP. Connectez-vous à cette machine en tant que non-root user :

      • ssh sammy@zabbix_server_ip_address

      Zabbix est disponible dans le gestionnaire de packages d’Ubuntu, mais il est dépassé. Utilisez donc le dépôt officiel de Zabbix pour installer la dernière version stable. Téléchargez et installez le paquet de configuration du dépôt :

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Vous verrez le résultat suivant :

      Output

      Selecting previously unselected package zabbix-release. (Reading database ... 64058 files and directories currently installed.) Preparing to unpack zabbix-release_5.0-1+focal_all.deb ... Unpacking zabbix-release (1:5.0-1+focal) ... Setting up zabbix-release (1:5.0-1+focal) ...

      Mettez à jour l’index des packages afin que le nouveau dépôt soit inclus :

      Ensuite, installez le serveur Zabbix et le frontend web avec le support de la base de données MySQL :

      • sudo apt install zabbix-server-mysql zabbix-frontend-php

      Installez également l’agent Zabbix, qui vous permettra de recueillir des données sur l’état du serveur Zabbix lui-même.

      • sudo apt install zabbix-agent

      Avant de pouvoir utiliser Zabbix, vous devez créer une base de données contenant les données que le serveur Zabbix collectera auprès de ses agents. Vous pouvez le faire lors de la prochaine étape.

      Étape 2 – Configurer la base de données MySQL pour Zabbix

      Vous devez créer une nouvelle base de données MySQL et la remplir avec quelques informations de base afin de la rendre compatible avec Zabbix. Vous créerez également un utilisateur spécifique pour cette base de données afin que Zabbix ne se connecte pas à MySQL avec le compte root.

      Connectez-vous à MySQL en tant que root user :

      Créez la base de données Zabbix avec le support des caractères UTF-8 :

      • create database zabbix character set utf8 collate utf8_bin;

      Créez ensuite un utilisateur que le serveur Zabbix utilisera, donnez-lui accès à la nouvelle base de données et définissez le mot de passe de l’utilisateur :

      • create user zabbix@localhost identified by 'your_zabbix_mysql_password';
      • grant all privileges on zabbix.* to zabbix@localhost;

      Cela prend soin de l’utilisateur et de la base de données. Sortez de la console de la base de données.

      Ensuite, vous devez importer le schéma et les données initiales. L’installation de Zabbix vous a fourni un fichier qui permet de configurer cela.

      Exécutez la commande suivante pour configurer le schéma et importer les données dans la base de données zabbix. Utilisez zcat car les données dans le fichier sont compressées :

      • zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

      Entrez le mot de passe pour l’utilisateur MySQL zabbix que vous avez configuré lorsque vous y avez été invité.

      L’exécution de cette commande peut prendre une minute ou deux. Si vous voyez l’erreur ERROR 1045 (28000): Access denied for userzabbix@ 'localhost' (using password: YES) alors assurez-vous que vous avez utilisé le bon mot de passe pour l’utilisateur zabbix.

      Pour que le serveur Zabbix puisse utiliser cette base de données, vous devez définir le mot de passe de la base de données dans le fichier de configuration du serveur Zabbix. Ouvrez le fichier de configuration dans votre éditeur de texte préféré. Ce tutoriel utilisera nano :

      • sudo nano /etc/zabbix/zabbix_server.conf

      Cherchez la section suivante du dossier :

      /etc/zabbix/zabbix_server.conf

      ...
      ### Option: DBPassword                           
      #       Database password. Ignored for SQLite.   
      #       Comment this line if no password is used.
      #                                                
      # Mandatory: no                                  
      # Default:                                       
      # DBPassword=
      ...
      

      Ces commentaires dans le dossier expliquent comment se connecter à la base de données. Vous devez définir la valeur du DBPassword dans le fichier au mot de passe de l’utilisateur de votre base de données.   Ajoutez cette ligne après ces commentaires pour configurer la base de données :

      /etc/zabbix/zabbix_server.conf

      ...
      DBPassword=your_zabbix_mysql_password
      ...
      

      Enregistrez et fermez zabbix_server.conf en appuyant sur CTRL+X, puis sur Y et enfin sur ENTER si vous utilisez nano.

      Vous avez maintenant configuré le serveur Zabbix pour vous connecter à la base de données. Ensuite, vous configurerez le serveur web Nginx pour servir le frontend Zabbix.

      Étape 3 – Configurer Nginx pour Zabbix

      Pour configurer Nginx automatiquement, installez le paquet de configuration automatique :

      • sudo apt install zabbix-nginx-conf

      Vous obtiendrez ainsi le fichier de configuration/etc/zabbix/nginx.conf, ainsi qu’un lien vers celui-ci dans le répertoire de configuration de Nginx /etc/nginx/conf.d/zabbix.conf.

      Ensuite, vous devez apporter des modifications à ce dossier. Ouvrez le fichier de configuration :

      • sudo nano /etc/zabbix/nginx.conf

      Le fichier contient une configuration de bloc serveur Nginx générée automatiquement. Il contient deux lignes qui déterminent le nom du serveur et le port sur lequel il écoute :

      /etc/zabbix/nginx.conf

      server {
      #        listen          80;
      #        server_name     example.com;
      ...
      

      Décommentez les deux lignes, et remplacez example.com par votre nom de domaine. Vos paramètres ressembleront à ceci :

      /etc/zabbix/nginx.conf

      server {
              listen          80;
              server_name     your_domain;
      ...
      

      Enregistrez et fermez le fichier. Ensuite, procédez à un test pour vous assurer qu’il n’y a aucune erreur de syntaxe dans aucun de vos fichiers Nginx et relancez la configuration :

      • sudo nginx -t
      • sudo nginx -s reload

      Maintenant que Nginx est configuré pour servir le frontend de Zabbix, vous allez apporter quelques modifications à votre configuration PHP afin que l’interface web de Zabbix fonctionne correctement.

      Note : Comme mentionné dans la section « Prérequis », il est recommandé d’activer SSL/TLS sur votre serveur. Si vous souhaitez le faire, suivez notre tutoriel Ubuntu 20.04 Let’s Encrypt avant de passer à l’étape 4 afin d’obtenir un certificat SSL gratuit pour Nginx. Ce processus détectera automatiquement le blocage de votre serveur Zabbix et le configurera pour le HTTPS. Après avoir obtenu vos certificats SSL/TLS, vous pouvez revenir et compléter ce tutoriel.

      Étape 4 – Configurer PHP pour Zabbix

      L’interface web de Zabbix est écrite en PHP et nécessite quelques réglages spéciaux du serveur PHP. Le processus d’installation de Zabbix a créé un fichier de configuration PHP-FPM qui contient ces paramètres. Il se trouve dans le répertoire /etc/zabbix et est chargé automatiquement par PHP-FPM. Vous devez apporter une petite modification à ce dossier, alors ouvrez-le avec ce qui suit :

      • sudo nano /etc/zabbix/php-fpm.conf

      Le fichier contient les paramètres PHP qui répondent aux exigences nécessaires pour l’interface web Zabbix. Toutefois, le réglage du fuseau horaire est commenté par défaut. Pour être sûr que Zabbix utilise la bonne heure, vous devez définir le fuseau horaire approprié :

      /etc/zabbix/php-fpm.conf

      ...
      php_value[max_execution_time] = 300
      php_value[memory_limit] = 128M
      php_value[post_max_size] = 16M
      php_value[upload_max_filesize] = 2M
      php_value[max_input_time] = 300
      php_value[max_input_vars] = 10000
      ; php_value[date.timezone] = Europe/Riga
      

      Décommentez la ligne de fuseau horaire mise en évidence dans le bloc de code précédent et changez-la pour votre fuseau horaire. Vous pouvez utiliser cette liste de fuseaux horaires pris en charge pour trouver celui qui vous correspond. Maintenant, enregistrez et fermez le fichier.

      Redémarrez PHP-FPM pour appliquer ces nouveaux paramètres :

      • sudo systemctl restart php7.4-fpm.service

      Vous pouvez maintenant démarrer le serveur Zabbix :

      • sudo systemctl start zabbix-server

      Ensuite, vérifiez si le serveur Zabbix fonctionne correctement :

      • sudo systemctl status zabbix-server

      Vous verrez le résultat suivant :

      Output

      ● zabbix-server.service - Zabbix Server Loaded: loaded (/lib/systemd/system/zabbix-server.service; disabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 05:59:32 UTC; 36s ago Process: 27026 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) ...

      Enfin, permettez au serveur de démarrer au moment du démarrage :

      • sudo systemctl enable zabbix-server

      Le serveur est configuré et connecté à la base de données. Ensuite, mettez en place le frontend web.

      Étape 5 – Configurer les paramètres de l’interface web Zabbix

      L’interface web vous permet de voir les rapports et d’ajouter des hôtes que vous souhaitez surveiller, mais elle nécessite une configuration initiale avant de pouvoir être utilisée. Lancez votre navigateur et allez à l’adresse http://zabbix_server_name ou https://zabbix_server_name si vous avez configuré Let’s Encrypt. Sur le premier écran, vous verrez un message de bienvenue. Cliquez sur Next step pour continuer.

      Sur l’écran suivant, vous verrez le tableau qui énumère toutes les conditions préalables à l’exécution de Zabbix.

      Conditions préalables

      Toutes les valeurs de ce tableau doivent être correctes, vérifiez donc qu’elles le sont. N’oubliez pas de faire défiler vers le bas et d’examiner toutes les conditions préalables. Une fois que vous avez vérifié que tout est prêt, cliquez sur Next step pour continuer.

      L’écran suivant demande des informations sur la connexion à la base de données.

      Connexion à la BD

      Vous avez parlé de votre base de données au serveur Zabbix, mais l’interface web Zabbix a également besoin d’un accès à la base de données pour gérer les hôtes et lire les données. Saisissez donc les identifiants MySQL que vous avez configurés à l’étape 2. Cliquez sur Next step pour continuer.

      Sur l’écran suivant, vous pouvez laisser les options à leurs valeurs par défaut.

      Détails du serveur Zabbix

      Le Name est facultatif ; il est utilisé dans l’interface web pour distinguer un serveur d’un autre dans le cas où vous avez plusieurs serveurs de surveillance. Cliquez sur Next step pour continuer.

      L’écran suivant affichera le résumé de pré-installation afin que vous puissiez confirmer que tout est correct.

      Résumé

      Cliquez sur Next step pour passer à l’écran final.

      La configuration de l’interface web est maintenant terminée. Ce processus crée le fichier de configuration /usr/share/zabbix/conf/zabbix.conf.php, que vous pouvez sauvegarder et utiliser à l’avenir. Cliquez sur Finish pour passer à l’écran de connexion.   L’utilisateur par défaut est Admin et le mot de passe est zabbix.

      Avant de vous connecter, installez l’agent Zabbix sur votre deuxième serveur Ubuntu.

      Étape 6 – Installer et configurer l’agent Zabbix

      Vous devez maintenant configurer le logiciel d’agent qui enverra les données de surveillance au serveur Zabbix.

      Connectez-vous au deuxième serveur Ubuntu :

      • ssh sammy@second_ubuntu_server_ip_address

      Tout comme sur le serveur Zabbix, exécutez les commandes suivantes pour installer le package de configuration du dépôt :

      • wget https://repo.zabbix.com/zabbix/5.0/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.0-1+focal_all.deb
      • sudo dpkg -i zabbix-release_5.0-1+focal_all.deb

      Ensuite, mettez à jour l’index des packages :

      Installez ensuite l’agent Zabbix :

      • sudo apt install zabbix-agent

      Bien que Zabbix supporte le cryptage par certificat, la mise en place d’une autorité de certification dépasse le cadre de ce tutoriel. Mais vous pouvez utiliser des clés pré-partagées (PSK) pour sécuriser la connexion entre le serveur et l’agent.

      D’abord, générez une PSK :

      • sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"

      Montrez la clé en utilisant le chat pour que vous puissiez la copier quelque part :

      • cat /etc/zabbix/zabbix_agentd.psk

      La clé ressemblera à quelque chose comme ça :

      Output

      75ad6cb5e17d244ac8c00c96a1b074d0550b8e7b15d0ab3cde60cd79af280fca

      Gardez-la pour plus tard ; vous en aurez besoin pour configurer l’hôte.

      Maintenant, modifiez les paramètres de l’agent Zabbix pour établir sa connexion sécurisée au serveur Zabbix. Ouvrez le fichier de configuration de l’agent dans votre éditeur de texte :

      • sudo nano /etc/zabbix/zabbix_agentd.conf

      Chaque paramètre de ce dossier est documenté par des commentaires informatifs tout au long du dossier, mais vous ne devez modifier que certains d’entre eux.

      Vous devez d’abord modifier l’adresse IP du serveur Zabbix. Trouvez la section suivante :

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: Server
      #       List of comma delimited IP addresses, optionally in CIDR notation, or DNS names of Zabbix servers and Zabbix proxies.
      #       Incoming connections will be accepted only from the hosts listed here.
      #       If IPv6 support is enabled then '127.0.0.1', '::127.0.0.1', '::ffff:127.0.0.1' are treated equally
      #       and '::/0' will allow any IPv4 or IPv6 address.
      #       '0.0.0.0/0' can be used to allow any IPv4 address.
      #       Example: Server=127.0.0.1,192.168.1.0/24,::1,2001:db8::/32,zabbix.example.com
      #
      # Mandatory: yes, if StartAgents is not explicitly set to 0
      # Default:
      # Server=
      
      Server=127.0.0.1
      ...
      

      Changez la valeur par défaut pour l’IP de votre serveur Zabbix :

      /etc/zabbix/zabbix_agentd.conf

      ...
      Server=zabbix_server_ip_address
      ...
      

      Par défaut, le serveur Zabbix se connecte à l’agent. Mais pour certains contrôles (par exemple, la surveillance des journaux), une connexion inverse est nécessaire. Pour un fonctionnement correct, vous devez spécifier l’adresse du serveur Zabbix et un nom d’hôte unique.

      Trouvez la section qui configure les contrôles actifs et modifiez les valeurs par défaut :

      /etc/zabbix/zabbix_agentd.conf

      ...
      ##### Active checks related
      
      ### Option: ServerActive
      #       List of comma delimited IP:port (or DNS name:port) pairs of Zabbix servers and Zabbix proxies for active checks.
      #       If port is not specified, default port is used.
      #       IPv6 addresses must be enclosed in square brackets if port for that host is specified.
      #       If port is not specified, square brackets for IPv6 addresses are optional.
      #       If this parameter is not specified, active checks are disabled.
      #       Example: ServerActive=127.0.0.1:20051,zabbix.domain,[::1]:30051,::1,[12fc::1]
      #
      # Mandatory: no
      # Default:
      # ServerActive=
      
      ServerActive=zabbix_server_ip_address
      
      ### Option: Hostname
      #       Unique, case sensitive hostname.
      #       Required for active checks and must match hostname as configured on the server.
      #       Value is acquired from HostnameItem if undefined.
      #
      # Mandatory: no
      # Default:
      # Hostname=
      
      Hostname=Second Ubuntu Server
      ...
      

      Ensuite, trouvez la section qui configure la connexion sécurisée au serveur Zabbix et activez le support des clés pré-partagées. Trouvez la section TLSConnect, qui ressemble à ceci :

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSConnect
      #       How the agent should connect to server or proxy. Used for active checks.
      #       Only one value can be specified:
      #               unencrypted - connect without encryption
      #               psk         - connect using TLS and a pre-shared key
      #               cert        - connect using TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSConnect=unencrypted
      ...
      

      Ajoutez ensuite cette ligne pour configurer le support des clés pré-partagées :

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSConnect=psk
      ...
      

      Ensuite, localisez la section TLSAccept, qui ressemble à ceci :

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSAccept
      #       What incoming connections to accept.
      #       Multiple values can be specified, separated by comma:
      #               unencrypted - accept connections without encryption
      #               psk         - accept connections secured with TLS and a pre-shared key
      #               cert        - accept connections secured with TLS and a certificate
      #
      # Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
      # Default:
      # TLSAccept=unencrypted
      ...
      

      Configurez les connexions entrantes pour prendre en charge les clés pré-partagées en ajoutant cette ligne :

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSAccept=psk
      ...
      

      Ensuite, trouvez la section TLSPSKIdentity, qui ressemble à ceci :

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKIdentity
      #       Unique, case sensitive string used to identify the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKIdentity=
      ...
      

      Choisissez un nom unique pour identifier votre clé pré-partagée en ajoutant cette ligne :

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKIdentity=PSK 001
      ...
      

      Vous l’utiliserez comme identifiant PSK lorsque vous ajouterez votre hôte via l’interface web Zabbix.

      Définissez ensuite l’option qui pointe vers votre clé pré-partagée créée précédemment. Repérez l’option TLSPSKFile :

      /etc/zabbix/zabbix_agentd.conf

      ...
      ### Option: TLSPSKFile
      #       Full pathname of a file containing the pre-shared key.
      #
      # Mandatory: no
      # Default:
      # TLSPSKFile=
      ...
      

      Ajoutez cette ligne pour pointer l’agent Zabbix vers votre fichier PSK que vous avez créé :

      /etc/zabbix/zabbix_agentd.conf

      ...
      TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
      ...
      

      Enregistrez et fermez le fichier. Vous pouvez maintenant redémarrer l’agent Zabbix et le configurer pour qu’il démarre au moment du démarrage :

      • sudo systemctl restart zabbix-agent
      • sudo systemctl enable zabbix-agent

      Pour faire bonne mesure, vérifiez que l’agent Zabbix fonctionne correctement :

      • sudo systemctl status zabbix-agent

      Vous verrez le statut suivant, indiquant que l’agent est en cours d’exécution :

      Output

      ● zabbix-agent.service - Zabbix Agent Loaded: loaded (/lib/systemd/system/zabbix-agent.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2020-06-12 08:19:54 UTC; 25s ago ...

      L’agent écoutera au port 10050 pour les connexions à partir du serveur. Configurez l’UFW pour permettre les connexions à ce port :

      Pour en savoir plus sur UFW, consultez le tutoriel Comment configurer un pare-feu avec UFW sur Ubuntu 20.04.

      Votre agent est maintenant prêt à envoyer des données au serveur Zabbix. Mais pour l’utiliser, vous devez y accéder à partir de la console web du serveur. Dans l’étape suivante, vous allez compléter la configuration.

      Étape 7 – Ajouter le nouvel hôte au serveur Zabbix

      L’installation d’un agent sur un serveur que vous souhaitez surveiller ne représente que la moitié du processus. Chaque hôte que vous souhaitez surveiller doit être enregistré sur le serveur Zabbix, ce que vous pouvez faire via l’interface web.

      Connectez-vous à l’interface web du serveur Zabbix en naviguant à l’adresse http://zabbix_server_name ou https://zabbix_server_name :

      L'écran de connexion Zabbix

      Lorsque vous vous êtes connecté, cliquez sur Configuration et ensuite sur Hosts dans la barre de navigation de gauche. Cliquez ensuite sur le bouton Create host dans le coin supérieur droit de l’écran. Cela ouvrira la page de configuration de l’hôte.

      Créer un hôte

      Ajustez le Host name et l’adresse IP pour refléter le nom d’hôte et l’adresse IP de votre second serveur Ubuntu, puis ajoutez l’hôte à un groupe. Vous pouvez sélectionner un groupe existant, par exemple des serveurs Linux ou créer votre propre groupe. L’hôte peut faire partie de plusieurs groupes. Pour ce faire, entrez le nom d’un groupe existant ou nouveau dans le champ de saisie Groups et sélectionnez la valeur souhaitée dans la liste proposée.

      Avant d’ajouter le groupe, cliquez sur l’onglet Templates.

      Ajout d'un modèle à l'hôte

      Tapez Template OS Linux by Zabbix agent dans le champ Search, puis sélectionnez-le dans la liste pour ajouter ce modèle à l’hôte.

      Ensuite, naviguez jusqu’à l’onglet Encryption. Sélectionnez PSK pour les connexions vers l’hôte et les connexions depuis l’hôte. Définissez ensuite l’identité PSK à PSK 001, qui est la valeur de la TLSPSKIdentity de l’agent Zabbix que vous avez configuré précédemment. Définissez ensuite la valeur PSK à la clé que vous avez générée pour l’agent Zabbix. C’est celle qui est stockée dans le fichier /etc/zabbix/zabbix_agentd.psk sur la machine de l’agent. 

      Configurer le cryptage

      Enfin, cliquez sur le bouton Add au bas du formulaire pour créer l’hôte.

      Vous verrez votre nouvel hôte dans la liste. Attendez une minute et rechargez la page pour voir les étiquettes vertes indiquant que tout fonctionne bien et que la connexion est cryptée.

      Zabbix montre votre nouvel hôte

      Si vous avez des serveurs supplémentaires à surveiller, connectez-vous à chaque hôte, installez l’agent Zabbix, générez un PSK, configurez l’agent et ajoutez l’hôte à l’interface web en suivant les mêmes étapes que celles que vous avez suivies pour ajouter votre premier hôte.

      Le serveur Zabbix surveille maintenant votre deuxième serveur Ubuntu. Maintenant, configurez des notifications par courrier électronique pour être informé des problèmes.

      Étape 8 – Configurer les notifications par courrier électronique

      Zabbix supporte automatiquement plusieurs types de notifications : courriel, OTRS, Slack, Télégramme, SMS, etc. Vous pouvez voir la liste complète des intégrations sur le site de Zabbix. 

      À titre d’exemple, ce tutoriel permettra de configurer les notifications pour le Type de support de courrier électronique.

      Cliquez sur Administration, puis sur Media types dans la barre de navigation de gauche. Vous verrez la liste de tous les types de médias. Il existe deux options préconfigurées pour les courriels : pour la notification en texte clair et pour les notifications en HTML. Dans ce tutoriel, vous utiliserez la notification en texte clair. Cliquez sur Email. 

      Ajustez les options SMTP en fonction des paramètres fournis par votre service de courrier électronique. Ce tutoriel utilise les capacités SMTP de Gmail pour configurer les notifications par e-mail. Si vous souhaitez obtenir plus d’informations sur la configuration, voir Comment utiliser le serveur SMTP de Google. 

      Note : Si vous utilisez la vérification en 2 étapes avec Gmail, vous devez générer un mot de passe d’application pour Zabbix. Vous n’aurez à saisir un mot de passe d’application qu’une seule fois lors de l’installation. Vous trouverez des instructions sur la manière de générer ce mot de passe dans le Centre d’aide Google.

      Si vous utilisez Gmail, tapez smtp.gmail.com pour le champ du serveur SMTP, 465 pour le champ du port du serveur SMTP, gmail.com pour SMTP helo, et votre courriel pour le SMTP email. Choisissez ensuite SSL/TLS pour la Connection security et Username and password pour Authentification. Entrez votre adresse Gmail comme Username et le mot de passe de l’application que vous avez généré à partir de votre compte Google comme mot de passe.

      Mise en place du type de support de courrier électronique

      Sous l’onglet Message templates, vous pouvez voir la liste des messages prédéfinis pour les différents types de notifications. Enfin, cliquez sur le bouton Update au bas du formulaire pour mettre à jour les paramètres du courrier électronique.

      Vous pouvez maintenant tester l’envoi de notifications. Pour ce faire, cliquez sur le lien Test souligné dans la ligne correspondante.

      Vous verrez une fenêtre pop-up. Saisissez votre adresse électronique dans le champ de saisie Send to et cliquez sur le bouton Test . Vous verrez un message sur l’envoi réussi et vous recevrez un message test.

      Tester le courrier électronique

      Fermez la fenêtre pop-up en cliquant sur le bouton Cancel.

      Maintenant, créez un nouvel utilisateur. Cliquez sur Administration et ensuite sur Users dans la barre de navigation de gauche. Vous verrez la liste des utilisateurs. Cliquez ensuite sur le bouton Create user dans le coin supérieur droit de l’écran. Cela ouvrira la page de configuration de l’utilisateur :

      Créer un utilisateur

      Entrez le nouveau nom d’utilisateur dans le champ de saisie Alias et créez un nouveau mot de passe. Ensuite, ajoutez l’utilisateur au groupe de l’administrateur. Tapez Zabbix administrators dans le champ Groups et sélectionnez-le dans la liste proposée.

      Une fois que vous avez ajouté le groupe, cliquez sur l’onglet Media et cliquez sur le lien souligné Add (et non le bouton Add en dessous). Vous verrez une fenêtre pop-up.

      Ajouter un courriel

      Sélectionnez l’option Email du menu déroulant Type. Saisissez votre adresse électronique dans le champ Send to. Vous pouvez laisser les autres options aux valeurs par défaut. Cliquez sur le bouton Add en bas pour soumettre. 

      Naviguez maintenant vers l’onglet Permissions. Sélectionnez Zabbix Super Admin dans le menu déroulant User type. 

      Enfin, cliquez sur le bouton Add au bas du formulaire pour créer l’utilisateur.

      Note : Utiliser le mot de passe par défaut n’est pas sûr. Afin de modifier le mot de passe de l’utilisateur intégré Admin, cliquez sur l’alias dans la liste des utilisateurs. Cliquez ensuite sur Change password, entrez un nouveau mot de passe et confirmez les changements en cliquant sur le bouton Update.

      Vous devez maintenant activer les notifications. Cliquez sur l’onglet Configuration, puis sur Actions dans la barre de navigation de gauche.  Vous verrez une action pré-configurée, qui est responsable de l’envoi des notifications à tous les administrateurs de Zabbix. Vous pouvez revoir et modifier les paramètres en cliquant sur son nom. Pour les besoins de ce tutoriel, utilisez les paramètres par défaut. Pour activer l’action, cliquez sur le lien en rouge Disabled dans la colonne Status.

      Vous êtes maintenant prêt à recevoir des alertes. Dans l’étape suivante, vous en générerez un pour tester votre configuration de notification.

      Étape 9 – Génération d’une alerte de test

      Au cours de cette étape, vous générerez une alerte de test pour vous assurer que tout est connecté. Par défaut, Zabbix garde une trace de l’espace disque disponible sur votre serveur. Il détecte automatiquement tous les supports de disque et ajoute les contrôles correspondants. Cette découverte est exécutée toutes les heures, vous devez donc attendre un certain temps pour que la notification soit déclenchée.

      Créez un fichier temporaire suffisamment important pour déclencher l’alerte d’utilisation du système de fichiers de Zabbix. Pour ce faire, connectez-vous à votre deuxième serveur Ubuntu si vous n’êtes pas déjà connecté :

      • ssh sammy@second_ubuntu_server_ip_address

      Ensuite, déterminez l’espace libre dont vous disposez sur le serveur. Vous pouvez utiliser la commande df pour le savoir :

      La commande df indiquera l’utilisation de l’espace disque de votre système de fichiers, et le -h rendra la sortie lisible à l’oeil humain. Vous verrez une sortie comme celle-ci :

      Output

      Filesystem Size Used Avail Use% Mounted on /dev/vda1 78G 1.4G 77G 2% /

      Dans ce cas, l’espace libre est de 77G. Votre espace libre peut être différent.

      Utilisez la commande fallocate, qui vous permet de pré-allouer ou de désallouer de l’espace à un fichier, pour créer un fichier qui occupe plus de 80 % de l’espace disque disponible. Cela sera suffisant pour déclencher l’alerte :

      • fallocate -l 70G /tmp/temp.img

      Après environ une heure, Zabbix déclenchera une alerte concernant la quantité d’espace disque disponible et exécutera l’action que vous avez configurée, en envoyant le message de notification. Vous pouvez vérifier dans votre boîte de réception si le message provient du serveur Zabbix. Vous verrez un message du type :

      Problem started at 09:49:08 on 2020.06.12
      Problem name: /: Disk space is low (used > 80%)
      Host: Second Ubuntu Server
      Severity: Warning
      Operational data: Space used: 71.34 GB of 77.36 GB (92.23 %)
      Original problem ID: 106
      

      Vous pouvez également accéder à l’onglet monitoring et ensuite au Dashboard pour voir la notification et ses détails. 

      Tableau de bord principal

      Maintenant que vous savez que les alertes fonctionnent, supprimez le fichier temporaire que vous avez créé afin de récupérer votre espace disque :

      Au bout d’une minute, Zabbix enverra le message de récupération et l’alerte disparaîtra du tableau de bord principal.

      Conclusion

      Dans ce tutoriel, vous avez appris à mettre en place une solution de surveillance simple et sécurisée qui vous aidera à surveiller l’état de vos serveurs. Il peut désormais vous avertir des problèmes, et vous avez la possibilité d’analyser les processus qui se produisent dans votre infrastructure informatique.

      Pour en savoir plus sur la mise en place d’une infrastructure de surveillance, consultez notre page thématique sur la surveillance.



      Source link

      Comment surveiller la santé des serveurs avec Checkmk sur Ubuntu 18.04


      L’auteur a choisi le Open Internet/Free Speech Fund pour recevoir un don dans le cadre du programme Write for Donations.

      Introduction

      En tant qu’administrateur de systèmes, il est préférable de connaître l’état de votre infrastructure et vos services. Idéalement, vous voulez remarquer les disques défaillants ou les temps d’arrêt des applications avant que vos utilisateurs ne le fassent. Des outils de surveillance comme Checkmk peuvent aider les administrateurs à détecter ces problèmes et à maintenir les serveurs en bon état.

      En général, les logiciels de surveillance peuvent suivre l’état du matériel, du temps de fonctionnement et des services de vos serveurs, et ils peuvent émettre des alertes en cas de problème. Dans un scénario très simple, un système de surveillance vous avertira si un service tombe en panne. Dans un scénario plus complexe, les notifications interviendraient peu après l’apparition de signes suspects, tels qu’une utilisation accrue de la mémoire ou un nombre anormal de connexions TCP.

      Il existe de nombreuses solutions de surveillance offrant divers degrés de complexité et de fonctionnalités, tant gratuites que commerciales. Dans de nombreux cas, l’installation, la configuration et la gestion de ces outils sont difficiles et prennent beaucoup de temps.

      Checkmk, cependant, est une solution de surveillance qui est à la fois robuste et plus simple à installer. Il s’agit d’un ensemble de logiciels autonomes qui combine Nagios (un service d’alerte populaire et open source) avec des modules complémentaires de collecte, de surveillance et de représentation graphique des données. Il est également fourni avec l’interface web de Checkmk – un outil complet qui répond à de nombreuses lacunes de Nagios.  Il offre un tableau de bord convivial, un système de notification complet et un référentiel d’agents de surveillance faciles à installer pour de nombreuses distributions Linux. Sans l’interface web de Checkmk, nous devrions utiliser différentes vues pour différentes tâches et il ne serait pas possible de configurer toutes ces fonctionnalités sans avoir recours à des modifications importantes des fichiers.

      Dans ce guide, nous allons configurer Checkmk sur un serveur Ubuntu 18.04 et nous allons surveiller deux hôtes distincts. Nous surveillerons le serveur Ubuntu lui-même ainsi qu’un serveur CentOS 7 séparé, mais nous pourrions utiliser la même approche pour ajouter un nombre quelconque d’hôtes supplémentaires à notre configuration de surveillance.

      Conditions préalables

      Étape 1 – Installer Checkmk sur Ubuntu

      Pour pouvoir utiliser notre site de surveillance, nous devons d’abord installer Checkmk sur le serveur Ubuntu. Cela nous donnera tous les outils dont nous avons besoin. Checkmk fournit des fichiers officiels de paquets Ubuntu, prêts à l’emploi que nous pouvons utiliser pour installer le paquet de logiciels.

      Tout d’abord, mettons à jour la liste des paquets afin d’avoir la version la plus récente des listes du référentiel :

      Pour parcourir les paquets, nous pouvons aller sur le site de la liste des paquets. Ubuntu 18.04, entre autres, peut être choisi dans le menu de la page.

      Maintenant, téléchargez le paquet :

      • wget https://checkmk.com/support/1.6.0p8/check-mk-raw-1.6.0p8_0.bionic_amd64.deb

      Ensuite, installez le paquet nouvellement téléchargé :

      • sudo apt install -y ./check-mk-raw-1.6.0p8_0.bionic_amd64.deb

      Cette commande installera le paquet Checkmk ainsi que toutes les dépendances nécessaires, y compris le serveur web Apache qui est utilisé pour fournir un accès web à l’interface de surveillance.

      Une fois l’installation terminée, nous pouvons maintenant accéder à la commande omd. Essayez-la :

      Cette commande omd donnera la sortie suivante :

      Output

      Usage (called as root): omd help Show general help . . . General Options: -V <version> set specific version, useful in combination with update/create omd COMMAND -h, --help show available options of COMMAND

      La commande omd peut gérer toutes les instances de Checkmk sur notre serveur. Elle peut démarrer et arrêter tous les services de surveillance en même temps, et nous l’utiliserons pour créer notre instance Checkmk. Cependant, nous devons d’abord mettre à jour les paramètres de notre pare-feu afin d’autoriser l’accès extérieur aux ports web par défaut.

      Étape 2 – Ajuster les paramètres du pare-feu

      Avant de pouvoir travailler avec Checkmk, il est nécessaire d’autoriser un accès extérieur au serveur web dans la configuration du pare-feu. En supposant que vous avez suivi les étapes de configuration du pare-feu citées dans les conditions préalables, vous disposerez d’un pare-feu UFW configuré pour restreindre l’accès à votre serveur.

      Au cours de l’installation, Apache s’enregistre lui-même auprès d’UFW afin de fournir un moyen facile d’activer ou de désactiver l’accès à Apache par le biais du pare-feu.

      Pour autoriser l’accès à Apache, utilisez la commande suivante :

      Vérifiez maintenant les changements :

      Vous verrez qu’Apache est listé parmi les services autorisés :

      Output

      Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Apache ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Apache (v6) ALLOW Anywhere (v6)

      Cela nous permettra d’accéder à l’interface web de Checkmk.

      Dans l’étape suivante, nous allons créer la première instance de surveillance Checkmk.

      Étape 3 – Création d’une instance de surveillance Checkmk

      Checkmk utilise le concept d’instances ou d’installations individuelles pour isoler plusieurs copies de Checkmk sur un serveur. Dans la plupart des cas, une seule copie de Checkmk suffit et c’est ainsi que nous allons configurer le logiciel dans ce guide.

      Nous devons d’abord donner un nom à notre nouvelle instance, et nous utiliserons monitoring tout au long de ce texte. Pour créer l’instance, tapez :

      • sudo omd create monitoring

      L’outil omd configurera tout automatiquement. La sortie de la commande ressemblera à ce qui suit :

      Output

      Adding /opt/omd/sites/monitoring/tmp to /etc/fstab. Creating temporary filesystem /omd/sites/monitoring/tmp...OK Restarting Apache...OK Created new site monitoring with version 1.6.0p8.cre. The site can be started with omd start monitoring. The default web UI is available at http://your_ubuntu_server/monitoring/ The admin user for the web applications is cmkadmin with password: your-default-password (It can be changed with 'htpasswd -m ~/etc/htpasswd cmkadmin' as site user.) Please do a su - monitoring for administration of this site.

      Dans cette sortie, l’adresse URL, le nom d’utilisateur par défaut et le mot de passe pour accéder à notre interface de surveillance sont mis en évidence. L’instance est maintenant créée, mais elle doit encore être démarrée. Pour démarrer l’instance, tapez :

      • sudo omd start monitoring

      Tous les outils et services nécessaires seront maintenant démarrés en même temps. À la fin, nous verrons une sortie vérifiant que tous nos services ont démarré avec succès :

      Output

      Starting mkeventd...OK Starting rrdcached...OK Starting npcd...OK Starting nagios...OK Starting apache...OK Initializing Crontab...OK

      L’instance est opérationnelle.

      Pour accéder à l’instance Checkmk, ouvrez http://your_ubuntu_server_ip/monitoring/ dans le navigateur web. Un mot de passe vous sera demandé. Utilisez les informations d’identification par défaut imprimées au préalable à l’écran ; nous modifierons ces valeurs par défaut ultérieurement.

      L’écran Checkmk s’ouvre avec un tableau de bord, qui présente tous nos services et les statuts de nos serveurs sous forme de listes, et il utilise des graphiques pratiques ressemblant à la Terre. Immédiatement après l’installation, ces graphiques sont vides, mais nous allons bientôt faire en sorte qu’ils affichent les états de nos services et de nos systèmes.

      Tableau de bord Checkmk vierge

      Dans la prochaine étape, nous modifierons le mot de passe par défaut pour sécuriser le site à l’aide de cette interface.

      Étape 4 – Changer votre mot de passe administratif

      Au cours de l’installation, Checkmk génère un mot de passe aléatoire pour l’utilisateur administratif de cmkadmin. Ce mot de passe est censé être modifié lors de l’installation, et, par conséquent, il est souvent court et peu sûr. Nous pouvons modifier cela via l’interface web.

      Tout d’abord, ouvrez la page USERS depuis le menu WATO – Configuration à gauche. La liste affichera tous les utilisateurs qui ont actuellement accès au site Checkmk. Dans le cas d’une nouvelle installation, la liste ne comprendra que deux utilisateurs. Le premier, automation, est destiné à être utilisé avec des outils automatisés ; le second est l’utilisateur cmkadmin que nous avons utilisé pour nous connecter au site.

      Liste des utilisateurs Checkmk

      Cliquez sur l’icône représentant un crayon à côté de l’utilisateur cmkadmin pour modifier ses coordonnées, y compris le mot de passe.

      Formulaire d'édition pour l'utilisateur Checkmk admin

      Mettez à jour le mot de passe, ajoutez un courriel admin et effectuez toute autre modification désirée.

      Après avoir enregistré les modifications, il nous sera demandé de nous connecter à nouveau en utilisant nos nouveaux identifiants. Faites-le et revenez au tableau de bord, où il y a encore une chose que nous devons faire pour appliquer pleinement notre nouvelle configuration.

      Ouvrez à nouveau la page Users dans le menu WATO – Configuration sur la gauche. Le bouton orange dans le coin supérieur gauche intitulé 1 Change nous indique que nous avons apporté quelques modifications à la configuration de Checkmk, et que nous devons les enregistrer et les activer. Cela se produira chaque fois que nous modifierons la configuration de notre système de surveillance, et pas seulement après avoir modifié les informations d’identification d’un utilisateur. Pour enregistrer et activer les changements en attente, nous devons cliquer sur ce bouton et accepter d’activer les changements énumérés à l’aide de l’option Activate affected​​ sur l’écran suivant.

      Liste des utilisateurs de Checkmk après modificationsÉcran de confirmation de l'activation des changements de configurationChangements de configuration activés avec succès

      Après l’activation des changements, les données du nouvel utilisateur sont écrites dans les fichiers de configuration et seront utilisées par tous les composants du système. Checkmk se charge automatiquement de notifier les différents composants du système de surveillance, de les recharger si nécessaire et de gérer tous les fichiers de configuration nécessaires.

      L’installation Checkmk est maintenant prête à être utilisée. Dans l’étape suivante, nous ajouterons le premier hôte à notre système de surveillance.

      Étape 5 – Surveillance du premier hôte

      Nous sommes maintenant prêts à surveiller le premier hôte. Pour ce faire, nous allons d’abord installer check-mk-agent sur le serveur Ubuntu. Ensuite, nous limiterons l’accès aux données de surveillance en utilisant xinetd.

      Les composants installés avec Checkmk sont responsables de la réception, du stockage et de la présentation des informations de surveillance. Ils ne fournissent pas les informations elles-mêmes.

      Pour recueillir les données réelles, nous utiliserons Checkmk agent. Conçu spécifiquement pour ce travail, l’agent Checkmk est capable de surveiller tous les composants vitaux du système en une seule fois et de renvoyer ces informations à l’instance Checkmk.

      Installer l’agent

      Le premier hôte que nous surveillerons sera your_ubuntu_server—le serveur sur lequel nous avons installé l’instance Checkmk elle-même.

      Pour commencer, nous devons installer l’agent Checkmk. Les paquets de toutes les distributions principales, y compris Ubuntu, sont disponibles directement à partir de l’interface web. Ouvrez la page Monitoring Agents depuis le menu WATO – Configuration à gauche. Vous verrez les téléchargements d’agents disponibles avec les paquets les plus populaires sous la première section intitulée Packaged agents.

      Liste des agents de surveillance packagés disponibles

      Le paquet check-mk-agent_1.6.0p8-1_all.deb est celui adapté aux distributions basées sur Debian, y compris Ubuntu. Copiez le lien de téléchargement de ce paquet depuis le navigateur web et utilisez cette adresse pour télécharger le paquet.

      • wget http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent_1.6.0p8-1_all.deb

      Après le téléchargement, installez le paquet :

      • apt install -y ./check-mk-agent_1.6.0p8-1_all.deb

      Vérifiez maintenant que l’agent a été installé avec succès :

      La commande produira un texte très long qui ressemble à du charabia mais qui regroupe toutes les informations vitales sur le système en un seul endroit.

      Output

      <<<check_mk>>> Version: 1.6.0p8 AgentOS: linux . . . ["monitoring"] <<<job>>> <<<local>>>

      C’est la sortie de cette commande que Checkmk utilise pour recueillir les données d’état des hôtes surveillés. Maintenant, nous allons restreindre l’accès aux données de surveillance avec xinetd.

      Restreindre l’accès aux données de surveillance à l’aide de xinetd

      Par défaut, les données de check_mk_agent sont servies par xinetd, un mécanisme qui produit des données sur un certain port de réseau lors de l’accès. Cela signifie que nous pouvons accéder au check_mk_agent en utilisant telnet sur le port 6556 (le port par défaut pour Checkmk) depuis n’importe quel autre ordinateur sur Internet, à moins que la configuration de notre pare-feu ne le refuse.

      Ce n’est pas une bonne politique de sécurité que de publier à quiconque des informations vitales concernant les serveurs sur l’internet. Nous devons autoriser uniquement les hôtes qui exécutent Checkmk (et qui sont sous notre supervision) à accéder à ces données, de sorte que seul notre système de surveillance puisse les collecter.

      Si vous avez suivi le tutoriel de configuration initiale du serveur, y compris les étapes relatives à la mise en place d’un pare-feu, l’accès à l’agent Checkmk est bloqué par défaut. Il est toutefois recommandé d’appliquer ces restrictions d’accès directement dans la configuration du service et de ne pas compter uniquement sur le pare-feu pour le protéger.

      Pour restreindre l’accès aux données de l’agent, nous devons éditer le fichier de configuration à l’adresse /etc/xinetd.d/check_mk. Ouvrez le fichier de configuration dans votre éditeur préféré. Pour utiliser nano, tapez :

      • sudo nano /etc/xinetd.d/check_mk

      Localisez cette section :

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
      . . .
      

      Le paramètre only_from est responsable de la restriction de l’accès à certaines adresses IP. Comme nous travaillons maintenant à la surveillance du même serveur que celui sur lequel tourne Checkmk, il est normal de n’autoriser que localhost à se connecter. Décommentez et mettez à jour le paramètre de configuration :

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      only_from      = 127.0.0.1
      . . .
      

      Enregistrez et quittez le fichier.

      Le démon xinetd doit être redémarré pour que les changements soient pris en compte. Faites-le maintenant :

      • sudo systemctl restart xinetd

      Notre agent est maintenant opérationnel et est limité pour n’accepter que les connexions locales. Nous pouvons procéder à la configuration de la surveillance pour cet hôte en utilisant Checkmk.

      Configurer l’hôte dans l’interface web Checkmk

      Tout d’abord, pour ajouter un nouvel hôte à surveiller, nous devons nous rendre dans le menu Hosts du menu WATO – Configuration (à gauche). À partir d’ici, cliquez sur Create new host. Nous serons invités à donner quelques informations sur l’hôte.

      Créer un nouvel hôte dans Checkmk

      Le Hostname est le nom familier que Checkmk utilisera pour la surveillance. Il peut s’agir d’un nom de domaine pleinement qualifié, mais ce n’est pas nécessaire. Dans cet exemple, nous nommerons l’hôte monitoring, tout comme le nom de l’instance de Checkmk elle-même. Comme monitoring ne peut pas être résolu à notre adresse IP, nous devons également fournir l’adresse IP de notre serveur. Et comme nous surveillons l’hôte local, l’IP sera simplement 127.0.0.1. Cochez la case IPv4 Adresse pour activer la saisie manuelle de l’adresse IP et entrez la valeur dans le champ de texte.

      La configuration par défaut de la section Data Sources repose sur Checkmk pour fournir des données de surveillance, ce qui est bien. Le paramètre Networking Segment​​​ est utilisé pour désigner les hôtes sur les réseaux distants, qui se caractérisent par une latence attendue plus élevée qui ne constitue pas un signe de dysfonctionnement. Comme il s’agit d’un hôte local, le paramètre par défaut est également correct.

      Pour enregistrer l’hôte et configurer les services à surveiller, cliquez sur le bouton Save & go to services.

      Liste des services disponibles à surveiller

      Checkmk fera un inventaire automatique. Cela signifie qu’il recueillera les informations fournies par l’agent et les déchiffrera pour savoir quels types de services il peut contrôler. Tous les services disponibles pour la surveillance figureront sur la liste, y compris la charge du processeur, l’utilisation de la mémoire et l’espace libre sur les disques.

      Pour permettre la surveillance de tous les services découverts, nous devons cliquer sur le bouton Monitor sous la section Undecided services ( actuellement non surveillés). La page sera ainsi actualisée, mais tous les services seront désormais répertoriés sous la section Monitored services, nous informant qu’ils sont effectivement surveillés.

      Comme c’était le cas lors de la modification de notre mot de passe utilisateur, ces nouveaux changements doivent être enregistrés et activés avant d’être effectifs. Appuyez sur le bouton “2 changes” et acceptez les changements en utilisant le bouton Activate affected. Après cela, la surveillance de l’hôte sera opérationnelle.

      Vous êtes maintenant prêt à travailler avec les données de votre serveur. Jetez un coup d’œil au tableau de bord principal en utilisant l’élément de menu Overview/Main Overview sur la gauche.

      Travailler avec les données de surveillance

      Examinons maintenant le tableau de bord principal à l’aide de l’élément de menu Overview/Main Overview sur la gauche :

      Tableau de bord de surveillance avec tous les services en état de marche

      La sphère terrestre est maintenant entièrement verte et le tableau indique qu’un hôte est en place sans aucun problème. Nous pouvons voir la liste complète des hôtes, qui se compose maintenant d’un seul hôte, dans la vue Hosts/All hosts (en utilisant le menu à gauche).

      Liste des hôtes avec tous les services en état de marche

      Nous y verrons combien de services sont en bonne santé (indiqués en vert), combien sont défaillants et combien sont en attente de contrôle. Après avoir cliqué sur le nom d’hôte, nous pourrons voir la liste de tous les services avec leur statut complet et leur Perf-O-Meters. Le Perf-O-Mètre montre la performance d’un seul service par rapport à ce que Checkmk considère comme une bonne santé.

      Détails sur l'état d'un service hôte

      Tous les services qui renvoient des données graphiques affichent une icône graphique à côté de leur nom. Nous pouvons utiliser cette icône pour accéder aux graphiques associés au service. Comme la surveillance de l’hôte est récente, il n’y a presque rien sur les graphiques – mais après un certain temps, les graphiques fourniront des informations précieuses sur l’évolution des performances de notre service dans le temps.

      Graphiques représentant la charge du CPU sur le serveur

      En cas de défaillance ou de rétablissement de l’un de ces services, les informations seront affichées sur le tableau de bord. Pour les services défaillants, une erreur rouge sera affichée, et le problème sera également visible sur le graphique de la Terre.

      Tableau de bord avec un hôte ayant des problèmes

      Après la reprise, tout sera indiqué en vert comme fonctionnant correctement, mais le journal des événements sur la droite contiendra des informations sur les défaillances passées.

      Tableau de bord avec un hôte restauré suite à des problèmes

      Maintenant que nous avons un peu exploré le tableau de bord, ajoutons un second hôte à notre instance de surveillance.

      Étape 6 – Surveillance d’un deuxième hôte CentOS

      La surveillance devient vraiment utile lorsque vous avez plusieurs hôtes. Nous allons maintenant ajouter un deuxième serveur à notre instance Checkmk qui, cette fois-citourne sous CentOS 7.

      Comme pour notre serveur Ubuntu, l’installation de l’agent Checkmk est nécessaire pour recueillir les données de surveillance sur CentOS. Cette fois, cependant, nous aurons besoin d’un paquet rpm de la page Monitoring Agents de l’interface web, appelé check-mk-agent-1.6.0p8-1.noarch.rpm.

      Mais nous devons d’abord installer xinetd, qui par défaut n’est pas disponible sur l’installation de CentOS. Xinetd, rappelons-le, est un démon qui est chargé de rendre disponibles sur le réseau les données de surveillance fournies par check_mk_agent.

      Sur votre serveur CentOS, installez d’abord xinetd :

      • sudo yum install -y xinetd

      Nous pouvons maintenant télécharger et installer le paquet de l’agent de surveillance nécessaire à notre serveur CentOS :

      • sudo yum install -y http://your_ubuntu_server_ip/monitoring/check_mk/agents/check-mk-agent-1.6.0p8-1.noarch.rpm

      Tout comme précédemment, nous pouvons vérifier que l’agent fonctionne correctement en exécutant check_mk_agent :

      La sortie sera semblable à celle du serveur Ubuntu. Nous allons maintenant restreindre l’accès à l’agent.

      Restriction de l’accès

      Cette fois, nous ne surveillerons pas un hôte local, donc xinetd doit permettre les connexions provenant du serveur Ubuntu, où Checkmk est installé, pour recueillir les données. Pour cela, ouvrez d’abord votre fichier de configuration :

      • sudo vi /etc/xinetd.d/check_mk

      Vous y verrez la configuration de votre service check_mk, en précisant comment l’agent Checkmk peut être accessible via le démon xinetd. Trouvez les deux lignes commentées suivantes :

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      #only_from      = 127.0.0.1 10.0.20.1 10.0.20.2
      . . .
      

      Décommentez maintenant la deuxième ligne et remplacez les adresses IP locales par your_ubuntu_server_ip:

      /etc/xinetd.d/check_mk

      . . .
      # configure the IP address(es) of your Nagios server here:
      only_from      = your_ubuntu_server_ip
      . . .
      

      Enregistrez et quittez le fichier en tapant :x et ensuite ENTER. Redémarrez le service xinetd en utilisant :

      • sudo systemctl restart xinetd

      Nous pouvons maintenant procéder à la configuration de Checkmk pour surveiller notre hôte CentOS 7.

      Configurer le nouvel hôte dans Checkmk

      Pour ajouter des hôtes supplémentaires à Checkmk, nous utilisons le menu Hosts comme auparavant. Cette fois-ci, nous allons nommer l’hôte centos, configurer son adresse IP et choisir WAN (high-latency) sous la case Networking Segment, puisque l’hôte est sur un autre réseau. Si nous laissons cette option en local, Checkmk nous avertira rapidement que l’hôte est hors service, car il s’attend à ce qu’il réponde aux requêtes des agents beaucoup plus rapidement qu’il n’est possible sur Internet.

      Créer l'écran de configuration d'un deuxième hôte

      Cliquez sur “Save & go to services”, qui affichera les services disponibles pour la surveillance sur le serveur CentOS. La liste sera très similaire à celle du premier hôte. Là encore, nous devons également cliquer sur Monitor et ensuite activer les changements à l’aide du bouton orange situé dans le coin supérieur gauche.

      Après l’activation des changements, nous pouvons vérifier que l’hôte est surveillé sur la page All hosts. Allez sur cette page. Deux hôtes, monitoring et centos, seront maintenant visibles.

      Liste des hôtes avec deux hôtes surveillés

      Vous surveillez maintenant un serveur Ubuntu et un serveur CentOS avec Checkmk. Il est possible de surveiller encore plus d’hôtes. En fait, il n’y a pas de limite supérieure autre que la performance du serveur, ce qui ne devrait pas poser de problème tant que vos hôtes ne se comptent pas par centaines. En outre, la procédure est la même pour tout autre hôte. Les agents Checkmk dans les paquets deb et rpm fonctionnent sur Ubuntu, CentOS et la majorité des autres distributions Linux.

      Conclusion

      Dans ce guide, nous avons configuré deux serveurs avec deux distributions Linux différentes : Ubuntu et CentOS. Nous avons ensuite installé et configuré Checkmk pour surveiller les deux serveurs, et nous avons exploré la puissante interface web de Checkmk.

      Checkmk permet de mettre en place facilement un système de surveillance complet et polyvalent, qui regroupe tout le travail de configuration manuelle dans une interface web facile à utiliser, pleine d’options et de fonctionnalités. Avec ces outils, il est possible de surveiller plusieurs hôtes, de configurer des notifications par courriel, SMS ou push en cas de problème, de mettre en place des contrôles supplémentaires pour plus de services, de surveiller l’accessibilité et les performances, etc.

      Pour en savoir plus sur Checkmk, n’oubliez pas de consulter la documentation officielle.



      Source link

      Sysadmin eBook: Faire fonctionner les serveurs


      Télécharger le eBook complet

      Faire fonctionner les serveurs : Un guide pratique de l’administration des systèmes un eBook au format EPUB

      Faire fonctionner les serveurs : un Guide pratique pour l’administration du système *un eBook en *format PDF**

      Présentation de l’eBook

      Ce livre met en lumière les compétences pratiques des administrateurs système, les architectures courantes que vous rencontrerez et les meilleures pratiques qui s’appliquent à l’automatisation et à l’exécution de systèmes à toute échelle, d’un ordinateur portable ou d’un serveur à 1 000 ou plus. Il est destiné à vous aider à vous orienter dans la discipline et, nous l’espérons, vous encourager à en apprendre davantage sur l’administration du système.

      Ce livre est basé sur le programme d’études Faire fonctionner les serveurs : Un guide pratique pour l’administration du système Linux que l’on trouve dans la communauté DigitalOcean. Il se structure autour de quelques thèmes centraux :

      1. Sujets d’introduction

      2. Les piles technologiques LAMP et LEMP

      3. Sécuriser vos serveurs

      4. Automatisation avec Ansible

      5. Contrôle de la version et intégration continue

      N’hésitez pas à choisir les sujets qui vous intéressent dans ce livre et à les explorer en utilisant ces chapitres comme des guides. En parcourant ce livre, vous découvrirez une grande variété de technologies, de termes techniques et d’approches conceptuelles de la gestion des serveurs Linux. Vous pouvez parcourir chaque chapitre ou section à votre propre rythme et dans l’ordre que vous souhaitez.

      Télécharger le eBook

      Vous pouvez télécharger le eBook au format EPUB ou PDF en suivant les liens ci-dessous.

      Télécharger le eBook complet

      Faire fonctionner les serveurs : Un guide pratique de l’administration des systèmes un eBook au format EPUB

      Faire fonctionner les serveurs : un Guide pratique pour l’administration du système un eBook en format PDF

      Pour des ressources sysadmin supplémentaires qui vous aideront à démarrer, et pour participer à la communauté DigitalOcean d’autres développeurs et administrateurs, consultez notre bibliothèque sans cesse croissante de tutoriels, de questions et de projets avec le tag Getting Started.



      Source link