En aquest tema, explorarem com registrar i monitoritzar els contenidors Docker per assegurar-nos que funcionen correctament i per identificar i resoldre problemes de manera eficient. El registre i el monitoratge són components essencials per mantenir la salut i el rendiment de les aplicacions en entorns de producció.

  1. Introducció al registre de Docker

Què és el registre?

El registre (logging) és el procés de capturar i emmagatzemar missatges de registre (logs) generats per aplicacions i serveis. Aquests missatges poden incloure informació sobre errors, advertències, informació de depuració i altres esdeveniments importants.

Per què és important el registre?

  • Depuració: Ajuden a identificar i resoldre problemes.
  • Monitoratge: Permeten supervisar el rendiment i l'estat de les aplicacions.
  • Auditoria: Proporcionen un historial d'esdeveniments per a la revisió i l'auditoria.

Com registrar en Docker?

Docker proporciona diverses maneres de gestionar els registres dels contenidors:

  • stdout i stderr: Per defecte, Docker captura la sortida estàndard (stdout) i l'error estàndard (stderr) dels contenidors.
  • Drivers de registre: Docker suporta diversos drivers de registre per enviar els logs a diferents destinacions.

Exemples de drivers de registre:

Driver de registre Descripció
json-file Emmagatzema els logs en fitxers JSON (per defecte).
syslog Envia els logs a un servidor syslog.
journald Envia els logs a systemd-journald.
gelf Envia els logs a un servidor GELF (Graylog Extended Log Format).
fluentd Envia els logs a un servidor Fluentd.
awslogs Envia els logs a Amazon CloudWatch.
splunk Envia els logs a Splunk.

Configurant el driver de registre

Per configurar un driver de registre, pots utilitzar l'opció --log-driver quan executes un contenidor:

docker run --log-driver syslog my-container

També pots configurar el driver de registre per defecte a /etc/docker/daemon.json:

{
  "log-driver": "syslog"
}

  1. Introducció al monitoratge de Docker

Què és el monitoratge?

El monitoratge és el procés de supervisar el rendiment, l'ús de recursos i l'estat de les aplicacions i serveis. Això inclou la recopilació de mètriques com l'ús de CPU, memòria, xarxa i disc.

Per què és important el monitoratge?

  • Rendiment: Assegura que les aplicacions funcionen de manera òptima.
  • Disponibilitat: Detecta problemes abans que afectin els usuaris.
  • Escalabilitat: Ajuda a planificar la capacitat i l'escalabilitat.

Eines de monitoratge per a Docker

Hi ha diverses eines disponibles per monitoritzar els contenidors Docker:

Eina Descripció
Prometheus Sistema de monitoratge i alerta de codi obert.
Grafana Plataforma d'analítica i monitoratge de codi obert.
cAdvisor Monitoritza l'ús de recursos dels contenidors.
ELK Stack Conjunt d'eines per a la cerca, l'anàlisi i la visualització de dades de registre.
Datadog Plataforma de monitoratge i anàlisi de dades.
New Relic Plataforma de monitoratge d'aplicacions i infraestructura.

Configurant Prometheus i Grafana

Pas 1: Desplegar Prometheus

Crea un fitxer prometheus.yml per configurar Prometheus:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'docker'
    static_configs:
      - targets: ['localhost:9323']

Després, executa Prometheus amb Docker:

docker run -d -p 9090:9090 -v $(pwd)/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

Pas 2: Desplegar Grafana

Executa Grafana amb Docker:

docker run -d -p 3000:3000 grafana/grafana

Accedeix a Grafana a http://localhost:3000 i configura Prometheus com a font de dades.

  1. Exercicis pràctics

Exercici 1: Configurar el registre amb json-file

  1. Executa un contenidor amb el driver de registre json-file:

    docker run --log-driver json-file --name my-container nginx
    
  2. Consulta els logs del contenidor:

    docker logs my-container
    

Exercici 2: Monitoritzar un contenidor amb cAdvisor

  1. Executa cAdvisor amb Docker:

    docker run -d -p 8080:8080 --name=cadvisor --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro google/cadvisor:latest
    
  2. Accedeix a cAdvisor a http://localhost:8080 i explora les mètriques dels contenidors.

  1. Resum

En aquesta secció, hem après la importància del registre i el monitoratge en Docker, així com les diferents eines i tècniques disponibles per implementar-los. Hem vist com configurar drivers de registre i com utilitzar eines com Prometheus, Grafana i cAdvisor per monitoritzar els contenidors Docker. Aquests coneixements són essencials per mantenir la salut i el rendiment de les aplicacions en entorns de producció.

© Copyright 2024. Tots els drets reservats