Systemwartung¶
Anleitung zur Wartung einer Bifolk-Produktionsinstallation.
Zielgruppe: Systemadministratoren
Gesundheitsprüfungen¶
Schnellprüfung¶
# Container laufen
docker ps | grep bifolk
# Anwendung antwortet
curl -I http://localhost:8000
# Django-Systemprüfung
docker compose exec bifolk-app python manage.py check --database default
# Aktuelle Logs
docker logs bifolk-app --tail 50
Gesundheitsprüfungs-Zeitplan¶
| Häufigkeit | Aufgaben |
|---|---|
| Täglich | Container laufen, keine kritischen Fehler in Logs, Web-Oberfläche erreichbar |
| Wöchentlich | Datenbankverbindung, Festplattenspeicher > 20%, keine Leistungsprobleme |
| Monatlich | Vollständige Gesundheitsprüfung, Benutzerkonten überprüfen, Backup-Erfolg verifizieren |
Logs anzeigen¶
Anwendungslogs¶
# Letzte 100 Zeilen
docker logs bifolk-app --tail 100
# Logs in Echtzeit verfolgen (Strg+C zum Stoppen)
docker logs bifolk-app --follow
# Nach Fehlern suchen
docker logs bifolk-app 2>&1 | grep -i error
# Logs in Datei speichern
docker logs bifolk-app > bifolk-app-logs-$(date +%Y%m%d).log
Datenbanklogs¶
# Aktuelle Datenbanklogs
docker logs bifolk-db --tail 100
# Alle Dienste
docker compose logs --tail 50
Log-Rotation¶
Log-Rotation ist bereits auf Container-Ebene in den Docker-Compose-Dateien konfiguriert. Jeder Dienst ist eingestellt auf:
- Log-Treiber: json-file
- Maximale Größe: 10 MB pro Protokolldatei
- Maximale Dateien: 3 rotierte Dateien
Keine manuelle Konfiguration erforderlich — Logs werden automatisch rotiert und begrenzt.
Tip
Falls Sie Log-Rotation systemweit ändern müssen, können Sie /etc/docker/daemon.json als Alternative konfigurieren. Die Compose-Konfiguration hat jedoch Vorrang für einzelne Container:
Nach dem Bearbeiten Docker neu starten: sudo systemctl restart docker
Datenbankwartung¶
Vacuum und Analyze (PostgreSQL)¶
# Vacuum und Analyze aller Tabellen
docker compose exec bifolk-db psql -U bifolk -d bifolk -c "VACUUM ANALYZE;"
# Vollständiges Vacuum (erfordert exklusive Sperren, während Wartungsfenstern verwenden)
docker compose exec bifolk-db psql -U bifolk -d bifolk -c "VACUUM FULL ANALYZE;"
Datenbankgröße¶
# Gesamte Datenbankgröße
docker compose exec bifolk-db psql -U bifolk -d bifolk -c \
"SELECT pg_size_pretty(pg_database_size('bifolk')) AS database_size;"
# Größte Tabellen
docker compose exec bifolk-db psql -U bifolk -d bifolk -c "
SELECT tablename, pg_size_pretty(pg_total_relation_size(schemaname||'.'||tablename)) AS size
FROM pg_tables
WHERE schemaname NOT IN ('pg_catalog', 'information_schema')
ORDER BY pg_total_relation_size(schemaname||'.'||tablename) DESC
LIMIT 10;"
Sitzungen bereinigen¶
Statische Dateien und Mediendateien¶
Statische Dateien¶
# Statische Dateien sammeln
docker compose exec bifolk-app python manage.py collectstatic --no-input
# Löschen und neu sammeln
docker compose exec bifolk-app python manage.py collectstatic --no-input --clear
Mediendateien¶
# Mediendateinutzung prüfen
docker compose exec bifolk-app du -sh /bifolk/media/
# Berechtigungen korrigieren, wenn Uploads fehlschlagen
docker compose exec bifolk-app chown -R django:django /bifolk/media
Festplattenspeicher¶
# Host-Dateisystem
df -h
# Docker-Festplattennutzung
docker system df
# Unbenutzte Docker-Ressourcen bereinigen
docker system prune -f
docker image prune -a -f
Warning
Führen Sie docker volume prune nur aus, wenn Sie sicher sind, dass keine wichtigen Daten in unbenannten Volumes gespeichert sind.
Geplante Wartung¶
Cron-Beispiele¶
# Wöchentliches Datenbank-Vacuum (Sonntag 2 Uhr)
0 2 * * 0 docker compose exec -T bifolk-db psql -U bifolk -d bifolk -c "VACUUM ANALYZE;" >> /var/log/bifolk-vacuum.log 2>&1
# Wöchentliche Sitzungsbereinigung (Sonntag 3 Uhr)
0 3 * * 0 docker compose exec -T bifolk-app python manage.py clearsessions >> /var/log/bifolk-maintenance.log 2>&1
# Wöchentliche Docker-Bereinigung (Sonntag 4 Uhr)
0 4 * * 0 docker system prune -f >> /var/log/docker-cleanup.log 2>&1
Notfallverfahren¶
Anwendung nicht erreichbar¶
# Logs prüfen
docker logs bifolk-app --tail 100
# Container neu starten
docker restart bifolk-app
# Bei anhaltenden Problemen neu bauen
docker compose down && docker compose up -d --build
Datenbankprobleme¶
# Datenbankgesundheit prüfen
docker compose exec bifolk-db pg_isready -U bifolk
# Datenbank neu starten
docker restart bifolk-db
Festplatte voll¶
# Große Dateien finden
du -sh /* 2>/dev/null | sort -h
# Docker-Ressourcen bereinigen
docker system prune -a -f
Verwandte Dokumentation¶
- Backup & Wiederherstellung - Backup-Verfahren
- Fehlerbehebung - Häufige Probleme und Lösungen
- Aktualisierung - Versionsaktualisierungen