Utiliser Glance pour superviser ses containers

Utiliser Glances pour superviser ses containers

Maintenant que vous utilisez Docker, il est temps de superviser ses conteneurs pour surveiller les ressources consommées sur votre serveur. Vous pourrez voir les conteneurs qui utilisent le plus de ressources. Glances est un outil de surveillance écrit en Python qui vous donnera des informations minimales mais essentiel sur votre système que ce soit dans le terminal ou dans un navigateur Web.

Glances pour quoi faire ?

Glances est un outil de surveillance multiplateforme open-source. Il permet de surveiller en temps réel plusieurs aspects de votre système, tels que l’utilisation du processeur, de la mémoire, du disque, du réseau, etc. Il permet également de surveiller les processus en cours, les utilisateurs connectés, la température, la tension, la vitesse des ventilateurs, etc. Il prend également en charge la surveillance des conteneurs et différents systèmes de gestion des conteneurs tels que Docker, LXC.

Les informations sont présentées dans un tableau de bord facile à lire et peuvent également être utilisées pour la surveillance à distance des systèmes via une interface web ou une interface de ligne de commande. Il est facile à installer et à utiliser et peut être personnalisé pour ne montrer que les informations qui vous intéressent.

Voici un exemple d’informations fournis par Glances dans le terminal d’un serveur :Glances est un outil de surveillance multiplateforme open-source. Il permet de surveiller en temps réel plusieurs aspects de votre système, tels que l'utilisation du processeur, de la mémoire, du disque, du réseau, etc.

En mode client/serveur, la surveillance à distance peut être effectuée via un terminal, une interface Web ou une API (XML-RPC et RESTful). Les statistiques peuvent également être exportées vers des fichiers ou des bases de données, CSV ou une sortie directe vers STDOUT.

En mode client/serveur, la surveillance à distance peut être effectuée via un terminal, une interface Web ou une API (XML-RPC et RESTful).

Création d’une entrée DNS

Comme d’habitude, si vous suivez ce blog de manière régulière, la première étape pour déployer une image docker est de créer une entrée DNS.

Connectez-vous à l’interface de gestion de votre domaine comme CPanel par exemple.

Allez dans Domaine > Zone Editor > Gérer > Ajouter un enregistrement

Créer une entrée DNS dans CPanel

Vous devez renseigner les éléments suivants :

  • le nom de votre sous-domaine
  • le TTL (Time to Live), par défaut 14400, je ne touche pas à cette valeur
  • le type d’enregistrement, ici c’est un enregistrement classique de serveur donc A
  • l’adresse IP qui porte le service

Puis cliquer sur Save.

Votre enregistrement DNS est maintenant opérationnel.

Préparation du fichier docker-compose et des répertoires de travail

Vous pouvez retrouver l’intégralité de la configuration de l’application Glances sur mon Github : docker-compose Glances

Je vais préparer l’arborescence, qui va accueillir les fichiers de configuration de Glances.

Pour fonctionner vous devrez créer 2 fichiers de configuration :

  • podman.sock (Podman est un logiciel libre permettant de lancer des applications dans des conteneurs logiciels)
  • glances.conf (vous permet de personnaliser facilement la configuration de Glances)
mkdir -p run/user/1000/podman/

nano  run/user/1000/podman/podman.sock

nano glances.conf

Préparation du fichier docker-compose et des répertoires de travail pour l'application Glances

Concernant le contenu du fichier glances.conf, j’ai repris celui de l’auteur sur son Github : Fichier glances.conf. Il est régulièrement mis à jour.

Maintenant j’utiliser le logiciel Portainer pour créer mes stacks docker-compose. Je trouve l’utilisation plus simple en GUI et il n’est pas nécessaire d’avoir une connexion SSH pour créer un stack.

Une fois connecté à Portainer (Si vous ne connaissez pas ce logiciel, voici une petite lecture : Utiliser Portainer pour gérer vos containers, vous devez aller dans Stacks > Add Stack > Editor, puis copier votre fichier docker-compose dans le cadre prévu à cet effet.

Utiliser Portainer pour créer un stack de Glances

Pour déployer votre stack, il suffit de cliquer sur Update the stack.

Voici le fichier docker-compose pour Glances : (Vous trouverez mon fichier docker-compose sur mon compte Github)

Voici le fichier docker-compose pour Glances

Quelques explications du fichier docker-compose :

  • Ligne 6 pid: host => L’utilisation de cette option permet au processus conteneur de voir tous les autres processus s’exécutant sur l’hôte.
  • Ligne 7 privileged: true => L’exécution en mode privilégié désactive/ contourne la plupart de des vérifications. Cela signifie que si vous êtes root dans un conteneur, vous avez les privilèges de root sur le système hôte. Ce mode n’est destiné qu’à des cas particuliers tels que l’exécution de Docker dans Docker et devrait être évité, mais utile dans notre cas pour surveiller notre hôte depuis le container Glance.
  • Ligne 14 GLANCES_OPT= -w => Cette option permet d’ exécuter le conteneur en mode serveur Web

Accéder à l’interface de Glances

Maintenant, il suffit de vous connectez à l’adresse web, pour voir apparaitre les informations sur votre serveur, sur une seule page web. Vous avez toutes les informations indispensables pour surveiller votre serveur y compris les containers tournant sur celui-ci.

Il suffit de vous connectez à l’adresse web, pour voir apparaitre les informations sur votre serveur, sur une seule page web.

N’oublier pas que vous pouvez installer Glances sous Windows, Linux, Mac. Tous les binaires sont disponibles à cette adresse : https://nicolargo.github.io/glances/

Astuces sur l’utilisation de Glances

Au fur et à mesure de l’utilisation de Glances, je mettrais mes tips dans cette section.

Protéger l’accès à la page web de Glances

Il est possible via une modification du fichier glances.conf de protéger l’accès à la page de surveillance de votre serveur par un mot de passe. Mais vu que nous utilisons le reverse-proxy Traefik, nous pouvons utiliser le middleware BasicAuth, voici ce qu’il faut rajouter dans votre fichier docker-compose :

traefik.http.middlewares.traefik-auth.basicauth.users=utilisateur:mot de passe

traefik.http.routers.traefik-secure.middlewares=traefik-auth

Attention!!! Les mots de passe doivent être hachés à l’aide de MD5, SHA1 ou BCrypt.

Protéger l’accès à la page web de Glances avec Traefik

Signature manuelle Guillaume

2 Potins

  1. Bonjour,

    en plus de superviser votre hôte, il affiche chaque container et les consommations de ceux-ci en CPU, RAM, … d’un seul coup d’oeil. Cordialement

  2. Bonjour,
    Pouvez-vous détailler la partie « superviser vos conteneurs » car là, à part utiliser le logiciel glances dans un conteneur afin de monitorer l’hôte, je ne vois rien à ce sujet.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *