【发布时间】:2021-06-09 04:46:33
【问题描述】:
我正在使用 rsyslogd 通过 UDP 接收日志。
保存的每行日志中有很多字段(用管道分隔),我想知道是否有任何方法可以将 rsyslog 配置为仅保存接收到的约 20 个字段中的 2-3 个字段。
谢谢!
【问题讨论】:
我正在使用 rsyslogd 通过 UDP 接收日志。
保存的每行日志中有很多字段(用管道分隔),我想知道是否有任何方法可以将 rsyslog 配置为仅保存接收到的约 20 个字段中的 2-3 个字段。
谢谢!
【问题讨论】:
您可以使用property replacer 执行此操作,在这种情况下,其中最简单的可能是字段拆分。例如,%msg:F,45:1% 在字符代码十进制 45 上拆分后选择 msg 属性的字段 1(第一个),即 -。
| 符号是 ascii 代码 0x7c,即十进制 124。字段从 1 开始编号。如果需要多个字段,则需要为每个字段重复替换。您还需要放回 | 分隔符。
在模板中使用它。例如,如果您使用 RSYSLOG_TraditionalFileFormat 并想要字段 3 和 7,则创建您自己的:
template(name="mytemplate" type="string"
string="%TIMESTAMP% %HOSTNAME% %syslogtag% %msg:F,124:3%|%msg:F,124:7%\n")
【讨论】: