结合使用logtash和grok自定义指标

时间:2019-02-14 19:38:18

标签: logstash logstash-grok

我正在尝试将一些代码集成到现有的ELK堆栈中,并且我们仅限于使用filebeats + logstash。我希望有一种配置grok过滤器的方法,该过滤器将允许不同的开发人员以预定义的格式记录消息,以便他们可以捕获自定义指标,并最终构建kibana仪表板。

例如,一个团队可能会记录以下消息:

metric_some.metric=2
metric_some.metric=5
metric_some.metric=3

另一个团队可能会从另一个应用程序记录以下消息:

metric_another.unrelated.value=17.2
metric_another.unrelated.value=14.2

是否有一种方法可以配置单个grok过滤器,以将metric_之后的所有内容与值一起捕获为新字段?我读过here的所有内容似乎都表明您需要提前知道字段名称,但是我的目标是能够开始记录新指标,而不必添加/修改grok过滤器。

注意:我意识到Metricsbeat在这里可能是一个更好的解决方案,但是由于我们正在与一个我们无法控制的现有ELK集群进行集成,因此这不是我的选择。

1 个答案:

答案 0 :(得分:2)

由于您的邮件似乎是一系列键值对,因此可以使用kv过滤器代替grok

使用grok时,需要命名目标字段,使用kv命名目标字段的名称将与key相同。

以下配置应适合您的情况。

filter { kv { prefix => "metric_" } }

对于事件metric_another.unrelated.value=17.2,您的输出将类似于{ "another.unrelated.value": "17.2" }