Graylog,在存储文件之前先对其进行处理

问题描述

我正在尝试使用Gray日志创建日志系统, 我有这样的日志

Mon Aug 17 16:53:10 2020
        NAS-IP-Address = 172.20.101.1
        User-Name = "netconf"
        Acct-Status-Type = Start
        Acct-Session-Id = "ACCTID20200817112721000fe14d000000001040717"
        Acct-Authentic = RADIUS
        NAS-Identifier = "NR-DELHI-NRTCC-CR-01"
        Framed-IP-Address = 172.20.16.6
        NAS-Port-Type = Virtual
        Event-Timestamp = "Aug 17 2020 16:57:21 IST"
        Tmp-String-9 = "ai:"
        Acct-Unique-Session-Id = "23be63c276bbda95385d118ff93ba298"
        Timestamp = 1597663390

Mon Aug 17 16:54:15 2020
        NAS-IP-Address = 172.20.101.1
        User-Name = "netconf"
        Acct-Status-Type = Start
        Acct-Session-Id = "ACCTID20200817112825000fe14f000000001040719"
        Acct-Authentic = RADIUS
        NAS-Identifier = "NR-DELHI-NRTCC-CR-01"
        Framed-IP-Address = 172.20.16.6
        NAS-Port-Type = Virtual
        Event-Timestamp = "Aug 17 2020 16:58:25 IST"
        Tmp-String-9 = "ai:"
        Acct-Unique-Session-Id = "49fcad388a523e7eebea6043529c323e"
        Timestamp = 1597663455

实际上,每个块都是一个日志记录,但是问题是Graylog将每一行都视为一个单独的日志,所以我要告诉Graylog将每个块作为一条记录读取。 有没有办法做到这一点,我必须在Gray log中进行一些配置才能实现我的目标。 我有一个主意,但不确定,我正在考虑创建一个bash脚本,该脚本将读取文件并合并属于一个块的行, 但是我不确定该方法是否行得通,所以我想知道是否有任何方法可以通过Graylog本身来实现。 任何建议将不胜感激 最好的问候

解决方法

如果日志文件中的消息以空行开头,则可以使用readmode模块的imfile参数:https://www.rsyslog.com/doc/v8-stable/configuration/modules/imfile.html#readmode