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 rationalisent le développement, le déploiement et l’expédition d’applications à l’intérieur de conteneurs.
Le concept de conteneurisation implique l’exploitation des images de conteneurs. Il s’agit de petits packages exécutables légers et autonomes qui incluent tout ce qui est nécessaire à l’exécution d’une application, y compris le code source, les bibliothèques et les dépendances, ainsi que les fichiers de configuration.
Ce faisant, l’application peut s’exécuter dans presque tous les environnements informatiques ; l’infrastructure informatique traditionnelle, le cloud et une myriade de versions Linux/UNIX.
La surveillance des conteneurs aide les équipes d’exploitation à identifier les problèmes sous-jacents et à les résoudre en temps opportun. La surveillance des conteneurs comprend la capture de métriques 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 en cas d’évolutivité.
Zabbix est un outil de surveillance de l’infrastructure informatique populaire qui garde un œil sur presque tous les éléments de votre environnement, y compris les appareils 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 vous pouvez 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 d’avoir deux nœuds – Le premier nœud est le serveur Zabbix. C’est le nœud à partir duquel nous allons surveiller 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 allons exécuter des conteneurs Docker et surveiller 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 maintenant 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 système et d’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 qu’il est installé. Étant donné que notre objectif est de surveiller les conteneurs Docker sur le serveur distant, certaines configurations supplémentaires sont nécessaires.
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. Dans la plupart des cas, les paramètres par défaut fonctionneront très bien.
Pour configurer l’agent Zabbix afin qu’il envoie des métriques au serveur Zabbix, recherchez la directive 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 qu’elle reflète 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 qu’il démarre au démarrage du système.
$ sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2
Vérifiez 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 UFW ou d’un pare-feu 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
Génial! Nous sommes maintenant à mi-chemin. L’agent Zabbix peut désormais envoyer les métriques du conteneur Docker au serveur Zabbix.
Dans l’étape suivante, nous ajouterons le serveur Docker à l’interface Web de 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é, naviguez vers 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 Groupes, tapez « Groupes Docker » (chaque hôte doit être associé à un groupe).
Sous l’étiquette '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 de 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 maintenant votre serveur Docker. À l’étape suivante, nous allons déployer un conteneur et vérifier 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. Retournez donc 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 alors l’accès shell en utilisant l’option -it. L’ensemble de la commande des opérations est le suivant.
$ sudo docker run --name docker_test_container -it ubuntu bash
Vous pouvez essayer quelque chose d’ambitieux, comme l’installation de progiciels tels qu’Apache ou MariaDB afin de générer des mesures telles que l’utilisation du processeur et le trafic réseau.
Revenez maintenant au tableau de bord du serveur Zabbix. Cliquez sur 'Monitoring' puis 'Hosts'. 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 afficher 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 plantage du conteneur, nous allons quitter 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, naviguez vers la barre latérale gauche et cliquez sur « Surveillance » puis sur « Tableau de bord ».
L’alerte s’affiche ci-dessous.
Pour rectifier l’erreur, il suffit de redémarrer 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 vous pouvez surveiller les conteneurs Docker à l’aide de l’outil de surveillance Zabbix.












