Logging Driver en Docker

Autor: | Última modificación: 20 de mayo de 2022 | Tiempo de Lectura: 4 minutos
Temas en este post:

La opción de Logging Driver, log-driver o controlador de registros en Docker se refiere a los mecanismos que tiene la plataforma para ayudar al usuario a que obtenga la información necesaria acerca de los contenedores y servicios que se estén ejecutando en el sistema.

Cada uno de los daemon o demonios de la plataforma de Docker contiene un controlador de registros preestablecido que usa cada contenedor, excepto en los casos donde el usuario lleva a cabo un ajuste que indique utilizar un Logging Driver diferente.

Características de Logging Driver en Docker

Dentro de las características de este recurso de Docker, se encuentra que el Logging Driver que elija el cliente va a determinar la forma en la que los contenedores del proyecto le dan el formato a los registros, así como la ubicación a donde se envían. De manera que el cliente tiene la posibilidad de aplicar cualquiera de los drivers que se encuentren disponibles para cada uno de los contenedores que se creen en el proyecto.

En adición a los Logging Driver que incluye Docker, el cliente puede hacer uso de los llamados complementos de controladores o Logging Driver plugin, que le ofrecen la posibilidad de ampliar y ajustar a sus necesidades las capacidades de registro de los drivers integrados en el sistema. De manera que un determinado proveedor de estos servicios de registro tiene la capacidad de añadir sus propios plugins en el Docker Hub o bien en un registro privado.

Se debe tener en cuenta también que, aunque la plataforma de Docker viene con múltiples Logging Driver integrados, en la versión de Docker Community solo es posible escoger 1 de estos controladores a la vez, mientras que, para la versión de Docker Enterprise, el usuario cuenta con la opción de dual Logging Drivers.

Ejemplos de Loggind Drivers en Docker

Algunos de los Loggin Drivers admitidos por la plataforma de contenedores son:

Json-file

De forma prestablecida, la plataforma de Docker implementa el Logging Driver de json-file, que se encarga del almacenamiento en caché de los registros de los contenedores en formato JSON de manera interna. Este formato de Logging Driver cumple con la función de anotar cada línea con su origen y su marca de tiempo específica. Cada archivo de registro incluye la información referente a un solo contenedor del sistema.

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

Al utilizar el Logging Driver de json-file, se debe tener en cuenta que este utiliza un almacenamiento basado en archivos que, a su vez, mantienen un diseño que le permite de forma exclusiva al docker daemon acceder a ellos. Por tanto, la interacción de estos recursos con elementos externos puede provocar una interferencia con el sistema de registros de la plataforma y un comportamiento inesperado. Por esta razón, Docker recomienda evitar estas interacciones.

Local

El Logging Driver denominado Local se encarga de capturar la salida del container para, posteriormente, escribirlo en un almacenamiento de tipo interno que se encuentra optimizado para mejorar el rendimiento y el uso del disco. De manera que, en este controlador, los registros se almacenan en un formato personalizado que se ha diseñado para una mínima sobrecarga. Si el usuario desea implementar Local como su Logging Driver predeterminado, debe indicar la instrucción de log-driver en los valores apropiados del interior del archivo.

Este controlador admite tres opciones principales para ampliar su funcionamiento, y estas son:

  • max-size: esta opción del Local Logging Driver de Docker se encarga de indicar el tamaño máximo del registro antes de que este se lance.
  • max-file: se refiere a la opción utilizada para establecer la cantidad máxima de archivos que tiene la posibilidad de estar presente.
  • compress: es la opción de Local que permite alternar la compresión de los archivos de registro que han sido rotados.

Journald

El Logging Driver de Journald tiene la función de enviar los registros de los contenedores al systemd journal. Las entradas de registros pueden recuperarse utilizando el comando journalct, así como mediante la API de journal o bien ejecutando la instrucción de docker logs.

Ese Logging Driver permite algunas opciones, como:

  • tag: esta opción permite que el usuario especifique la plantilla que se encarga de la configuración de los valores de CONTAINER_TAG y el SYSLOG_IDENTIFIER en los registros del Logging Driver de Journald.
  • labels: se refiere al listado separado por comas que indican las claves de etiqueta.
  • labels-regex: esta opción de Journald hace referencia a una expresión regular que se encarga de hacer coincidir las etiquetas que se encuentran relacionadas con el registro.
  • env: indica el listado separado por comas que especifican las claves de las variables de entorno.
  • env-regex: es compatible con la opción anterior y tiene la función de hacer coincidir las variables de entorno que estén relacionadas con el registro.

¿Cuál es el siguiente paso?

En este artículo has podido conocer qué es la opción de Logging Driver o controladores de registros en Docker, cuáles son sus características principales, su funcionamientos y algunos ejemplos de log-drivers en la plataforma. Ahora, no dudes en continuar tu proceso de formación en relación a esta y muchas más herramientas a través de nuestro DevOps & Cloud Computing Full Stack Bootcamp.

Con este bootcamp te llevará menos de 6 meses comprender todo lo necesario para volverte un experto del sector IT y obtener una ventaja competitiva dentro del mundo tecnológico. ¡Da el siguiente paso y anímate a inscribirte en este bootcamp para no dejar de aprender!

[email protected]