Problèmes — Services Docker
Container en Restart Loop
bash
# Identifier le problème
docker logs [service] --tail 50
# Causes communes et solutions| Erreur dans les logs | Cause | Solution |
|---|---|---|
host not found in upstream | nginx DNS fail (LL#43) | Ajouter resolver 127.0.0.11 + set $var |
Permission denied /var/lib/logstash | Volume permissions | Ajouter user: root en dev |
database "grafana" does not exist | DB Grafana manquante (LL#73) | CREATE DATABASE grafana dans PostgreSQL |
manifest not found: freeradius:3.2 | Tag inexistant (LL#62) | Utiliser freeradius-server:3.2.3 |
flush ruleset casse Docker | nftables (LL#40) | Supprimer flush ruleset, utiliser delete table |
Container "Created" Après Reboot
bash
# Vérifier l'état réel (Created ≠ Up)
docker ps -a --format "{} {}" | grep -v Up
# Forcer le démarrage
docker compose -f docker-compose.core.yml up -d
docker compose -f docker-compose.monitoring.yml up -dGrafana — Problèmes Courants
bash
# Erreur: SSL is not enabled on the server
# → Changer GF_DATABASE_SSL_MODE: require → disable
# Erreur: database "grafana" does not exist
docker exec -i rgz-db psql -U rgz_admin -d postgres \
-c "CREATE DATABASE grafana OWNER rgz_admin;"
docker restart rgz-grafanaELK — Kibana Non Connecté
bash
# Initialiser kibana_system (une seule fois après Elasticsearch)
docker exec rgz-elasticsearch curl -sf \
-u "elastic:${ELASTIC_PASSWORD}" \
-X POST "http://localhost:9200/_security/user/kibana_system/_password" \
-H "Content-Type: application/json" \
-d "{\"password\": \"${KIBANA_PASSWORD}\"}"
docker restart rgz-kibanaLogstash — Erreurs Courantes
| Erreur | Cause | Solution |
|---|---|---|
Setting "fields.cluster" doesn't exist | fields: invalide dans logstash.yml | Déplacer dans filter mutate { add_field } |
path.config + pipelines.yml ensemble | Mutuellement exclusifs (LL#78) | Utiliser l'un OU l'autre |
document_type => "_doc" | Supprimé en ELK 8.x (LL#80) | Supprimer cette ligne |
Variables ${VAR} non résolues | Pas dans environment: (LL#81) | Ajouter dans environment: du service |
Logs Disque Plein
bash
# Identifier les gros fichiers log
sudo find /var/lib/docker/containers/ -name "*-json.log" \
-exec ls -lh {} \; | sort -k5 -rh | head -10
# Tronquer en urgence
sudo truncate -s 0 /var/lib/docker/containers/<id>/<id>-json.log
# Solution permanente: /etc/docker/daemon.json
sudo tee /etc/docker/daemon.json <<'EOF'
{
"log-driver": "json-file",
"log-opts": { "max-size": "10m", "max-file": "3" }
}
EOF
sudo systemctl restart docker
docker compose up -d --force-recreateDernière mise à jour: 2026-02-21