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ó.
- 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:
També pots configurar el driver de registre per defecte a /etc/docker/daemon.json
:
- 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:
Pas 2: Desplegar Grafana
Executa Grafana amb Docker:
Accedeix a Grafana a http://localhost:3000
i configura Prometheus com a font de dades.
- Exercicis pràctics
Exercici 1: Configurar el registre amb json-file
-
Executa un contenidor amb el driver de registre
json-file
:docker run --log-driver json-file --name my-container nginx
-
Consulta els logs del contenidor:
docker logs my-container
Exercici 2: Monitoritzar un contenidor amb cAdvisor
-
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
-
Accedeix a cAdvisor a
http://localhost:8080
i explora les mètriques dels contenidors.
- 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ó.
Docker: De Principiant a Avançat
Mòdul 1: Introducció a Docker
- Què és Docker?
- Instal·lant Docker
- Arquitectura de Docker
- Comandes bàsiques de Docker
- Entenent les imatges de Docker
- Creant el teu primer contenidor Docker
Mòdul 2: Treballant amb imatges Docker
- Docker Hub i Repositoris
- Construint imatges Docker
- Conceptes bàsics de Dockerfile
- Gestionant imatges Docker
- Etiquetant i pujant imatges
Mòdul 3: Contenidors Docker
- Executant contenidors
- Cicle de vida del contenidor
- Gestionant contenidors
- Xarxes a Docker
- Persistència de dades amb volums
Mòdul 4: Docker Compose
- Introducció a Docker Compose
- Definint serveis a Docker Compose
- Comandes de Docker Compose
- Aplicacions multi-contenidor
- Variables d'entorn a Docker Compose
Mòdul 5: Conceptes avançats de Docker
- Exploració profunda de xarxes Docker
- Opcions d'emmagatzematge de Docker
- Millors pràctiques de seguretat de Docker
- Optimitzant imatges Docker
- Registre i monitoratge de Docker
Mòdul 6: Docker en producció
- CI/CD amb Docker
- Orquestrant contenidors amb Docker Swarm
- Introducció a Kubernetes
- Desplegant contenidors Docker a Kubernetes
- Escalat i equilibrat de càrrega