elasticsearch - Kibana - 日志分析 - 查找唯一事务号
问题描述
我有一个 EFK 设置来集中存储和查询所有应用程序服务的日志。有一些服务处理来自消息的事件。
我想查询每个服务有多少唯一事件(事务号:UUID)失败,考虑到将有重复的错误消息,因为消息代理配置为在任何运行时异常时重新传递消息 5 次。我用它的名字过滤了服务,但是Painless
由于这个错误,我不能用脚本从消息中子串事务号,Fielddata is disabled on text fields
...。Alternatively use a keyword field
是否建议为日志消息字段设置关键字?如何在 Kibana 中查询这些东西?
解决方案
需要 Fielddata=true 才能在文本字段上启用排序、聚合和脚本。缺点是它使用了大量的堆空间并且会导致昂贵的操作。
您查找每个服务的唯一事件的查询对我来说听起来像是一种聚合。您想知道每个服务、每个事务 UUID 的“文档”(行/项目)数量,您从错误消息中获得子字符串,对吗?我建议您为事务 UUID 创建一个类型为关键字的新字段。这样,您可以在索引时执行子字符串,这将为您提供更好的性能。然后,您可以在新创建的事务 UUID 字段上使用子聚合对服务进行聚合,这将为您提供计数。
当然,这只有在你经常使用这个领域时才有意义,但我想你会的。
推荐阅读
- json - 当发送字段与wiremock中的期望JSON不匹配时如何检查JSON字段?
- wordpress - 更改自定义分类的菜单 URL
- d3.js - 将多行附加到 D3 中的同一“g”元素中
- r - r中具有不同长度和计算的多重匹配
- api - 使用 webhook 从 google 聊天 api 检索消息
- typescript - 错误错误:未捕获(承诺中):TypeError:无法读取未定义的属性-Typescript
- reactjs - redux-toolkit prepareHeaders 不是一个函数
- javascript - Firebase:没有创建 Firebase App '[DEFAULT]' - 调用 Firebase App.initializeApp() 错误
- angular - 如何在 ngBootstrap datepicker 中设置一周的第一天
- django - django“字段 'id' 需要一个数字,但得到了 'yoavlv'。”