无法在系统日志消息中获取Rsyslog结构化数据

我是syslog模块的新手。 我正在尝试使用模板中的此参数来logging具有结构化数据的消息。 但是它显示结构化数据的空值。 我正在与rsyslogd 5.8.11和rsyslogd 4.8.4和两个版本我得到相同的结果。

我正在使用模板:

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

获取消息格式如下:

 <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 - 

有人可以告诉我我在做什么错吗?我只是想用具有SD-ID,SD-PARAM的结构化数据在日志文件中logging消息。

rsyslog可以发出带有结构化数据的RFC5424消息。

但你也有办法发送RFC5424消息 rsyslog? – 如果您通过UDP或TLS直接login您的消息,它应该工作。 但是,如果您通过传统的BSD Syslogfunctionlogin,则不会有任何结构化数据,也不会有任何MSGID。 (AFAIK NetBSD具有唯一的带有syslogp()函数的支持RFC5424的 libc。)

我也试图做到这一点。 我设法找出如何使用模板RSYSLOG_SyslogProtocol23Format发出RFC5424消息格式。 但是,我不知道如何将字段添加到结构化数据。 另外,为了使用syslog-ng成功地发送/接收RFC5424格式,这是值得的。