logstash grok 过滤器忽略消息的某些部分

logstash grok filter ignore certain parts of message

我有一个以 syslog 开头的 drupal 看门狗日志文件,例如时间戳等,然后有一个竖线分隔的我在看门狗中记录的东西。现在我正在编写一个 grok 过滤器规则来从中获取字段。

我在邮件正文中有几个 URL,所以我使用 %{URI:request} 来获取这些 URL。然而,这会创建一个名为 port 的字段,该字段始终为 null,我不想将很多空字段放入我的 elasticsearch 数据库中,所以我想知道如何摆脱这个看起来像这样的空数组: "port": [null, null, null].

如果您想无条件删除一个字段,只需在您的 grok 块中添加一个 remove_field => ['port']

如果您想有条件地删除某些内容,您可以使用 ruby 过滤器在删除之前检查字段中的内容,或者在 mutate { remove_field => ['port'] } 周围使用 if过滤器。