【问题标题】:In ELK, how can I search for a log that does not match another?在 ELK 中,如何搜索与另一个不匹配的日志?
【发布时间】:2018-12-11 03:40:52
【问题描述】:

假设我有一个操作前后的日志,如下所示:

[XXXX] 操作 A 开始
[XXXX] 操作 A 完成

假设每次执行 XXXX 都是唯一的,现在我想找出已经开始但还没有完成的执行。这意味着我需要找出具有“已启动”日志但没有“已完成”日志的 XXXX。我怎样才能做到这一点?

【问题讨论】:

  • 不回答你的问题,但我会调查elastic.co/blog/…
  • 此外,如果您只是在谈论简单的案例,例如开始和停止的操作,那么您可以使用聚合并搜索存储桶中只有 1 个项目的位置
  • 我尝试了使用 bucket_selector 的方式来获得仅包含 1 项的那些。它使用 Query DSL 工作,但遗憾的是我想将它与不支持它的 Grafana 一起使用。

标签: elasticsearch logstash elastic-stack


【解决方案1】:

您可以使用elapsed filter 来匹配开始/结束事件。过滤器允许您定义预期结束事件的时间段,如果没有收到,它将创建一个过期事件。

【讨论】:

  • 看起来正是我想要的!让我试试这个。谢谢!
  • 插件只能在结束事件中添加字段。查找仍在进行中(且未过期)的开始事件无济于事。
  • 已完成的事件将显示在结束事件中。超时的事件将有自己的结束事件。仍在运行的事件不会有结束事件。我现在找不到代码,但是我之前已经使用这三种状态构建了一个系统。 IIRC,我将运行两个查询(开始、结束)并将这两个结果关联起来以查找正在运行的事件。希望对您有所帮助。
猜你喜欢
  • 1970-01-01
  • 2011-10-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-17
  • 1970-01-01
  • 2020-03-02
  • 1970-01-01
相关资源
最近更新 更多