灰日志;如何将提取器应用程序限制为源的子集

Graylog ; How to limit extractors application to a subset of sources

尝试在 Graylog 中使用提取器,我找不到将模式匹配限制到一个来源的方法。

基本上我会执行拆分和索引搜索来提取字段,但我希望此提取器仅用于我的源的子集。 这方面的文档似乎很差。

有什么想法吗?

谢谢 卢克

看来这不太容易做到。有两种选择:管道和单独的输入。显然,如果您在不同的输入中捕获不同的来源,那么您就可以避免这个问题。

第二种解决方案是使用管道(从 v2 开始)。这是 the author confirming this

This is possible since Graylog 2.0 by using pipeline rules. http://docs.graylog.org/en/2.1/pages/pipelines.html


p.s. 我认为可以存储和提取完整的消息,但不知道如何首先剪切 json 在提取之前。来自 docker 容器的示例消息可能如下所示(通过 syslog 将日志发送到 Graylog):

<30>1 2016-11-26T22:22:38.951321+01:00 www.example.com docker 19459 - -  {"name":"my-awesome-app","hostname":"docker24.example.com","pid":1,"level":30,"msg":"happily serving customers","time":"2016-11-26T21:22:38.950Z"}

所以整个字段不是一个合适的 JSON 并且 Graylog JSON 提取器会失败。你在这里有你的来源 - www.example.com,所以当匹配时可以将提取器配置为仅 运行,但问题是如何仅解析 JSON 部分..