使用grok和logstash的自定义指标

问题描述 投票:0回答:1

我正在尝试将一些代码集成到现有的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集群集成时,这对我来说不是一个选择。

logstash logstash-grok
1个回答
2
投票

由于您的消息似乎是一系列键值对,您可以使用kv过滤器而不是grok

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

以下配置适用于您的案例。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.