Relution Logs
Docker schreibt standardmäßig keine Logs. Alles, was sich in den Protokollen lesen lässt, ist im Systemlog des Containers enthalten.
Dies ist für die meisten Änderungen ausreichend. Es wird empfohlen, den Fehler zu provozieren, um ihn sichtbar zu machen, bevor man die Schritte durchführt.
Container-ID finden
- Ein Terminal starten und sich ggf. einloggen
- Herausfinden, welchen Namen und welche ID der Docker hat. Container ID und Name anzeigen
sudo docker ps
Das Terminal sollte nun die folgende Ausgabe anzeigen
| CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES |
|---|---|---|---|---|---|---|
| 5858аа05c24с | relution/relution:latest | “/relution-docker. sh… | 6 days | Up 9 seconds (health: starting) | 8080/tcp 0.0.0.0:4000->4000/ tcp. 8099/tcp | docker_ relution |
Die Informationen werden sich von denen im Beispiel unterscheiden. Zum Starten des Protokolls können der Name oder die ID des Containers verwendet werden. Im Beispiel wurde der Name verwendet
Log mit Containername starten
docker logs -f docker_relution
Die Option -f sorgt dafür, dass das Log immer fortlaufend angezeigt wird. Daher wird schnell viel Text im Terminal angezeigt. Das Log lässt sich mit CTRL + C anhalten, danach kann nach oben gescrollt werden.
Log in Datei speichern
Um die Protokolle in einer Datei im aktuellen Pfad zu speichern, diesen Befehl verwenden
docker logs -f docker_relution > my_logfile.txt
Es ist auch möglich, einen alternativen Pfad zu verwenden
docker logs -f docker_relution > /opt/relution/my_logfile.txt
Zum Übertragen der Datei auf den eigenen PC Filezilla, WinSCP oder einen anderen SCP-Client verwenden
Logrotation
Docker-Logs sind grundsätzlich flüchtig. Manchmal kann es sinnvoll sein, diese über einen längeren Zeitraum aufzubewahren. Nachfolgend ein Beispiel auf Basis einer Rocky Linux 9 + Docker Installation.
Logrotation für Docker-Host Logs konfigurieren
Docker speichert seine Standard-Logs unter /var/lib/docker/containers/<container-id>/<container-id>-json.log. Damit diese Logs handhabbar bleiben, kann die integrierte Log-Rotation von Docker über die Datei /etc/docker/daemon.json aktiviert werden:
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "30"
}
}
Danach den Docker-Dienst neu starten:
sudo systemctl restart docker
Logs täglich rotieren, zippen und ins Relution-Verzeichnis verschieben
Für die tägliche Archivierung kann logrotate verwendet werden. Hierfür muss es nachträglich auf dem Linux System installiert werden via:
sudo dnf install logrotate
Dafür muss zuerst ein Logs-Ordner erstellt werden:
sudo mkdir /opt/relution/logs
Anschließend muss eine Konfigurationsdatei unter /etc/logrotate.d/docker mit folgendem Inhalt erstellt werden:
* ersetzen./var/lib/docker/containers/WILDCARD/WILDCARD.log {
daily
missingok
rotate 30
compress
delaycompress
notifempty
copytruncate
create 640 root root
postrotate
TIMESTAMP=$(date +%Y-%m-%d-%H%M%S)
for file in $(find /var/lib/docker/containers/ -type f -name "*.log.*.gz"); do
DIR="/opt/relution/logs"
FILENAME="relution-${TIMESTAMP}.log.gz"
mv "$file" "${DIR}/${FILENAME}"
done
endscript
}
Mittels folgendem Test-Befehl kann eine Log sofort erstellt werden:
sudo logrotate --force /etc/logrotate.d/docker
Anschließend sollte im /opt/relution/logs-Ordner eine Log-Datei gespeichert sein:
ls -lah /opt/relution/logs
Linux
Wurde Relution im Standardverzeichnis /opt/relution installiert, finden sich die Logs in /opt/relution/log
Die aktuellste Logdatei heißt relution.log, während archivierte Logdateien relution.log.<Datum>.gz genannt werden.
Wenn Relution an einem anderen Ort installiert wurde, wird das Log-Verzeichnis relativ zu seinem Installationsverzeichnis gefunden
Windows
Wenn Relution im Standardverzeichnis C:\Programme\Relution installiert wurde, finden sich die Logs in C:\Programme\Relution\log.
Die aktuellste Protokolldatei heißt relution.log, während archivierte Protokolldateien relution.log.<Datum>.gz heißen.
Wenn Relution an einem anderen Ort installiert wurde, wird das Log-Verzeichnis relativ zu seinem Installationsverzeichnis gefunden.