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:8080i 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
