Aller au contenu principal

Docker

Vue d'ensemble​

Docker permet d'embarquer une application dans un ou plusieurs containers logiciels qui pourront s'exécuter sur n'importe quel système d'exploitation hôte. Docker fonctionne sous Linux comme Windows Server. C'est une technologie qui a pour but de faciliter les déploiements d'application et la gestion du dimensionnement de l'infrastructure sous-jacente.

Contenu du connecteur de supervision​

Objets supervisés​

  • Nodes
  • Containers

Métriques collectées​

Plus d'informations sur les métriques remontées sont disponibles sur la documentation officielle de l'Api Rest Docker: https://docs.docker.com/engine/api/v1.30/

Metric nameDescription
NameName of the container. Units: text
State_nameReal state of Container. Units: text
read_ioThe average number of bytes read from disk per second. Units: Bytes/Second
Write_ioThe average number of bytes write from disk per second. Units: Bytes/Second Units: Bytes/s
Cpu_total_usageThe percentage of CPU utilization. Units: Percent
Cpu_system_usageThe average amount of time taken per disk I/O write operation. Units: Seconds
Memory_usageThe percentage of Memory utilization. Units: Percent & Bytes
Traffic_inThe percentage of Inbound Traffic utilization. Units: Percent & Bytes/s
Traffic_outThe percentage of Outbound Traffic utilization. Units: Percent & Bytes/s

Prérequis​

Connexion à l'Api Rest de Docker​

Ouvrez votre terminal ssh préféré :

  • vi /lib/systemd/system/docker.service
  • Trouver la ligne qui commence par Execstart et modifier les options suivantes :
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H=tcp://0.0.0.0:2375
  • Enregistrer les modifications
  • Recharger les services du système : systemctl daemon-reload
  • Redémarrer Docker : system docker restart

Installation​

  1. Installer le Plugin sur l'ensemble des collecteurs Centreon supervisant des ressources Docker:
yum install centreon-plugin-Applications-Docker-Restapi
  1. Installer le connecteur de supervision "Docker" depuis la page Configuration > Gestionnaire de connecteurs de supervision de l'interface Web de Centreon

Configuration​

Choisissez le modèle d'hôte correspondant aux nodes ou containers "App-Docker-Restapi-custom". Une fois le modèle d'hôte appliqué, il est possible de définir l'ensemble des macros nécessaires au fonctionnement des contrôles:

MandatoryNomDescription
XDOCKERENGINEPORTEngine port application for monitoring containers api usages
DOCKERENGINEEXTRAOPTIONSExtra options for monitoring containers api usages

FAQ​

Je supervise mes nodes et containers Docker, les temps de contrôle sont anormalement longs, est-ce normal ?​

L’api webservice 'container stats' est relativement lente (entre 1s et 2s), les temps de réponse peuvent donc être un peu longs.

Comment tester un contrôle en ligne de commande et que signifient les options principales ?​

A partir du moment ou la sonde est installée, vous pouvez tester directement depuis votre collecteur Centreon avec l'utilisateur centreon-engine:

/usr/lib/centreon/plugins//centreon_docker_restapi.pl \
--plugin=cloud::docker::restapi::plugin \
--mode=node-status \
--hostname='192.168.0.50' \
--port='2375' \
--warning-node-status='' \
--critical-node-status='%{status} !~ /ready/ || %{manager_status} !~ /reachable|-/' \
--verbose

OK: Node '192.168.0.50' Containers Running : 7, Containers Stopped : 2, Containers Paused : 0 | 'containers_running'=7;;;0; 'containers_stopped'=2;;;0; 'containers_paused'=0;;;0;
Node '192.168.0.50' Containers Running : 7, Containers Stopped : 2, Containers Paused : 0

La commande ci-dessus requête un noeud Docker (--mode=node-status) sur le port 2375 (--port='2375') et fournit son état ('ready' ou pas) ainsi que l'état de ses containers en état "running","stopped" et "paused".

Une alerte CRITICAL sera déclenchée si l'état du noeud n'est pas 'ready' ou que le statut du manager renvoie un autre état que 'reachable' (--critical-node-status='%{status} !~ /ready/ || %{manager_status} !~ /reachable|-/')