txs:infra:monitoring_p17:logs:logspout

Logspout est un conteneur Docker ayant la particularité de rassembler tous les logs émis par les autres conteneurs déployés sur le même démon Docker, et de les router vers une/des destination(s) spécifiques. Son utilisation offre plus de possibilité que celles offertes par les logs driver de docker. De plus, toutes les tâches de “rassemblement” des logs et leur envoi sont entièrement prises en charge par le conteneur Logspout. Aucune configuration n’est requise sur les autres conteneurs du démon.

(Image extraite de: https://jujucharms.com/u/lazypower/logspout/)

Afin de pouvoir utiliser/reporter ses logs à la VM de monitoring, il est nécessaire de suivre les étapes suivantes:

  • Ajout de logspout au fichier docker-compose des services de la VM:
services:
  logspout:
    image: gliderlabs/logspout:master
    container_name: logspout
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: syslog+tcp://monitoring.picasoft.net:1234
    environment:
      - "SYSLOG_FORMAT=rfc3164"
      - "LOGSPOUT=ignore"

Explications de ces quelques lignes

  • gliderlabs/logspout:master est l’image de la branche master du projet Logspout
  • Afin de pouvoir récupérer les messages de log des autres containers, il est nécessaire de monter la socket Docker dans le conteneur Logspout
  • La commande <code>syslog+tcp:monitoring.picasoft.net:1234</code> permet de router les messages de log des conteneurs vers la VM de monitoring, sur le port 1234, en utilisant syslog au-dessus de tcp. * Les variables d’environnement “SYSLOG_FORMAT=rfc3164” et “LOGSPOUT=ignore” permettent respectivement de formater les messages de log selon la norme rfc3164, et de dire à Logsput d’ignorer (de ne pas router) ses propres messages de log Enfin, dans le but de ne perdre aucuns messages de logs lors du démarrage des conteneurs Docker, il est nécessaire d’ajouter, à tous les services dans le fichier docker compose : <code> depends_on: - logspout </code> De cette manière, leur lancement ne sera fait qu’après celui de Logspout, et ce dernier pourra donc router les messages de démarrage des services à Logstash
  • txs/infra/monitoring_p17/logs/logspout.txt
  • de qduchemi