首页 > 解决方案 > Kibana - 日志分析 - 查找唯一事务号

问题描述

我有一个 EFK 设置来集中存储和查询所有应用程序服务的日志。有一些服务处理来自消息的事件。

我想查询每个服务有多少唯一事件(事务号:UUID)失败,考虑到将有重复的错误消息,因为消息代理配置为在任何运行时异常时重新传递消息 5 次。我用它的名字过滤了服务,但是Painless由于这个错误,我不能用脚本从消息中子串事务号,Fielddata is disabled on text fields...。Alternatively use a keyword field是否建议为日志消息字段设置关键字?如何在 Kibana 中查询这些东西?

标签: elasticsearchkibanakibana-5elasticsearch-painless

解决方案


需要 Fielddata=true 才能在文本字段上启用排序、聚合和脚本。缺点是它使用了大量的堆空间并且会导致昂贵的操作。

您查找每个服务的唯一事件的查询对我来说听起来像是一种聚合。您想知道每个服务、每个事务 UUID 的“文档”(行/项目)数量,您从错误消息中获得子字符串,对吗?我建议您为事务 UUID 创建一个类型为关键字的新字段。这样,您可以在索引时执行子字符串,这将为您提供更好的性能。然后,您可以在新创建的事务 UUID 字段上使用子聚合对服务进行聚合,这将为您提供计数。

当然,这只有在你经常使用这个领域时才有意义,但我想你会的。


推荐阅读