Relution Logs

Docker

Docker schreibt standardmäßig keine Logs. Alles, was Sie in den Protokollen lesen können, 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. Starten Sie ein Terminal und loggen Sie sich ggf. ein
  2. Finden Sie heraus, 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. Sie können den Namen oder die ID des Containers verwenden, um das Protokoll zu starten. 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. Sie können das Log mit CTRL + C anhalten und nach oben scrollen.

Log in Datei speichern

Um die Protokolle in einer Datei im aktuellen Pfad zu speichern, verwenden Sie diesen Befehl

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

Wenn Sie die Datei auf Ihren PC übertragen wollen, verwenden Sie Filezilla, WinSCP oder einen anderen SCP-Client

Absolut! Hier ist der Text, schön formatiert als Markdown, zum Kopieren:


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 Sie die beiden WILDCARD-Wörter in der ersten Zeile durch *.

/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

Wenn Relution im Standardverzeichnis /opt/relution installiert wurde, finden Sie 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.