Provavelmente você deve enviar a mensagem sem o hostname (foo) e no formato rfc3164 (não o rfc5424 como acima) para obtê-lo analisado.
Estou observando o seguinte comportamento ao fazer logon no syslog de um aplicativo externo: se eu enviar uma mensagem syslog bem formada para um soquete UDP, o rsyslog a analisa corretamente, no entanto, se a mesma mensagem for enviada para um soquete do domínio UNIX (/ dev / log), ele não é analisado de forma alguma (o rsyslog basicamente assume que tudo o que ele recebeu é uma mensagem, portanto, nenhum timestamp, nada).
A mensagem em questão é
<142>1 2010-12-29T11:11:11Z foo bar 123 baz - A Message
que é analisado como
Dec 29 11:11:11 foo bar[123] A Message
a menos que não seja.
Provavelmente você deve enviar a mensagem sem o hostname (foo) e no formato rfc3164 (não o rfc5424 como acima) para obtê-lo analisado.
Ao analisar mensagens, o rsyslog faz o melhor possível para dar sentido a isso.
Para uma mensagem recebida de um soquete Unix, o rsyslog aceita mensagens semelhantes a RFC 3164, usando estes campos: pri
, timestamp
, tag
e content
.
Ele aceita vários formatos de mensagem, como:
just a message
<pri>message
<pri>tag: msg
Sobre os timestamps da mensagem:
SysSock.IgnoreTimestamp
está ativada por padrão, seus timestamps serão ignorados até que você desative essa opção . O campo hostname
não pode ser substituído. O rsyslog sempre irá obtê-lo a partir de sua configuração.