【问题标题】:Is there a way to define a dynamic query in Kibana dashboard?有没有办法在 Kibana 仪表板中定义动态查询?
【发布时间】:2017-03-24 11:26:20
【问题描述】:

here 提出了一个类似的问题,但目前还没有答案。这个问题与旧版本的 Kibana 有关,所以我希望你能帮助我。

我正在尝试在 Kibana 仪表板中设置一些预定义的查询。我正在使用 Kibana 5.1。这些查询的目的是根据多个不同的参数过滤一些日志。

让我们看看我要执行的查询:

{
  "index": "${index_name}",
  "query": {
    "query_string": {
      "query": "message:(+\"${LOG_LEVEL}\")",
      "analyze_wildcard": true
    }
  }
}

我知道我可以直接在仪表板中查询 "message:(+"ERROR")" 之类的内容,并手动将 ERROR 更改为 WARN,但我不希望这样 - 想象一下这个查询可能更复杂并包含多个字段。

请注意,message 中存储的数据非结构化 - 将消息视为整个日志行。这意味着我没有像 LOG_LEVEL 这样可以直接过滤的字段。

有什么方法可以从 Kibana Discover 仪表板动态设置 index_nameLOG_LEVEL

【问题讨论】:

  • 你到底想做什么?在发现页面中有一堆过滤器与您的查询?通过 url 参数指定这些参数?要在下拉列表中选择要执行的查询?第一个应该是可能,第三个可以通过模板在 Grafana 中实现(但在 Kibana 中不行),第二个我认为不可能(直到他们实现了合理的 URL... )
  • 第一个会很好,应该足够了。第三个将是完美的,具有类似于 Grafana 的东西(或者至少是 OpenTSDB,它几乎相同但更丑)。
  • ATM 只有搜索历史可用,以及保存的搜索。无论如何,进入保存的搜索界面然后在那里调整参数有点烦人,所以我希望有更好的方法。
  • 如果您要发现并添加任何过滤器(转到其中一个文档并使用 + 单击镜像玻璃),您可以编辑它们,放置查询和该过滤器所需的别名(不知道你这样行不行)。这种方法的唯一问题是,每次要查找特定消息时,您都必须禁用一个过滤器并启用另一个过滤器。如果您有很多过滤器并且这很繁琐,您可以转到保存的对象并复制并粘贴过滤器数组的元素。
  • 感谢您的回答 :) 这并不完全是我正在寻找的 - 这将更多地与 Kibana 中的 UI 相关联,但它可以帮助我完成工作 :)

标签: elasticsearch kibana kibana-5


【解决方案1】:

您应该去发现,打开一个文档,然后在任何字段中单击此按钮。之后,搜索栏下方将出现一个过滤器,您可以对其进行编辑并放置任何自定义查询。如果您想使用更多自定义查询添加更多过滤器,您可以对不同的文档或字段重复相同的操作,或者您可以对设置(或管理)、保存的对象、转到您保存的搜索和 JSON 表示并复制和将元素粘贴到 filter 数组字段中任意多次。

请记住,为了应用其中一个过滤器,您可能应该禁用已启用的过滤器(否则它将按仪表板中所有已启用的过滤器进行过滤)。

【讨论】:

  • 谢谢你 :) 如果你得到了赏金,请告诉我,我已经通过我的手机奖励了它。
猜你喜欢
  • 1970-01-01
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-27
  • 1970-01-01
  • 2015-06-04
相关资源
最近更新 更多