Container Logging: Dominando os Logs ๐
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CONTAINER LOGGING MATRIX โ
โ โ
โ stdout/stderr โ driver โ aggregator โ storage โ analysis โ
โ โ
โ STATUS: CAPTURING CONTAINER INSIGHTS... โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Logging Basics ๐ฐ
Comandos Essenciais
# Logs bรกsicos
docker logs container_id
# Follow logs em tempo real
docker logs -f container_id
# Logs com timestamp
docker logs -t container_id
# รltimas N linhas
docker logs --tail 100 container_id
# Logs desde timestamp
docker logs --since 2023-01-01T00:00:00 container_id
Log Drivers ๐
Configuração de Driver
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
Drivers Disponíveis
Driver | Uso | Descrição |
---|
json-file | Default | Logs em formato JSON |
local | Local | Logs persistentes locais |
syslog | System | Logs para syslog |
journald | SystemD | Logs para journald |
fluentd | Aggregation | Logs para Fluentd |
splunk | Enterprise | Logs para Splunk |
Advanced Logging ๐
Fluentd Integration
version: '3'
services:
app:
logging:
driver: fluentd
options:
fluentd-address: localhost:24224
tag: docker.{{.Name}}
ELK Stack Setup
version: '3'
services:
filebeat:
image: elastic/filebeat
volumes:
- /var/lib/docker/containers:/var/lib/docker/containers:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
Logging Best Practices ๐ฏ
DO's โ
Configure log rotation
Use estruturado logging
Implemente log levels
Centralize logs
Monitore log size
Backup logs importantes
DON'Ts โ
Não ignore log rotation
Evite logs verbosos demais
Não armazene dados sensíveis
Não negligencie log parsing
Evite duplicação de logs
Troubleshooting Matrix ๐
Problema | Sintoma | Solução |
---|
Log cheio | Disk space | Configurar rotation |
Log lento | Performance | Ajustar buffer size |
Log perdido | Missing data | Verificar driver |
Log duplicado | Redundancy | Checar configuração |
Logging Patterns ๐
Structured Logging
{
"level": "info",
"timestamp": "2023-01-01T00:00:00Z",
"service": "api",
"message": "Request processed",
"details": {
"method": "GET",
"path": "/api/v1/users",
"duration": "125ms"
}
}
Log Aggregation
โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ
โContainer โโโโโบโCollector โโโโโบโ Store โ
โโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโ
โ โ โ
โโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโ
Distributed Logging Flow
Waifu Logging Tips ๐ก
Monitoring Integration ๐
logging:
metrics:
- name: log_messages_total
type: counter
labels:
level: ${level}
service: ${service}
Grafana Dashboard
{
"panels": [
{
"title": "Log Volume",
"type": "graph",
"targets": [
{
"expr": "rate(log_messages_total[5m])",
"legendFormat": "{{level}}"
}
]
}
]
}
Quick Commands ๐
# Debug logging
docker logs --debug container_id
# Export logs
docker logs container_id > app.log
# Multi-container logs
docker compose logs -f service_name
# Log stats
docker logs --details container_id
Checkpoint โ
Você agora domina:
16 abril 2025