Não é possível obter dados estruturados do Rsyslog na mensagem do syslog

Não é possível obter dados estruturados do Rsyslog na mensagem do syslog

Eu sou novo no módulo syslog. Estou tentando registrar mensagens com dados estruturados usando este parâmetro no modelo. Mas está mostrando valor nulo para dados estruturados. Estou trabalhando com rsyslogd 5.8.11 e rsyslogd 4.8.4 e para ambas as versões estou obtendo os mesmos resultados.

Estou usando o modelo:

"<%PRI%>%TIMESTAMP:::date-rfc3339%%HOSTNAME%%syslogtag%%APP-NAME%%PROCID%%MSGID% %msg% %STRUCTURED-DATA%\n”

obtendo o formato da mensagem conforme abaixo:

<142>  2015-01-29T06:43:53.081641-05:00 localhost login[2116]: login 2116 -  [2116 : 2116 INFO]SERIAL Login from IP:127.0.0.1 user:admin -

alguém pode me dizer o que estou fazendo de errado? Só quero registrar mensagens com dados estruturados com SD-ID, SD-PARAM no arquivo de log.

Responder1

O rsyslog pode emitir mensagens RFC5424 com dados estruturados.

Mas você também tem uma maneira de enviar mensagens RFC5424pararsyslog? - Deve funcionar se você registrar suas mensagens diretamente via UDP ou TLS. Mas se você registrar através das funções tradicionais do BSD Syslog, não haverá nenhum dado estruturado, nem nenhum MSGID. (AFAIK NetBSD possui a única libc compatível com RFC5424 com umsyslogp()função.)

Responder2

Também estou tentando conseguir isso. Consegui descobrir como emitir mensagem no formato RFC5424 usando o template RSYSLOG_SyslogProtocol23Format. Porém, não sei como adicionar campos aos dados estruturados. Além disso, pelo que vale a pena, estou enviando/recebendo com sucesso o formato RFC5424 usando syslog-ng.

informação relacionada