Recherche de site Web

Comment surveiller les conteneurs Docker avec l'outil de surveillance Zabbix


Docker est sans doute l'un des outils DevOps les plus appréciés qui rationalise le développement, le déploiement et l'expédition d'applications dans des conteneurs.

Le concept de conteneurisation implique d’exploiter les images de conteneurs. Il s'agit de packages exécutables petits, légers et autonomes qui incluent tout ce qui est nécessaire pour exécuter une application, y compris le code source, les bibliothèques et dépendances, ainsi que les fichiers de configuration.

Ce faisant, l’application peut s’exécuter dans presque n’importe quel environnement informatique ; infrastructure informatique traditionnelle, cloud et une myriade de versions Linux/UNIX.

La surveillance des conteneurs aide les équipes opérationnelles à identifier les problèmes sous-jacents et à les résoudre en temps opportun. La surveillance des conteneurs comprend la capture de mesures de base telles que l'utilisation du processeur, l'utilisation de la mémoire, la taille du conteneur et l'utilisation de la bande passante, pour n'en citer que quelques-unes. De plus, vous pouvez collecter des journaux en temps réel qui sont utiles pour le débogage et alerter l'équipe informatique lorsqu'il faut effectuer une mise à l'échelle.

Zabbix est un outil populaire de surveillance de l'infrastructure informatique qui surveille presque tous les éléments de votre environnement, y compris les périphériques physiques tels que les serveurs et les périphériques réseau tels que les routeurs et les commutateurs. Il peut également surveiller les applications, les services et les bases de données.

Dans ce guide, nous allons vous montrer comment surveiller les conteneurs Docker à l'aide de l'outil de surveillance Zabbix sous Linux.

Exigences

Voici ce dont vous avez besoin avant de commencer :

Tout d'abord, assurez-vous que vous disposez de deux nœuds – Le premier nœud est le serveur Zabbix. Il s'agit du nœud à partir duquel nous surveillerons le serveur Docker distant. Nous avons un article sur :

  • Comment installer Zabbix sur Rocky Linux et AlmaLinux
  • Comment installer l'outil de surveillance Zabbix sur Debian 11/10
  • Comment installer Zabbix sur RHEL 8
  • Comment installer Zabbix sur Ubuntu

Le deuxième nœud est le serveur Docker sur lequel Docker est installé. Il s'agit du nœud à partir duquel nous exécuterons les conteneurs Docker et surveillerons l'activité des conteneurs.

  • Comment installer Docker sur Rocky Linux et AlmaLinux
  • Comment installer et utiliser Docker sur Ubuntu 20.04
  • Comment installer Docker dans CentOS et RHEL 8/7

Ensuite, assurez-vous que vous disposez d'un accès SSH à votre nœud de serveur Docker avec un utilisateur sudo déjà configuré.

Une fois votre configuration en place, vous pouvez désormais retrousser vos manches !

Étape 1 : Installer Zabbix-Agent sous Linux

Pour surveiller les conteneurs Docker sur le serveur distant, vous devez installer un agent Zabbix, qui est un agent de surveillance déployé sur un nœud cible pour surveiller activement les métriques du système et autres applications.

Tout d'abord, vous devez installer le référentiel Zabbix sur le nœud Docker.

----------- On Ubuntu 20.04 ----------- 
sudo wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1+ubuntu20.04_all.deb
sudo dpkg -i zabbix-release_5.4-1+ubuntu20.04_all.deb
sudo apt update
sudo apt install zabbix-agent2

----------- On RHEL-based Distro ----------- 
sudo rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm
sudo dnf update
sudo dnf install zabbix-agent

----------- On Debian 11 ----------- 
sudo wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1%2Bdebian11_all.deb
sudo dpkg -i zabbix-release_5.4-1%2Bdebian11_all.deb
sudo apt update
sudo apt install zabbix-agent2

----------- On Debian 10 ----------- 
sudo wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1%2Bdebian10_all.deb
sudo dpkg -i zabbix-release_5.4-1%2Bdebian10_all.deb
sudo apt update
sudo apt install zabbix-agent2

Étape 2 : configurer Zabbix-Agent sous Linux

Par défaut, l'agent Zabbix est configuré pour envoyer les métriques au serveur Zabbix sur le même hôte sur lequel il est installé. Puisque notre objectif est de surveiller les conteneurs docker sur le serveur distant, certaines configurations supplémentaires sont requises.

Par conséquent, accédez au fichier de configuration de l'agent Zabbix.

sudo vim /etc/zabbix/zabbix_agent2.conf

Le fichier de configuration contient des paramètres qui spécifient l'adresse à laquelle les métriques sont envoyées, le port utilisé pour les connexions et bien plus encore. Pour la plupart, les paramètres par défaut fonctionneront très bien.

Pour configurer l'agent Zabbix pour envoyer des métriques au serveur Zabbix, localisez la directive qui est configurée pour envoyer les métriques à l'adresse de bouclage, ou en termes simples, au même système hôte.

Server=127.0.0.1

Définissez l'adresse pour refléter l'adresse du serveur Zabbix

Server=zabbix-server-IP

De plus, accédez à la section « Vérifications actives » et modifiez la directive pour qu'elle pointe vers l'adresse IP du serveur Zabbix.

ServerActive=zabbix-server-IP

Assurez-vous également d'ajuster le nom d'hôte du serveur Docker en conséquence. Le nom d'hôte de mon serveur Docker est Ubuntu20.

Hostname=Ubuntu20

Enregistrez ensuite les modifications et quittez le fichier de configuration Zabbix.

Pour que l'agent Zabbix garde un œil sur les conteneurs Docker, vous devez ajouter l'utilisateur Zabbix, qui est installé par défaut, au groupe Docker.

sudo usermod -aG docker zabbix

Pour appliquer les modifications apportées au fichier de configuration, redémarrez le service Zabbix-agent et activez-le pour démarrer au démarrage du système.

sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2

Confirmez l'état d'exécution de l'agent Zabbix comme suit.

sudo systemctl status zabbix-agent2

L'agent Zabbix écoute sur le port 10050. Si vous disposez d'un pare-feu ou d'un pare-feu UFW en cours d'exécution, envisagez d'ouvrir le port comme suit.

----------- On UFW Firewall ----------- 
sudo ufw allow 10050/tcp
sudo ufw reload

----------- On Firewalld ----------- 
sudo firewall-cmd --add-port=10050/tcp --permanent
sudo firewall-cmd --reload

Super! Nous sommes désormais à mi-chemin. L'agent Zabbix peut désormais envoyer les métriques du conteneur Docker au serveur Zabbix.

Dans la prochaine étape, nous ajouterons le serveur Docker à l'interface Web Zabbix et surveillerons les conteneurs Docker.

Étape 3 : Ajouter le Docker au serveur Zabbix pour la surveillance

Pour surveiller un hôte distant, vous devez l'ajouter au tableau de bord du serveur Zabbix via un navigateur. Zabbix fournit une myriade de modèles pour divers services et applications. Nous lierons le modèle approprié à l'hôte Docker pour surveiller spécifiquement les conteneurs. Mais d’abord, accédez à la page de connexion du serveur Zabbix.

http://zabbix-server-ip/zabbix

Une fois connecté, accédez à la barre latérale droite et cliquez sur « Configuration » puis « Hôtes ».

Dans le coin supérieur droit, cliquez sur « Créer un hôte ».

Remplissez les détails du serveur Docker tels que le nom d'hôte et le nom visible. Pour les groupes, saisissez « Groupes Docker » (chaque hôte doit être associé à un groupe).

Sous le libellé « Interfaces », cliquez sur « Ajouter » et dans le menu qui apparaît, sélectionnez « Agent ».

Ensuite, remplissez l'adresse IP privée du serveur Docker et assurez-vous que le port est défini sur 10050.

Ensuite, cliquez sur l'onglet Modèles et dans la section « Lier les nouveaux modèles », spécifiez « Docker by Zabbix agent 2 ». Cliquez ensuite sur le bouton « Ajouter ».

Lorsque vous cliquez sur le bouton Ajouter, l'hôte Docker distant sera automatiquement ajouté comme indiqué.

À ce stade, le serveur Zabbix surveille désormais votre serveur Docker. Dans la prochaine étape, nous déploierons un conteneur et vérifierons quelles métriques peuvent être surveillées.

Étape 4 : Surveillance des métriques Docker dans Zabbix Monitoring

Pour commencer à surveiller les métriques Docker, nous allons lancer un conteneur de test. Alors retournez sur votre serveur Docker et lancez un conteneur.

Dans cet exemple, nous allons extraire une image de conteneur Ubuntu et créer un conteneur appelé docker_test_container. Nous obtiendrons ensuite l'accès au shell en utilisant l'option -it. La commande complète des opérations est la suivante.

sudo docker run --name docker_test_container -it ubuntu bash

Vous pouvez essayer quelque chose d'ambitieux, comme installer des progiciels tels que Apache ou MariaDB afin de générer certaines métriques telles que l'utilisation du processeur et le trafic réseau.

Revenez maintenant au tableau de bord du serveur Zabbix. Cliquez sur « Surveillance » puis sur « Hôtes ». Cliquez sur le nom de votre serveur Docker et dans l'option de menu qui apparaît, sélectionnez « Dernières données ».

Après quelques minutes de déploiement du conteneur, le serveur Zabbix détectera le conteneur et commencera à remplir certaines statistiques.

Vous pouvez également visualiser les graphiques des différentes métriques du conteneur en cliquant sur les options « graphiques » du serveur Docker sur la page « Hôtes ». Ci-dessous, vous pouvez voir les mesures d'utilisation du processeur et de la mémoire.

Pour simuler le crash du conteneur, nous quitterons le conteneur de manière inattendue en exécutant la commande ci-dessous dans le shell du conteneur.

exit 2

Cela implique que nous avons terminé le conteneur avec un code d'erreur de 2. Ceci est enregistré dans les métadonnées du conteneur. Pour afficher l'alerte, accédez à la barre latérale gauche et cliquez sur « Surveillance » puis sur « Tableau de bord ».

L'alerte est affichée ci-dessous.

Pour corriger l'erreur, redémarrez simplement le conteneur.

sudo docker start docker_test_container 

Et cela nous amène à la fin de ce guide. Nous vous avons expliqué étape par étape comment surveiller les conteneurs Docker à l'aide de l'outil de surveillance Zabbix.