
Ich habe Docker so konfiguriert, dass der Syslog-Protokolltreiber verwendet wird. Meine daemon.json sieht folgendermaßen aus:
{
"log-driver": "syslog",
"log-opts": {
"syslog-address": "tcp://192.168.1.10:1514",
"mode": "non-blocking",
"tag": "{{.ImageName}}/{{.Name}}"
}
}
EntsprechendDocker-Dokumente zum Tag-Parameter, dies sollte eine Ausgabe erzeugen, die den Hostnamen des Hostgeräts enthält. Dies geschieht nicht - meine Protokolle sehen folgendermaßen aus (abgeschnitten):
<27>Dec 22 19:27:44 authelia/authelia/authelia[3693936]: time="2022-12-22T19:27:44-05:00" level=info msg="...
Ich könnte den Hostnamen einfach in den Tag-Parameter schreiben, aber ich möchte diese Konfiguration auf vielen Maschinen verwenden. Übersehe ich etwas?
Antwort1
Ich habe das Problem herausgefunden. Die Lösung bestand (wie üblich) darin, mehr Dokumente zu lesen.
https://docs.docker.com/config/containers/logging/syslog/#options
syslog-format The syslog message format to use. If not specified the local UNIX syslog format is used, without a specified hostname. Specify rfc3164 for the RFC-3164 compatible format, rfc5424 for RFC-5424 compatible format, or rfc5424micro for RFC-5424 compatible format with microsecond timestamp resolution.
Wenn Sie kein Format angeben, wird der Hostname weggelassen.