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

  1. Ein Terminal starten und sich ggf. einloggen
  2. 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 IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES
5858аа05c24сrelution/relution:latest“/relution-docker. sh…6 daysUp 9 seconds (health: starting)8080/tcp 0.0.0.0:4000->4000/ tcp. 8099/tcpdocker_ 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:

/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.

Top