Como faço para que o Docker inclua o nome do host no syslog?

Como faço para que o Docker inclua o nome do host no syslog?

Eu configurei o docker para usar o driver de log syslog. Meu daemon.json fica assim:

{
  "log-driver": "syslog",
  "log-opts": {
    "syslog-address": "tcp://192.168.1.10:1514",
    "mode": "non-blocking",
    "tag": "{{.ImageName}}/{{.Name}}"
  }
}

De acordo comdocumentos docker no parâmetro tag, isso deverá produzir uma saída que inclua o nome do host do dispositivo host. Isso não acontece - meus logs ficam assim (truncados):

<27>Dec 22 19:27:44 authelia/authelia/authelia[3693936]: time="2022-12-22T19:27:44-05:00" level=info msg="...

Eu poderia simplesmente escrever o nome do host no parâmetro tag, mas gostaria de usar essa configuração em muitas máquinas. Estou esquecendo de algo?

Responder1

Eu descobri o problema. A solução foi (como sempre) ler mais documentos.

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.

Se você não especificar um formato, o nome do host será omitido.

informação relacionada