【问题标题】:Can I save only certain fields from a syslog with rsyslogd?我可以使用 rsyslogd 仅保存系统日志中的某些字段吗?
【发布时间】:2021-06-09 04:46:33
【问题描述】:

我正在使用 rsyslogd 通过 UDP 接收日志。

保存的每行日志中有很多字段(用管道分隔),我想知道是否有任何方法可以将 rsyslog 配置为仅保存接收到的约 20 个字段中的 2-3 个字段。

谢谢!

【问题讨论】:

    标签: debian syslog rsyslog


    【解决方案1】:

    您可以使用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")
    

    【讨论】:

    • 非常感谢@meuh,我会试一试的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多