Rsyslog: Diferença entre o registro em log de um soquete do domínio UNIX ou um soquete INET (UDP)

1

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.

    
por shylent 26.04.2013 / 17:33

2 respostas

1

Provavelmente você deve enviar a mensagem sem o hostname (foo) e no formato rfc3164 (não o rfc5424 como acima) para obtê-lo analisado.

    
por 15.05.2013 / 21:44
0

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:

  1. Eles devem ter o formato RFC3164.
  2. Como a opção 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.

    
por 19.08.2013 / 16:28