使用rsyslog转发结构化数据

我们有一个Java应用程序通过syslog将结构化数据(MDC与log4j)logging到本地主机上的rsyslog(7.6.3)。 然后localhost应该将这些日志消息转发到一个中央日志logging主机(也运行rsyslog(7.4.4)),它将格式化日志消息并将其分发到文件中。

问题是我们看到本地主机上的结构化数据(通过将%rawmsg%logging到文件中),但在日志logging服务器上收到的%rawmsg%没有结构化数据。 通过UDP完成排除。

我们如何通过rsyslog将结构化数据作为结构化数据传输?

远程转发的标准模板使用传统的BSD Syslog格式。 尝试使用预定义的模板 RSYSLOG_SyslogProtocol23Format以syslog-protocol格式转发结构化数据。 例如:

 *.* @logserver;RSYSLOG_SyslogProtocol23Format