Docker est sans doute l’un des plus appréciés DevOps des outils qui rationalisent le développement, le déploiement et l’expédition d’applications dans des conteneurs.
Le concept de conteneurisation implique l’utilisation d’images de conteneurs. Ce sont des 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 les 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 variantes 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 englobe 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 déboguer et alerter l’équipe informatique du moment où la mise à l’échelle est nécessaire.
Zabbix est un outil de surveillance d’infrastructure informatique populaire qui garde un œil sur 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 Docker conteneurs utilisant le Zabbix outil de surveillance sous Linux.
Conditions
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 surveillerons la télécommande Docker serveur. Nous avons un article sur :
Le deuxième nœud est le Docker serveur sur lequel Docker est installé. C’est le nœud à partir duquel nous exécuterons les conteneurs Docker et surveillerons l’activité des conteneurs.
Ensuite, assurez-vous d’avoir un accès SSH à votre Docker nœud de serveur avec un utilisateur sudo déjà configuré.
Avec votre configuration en place, vous pouvez maintenant retrousser vos manches !
Étape 1 : Installer Zabbix-Agent sous Linux
Surveiller Docker conteneurs 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 d’autres applications.
Tout d’abord, vous devez installer le Zabbix référentiel sur le Docker nœud.
----------- 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, le Zabbix l’agent est configuré pour envoyer les métriques au Zabbix serveur sur le même hôte qu’il est installé. Puisque notre objectif est de surveiller docker conteneurs sur le serveur distant, certaines configurations supplémentaires sont nécessaires.
Par conséquent, accédez au Zabbix fichier de configuration des agents.
$ 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 le Zabbix l’agent pour envoyer des métriques au Zabbix serveur, localisez la directive qui est configurée pour envoyer les métriques à l’adresse de bouclage, ou tout simplement, le 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 au ‘Contrôles actifs‘ 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
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 avez un pare-feu UFW ou firewalld 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 maintenant à mi-chemin. L’agent Zabbix peut maintenant expédier le Docker métriques de conteneur au serveur Zabbix.
Dans l’étape suivante, nous ajouterons le Docker serveur au Zabbix interface Web et surveiller 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 Zabbix tableau de bord du serveur 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‘ alors ‘Hôtes‘.
Dans le coin supérieur droit, cliquez sur ‘Créer un hôte‘.
Remplissez les détails de la Docker serveur tel que le nom d’hôte & visible Nom. Pour les groupes, saisissez ‘Groupes Docker‘ (chaque hôte doit être associé à un groupe).
Sous le ‘Interfaces‘ étiquette 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 le Modèles onglet, et dans le ‘Lier de nouveaux modèles‘ section, précisez ‘Docker par l’agent Zabbix 2‘. Cliquez ensuite sur le ‘Ajouter‘ bouton.
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. Dans 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 la surveillance Docker métriques, nous allons lancer un conteneur de test. Alors, retournez à votre Docker serveur et lancez un conteneur.
Dans cet exemple, nous allons tirer un Ubuntu image du conteneur et créez un conteneur appelé docker_test_container. Nous aurons alors accès au shell en utilisant le -it
option. La commande entière pour les 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 des métriques telles que l’utilisation du processeur et le trafic réseau.
Retournez maintenant au Zabbix tableau de bord du serveur. Cliquer sur ‘Surveillance‘ alors ‘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 des statistiques.
Vous pouvez également afficher les graphiques des différentes métriques de conteneur en cliquant sur le ‘graphiques‘ options du serveur Docker sur le ‘Hôtes‘page. Ci-dessous, vous pouvez voir les métriques d’utilisation du processeur et de la mémoire.
Pour simuler le crash du conteneur, nous quitterons de manière inattendue le conteneur 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‘ alors ‘Tableau de bord‘.
L’alerte est affichée ci-dessous.
Pour rectifier l’erreur, redémarrez simplement le conteneur.
$ sudo docker start docker_test_container
Et ceci nous amène à la fin de ce guide. Nous vous avons expliqué, étape par étape, comment vous pouvez surveiller Docker conteneurs utilisant le Zabbix outil de suivi.
.