按匹配分组消息?

Group messages by a match?

我有很多这样的留言:

Error GetMilesFromLocationService(Eastvale, CA,Yorkshire, NY,1561517,19406,True.)

问题是它们因城市名称而独一无二。在 Kibana 可视化中,是否可以将这些分组为 "Error GetMilesFromLocationService" 消息?这是我的指标视觉示例。理想情况下,它们都排成一排。

这些可以很容易地通过正则表达式匹配进行分组。

当然,我可以使用 Logstash 添加一个新字段,但如果 Kibana 能够做到这一点,我会很高兴。

谢谢!

使用 grok filter 解析消息并从中提取字段。至少您需要将 "Error GetMilesFromLocationService" 提取到一个单独的字段(也许 error_type?)以允许聚合。或者将 "GetMilesFromLocationService" 提取到 function 字段中可能会更好?在不知道日志消息结构的情况下很难给出坚定的建议。

这个 grok 过滤器提取一个 error_type 字段:

filter {
  grok {
    match => [
      "message",
      "^(?<error_type>Error %{WORD})"
    ]
  }
}