在 Kibana 中追踪 Elasticsearch 查询的来源

编辑

在 Kibana 中追踪 Elasticsearch 查询的来源

编辑

有时,Elasticsearch 服务器可能会因执行耗时的查询而速度变慢。此类查询会记录到 Elasticsearch 的 搜索慢日志 文件中。但是这里存在一个问题:无法确定是什么触发了慢速搜索请求 - 是 Kibana 实例还是直接访问 Elasticsearch 端点的用户。为了简化对此类情况的调查,搜索慢日志文件包含了 x-opaque-id 标头,如果请求源自 Kibana,则该标头可能会提供有关请求的更多信息。

目前,Kibana 只能突出显示慢查询源自 Kibana 可视化、LensDiscoverMapsAlerting 的情况。

例如,如果对 Elasticsearch 的请求是由仪表板上的 Vega 可视化发起的,您将在慢日志中看到以下内容

"source": { "id": "c89d1ab3-b4a7-4920-a64a-22a910a413b0;kibana:application:dashboard:edf84fe0-e1a0-11e7-b6d5-4dc382ef7f5b;visualization:Vega:cb099a20-ea66-11eb-9425-113343a037e3" }

仔细查看字符串的格式。id 值以 c89d1ab3-b4a7-4920-a64a-22a910a413b0 开头,这是 Kibana 服务器设置的请求的唯一标识符。 kibana 前缀后面的部分表示该请求是由 ID 为 edf84fe0-e1a0-11e7-b6d5-4dc382ef7f5b仪表板 以及 ID 为 cb099a20-ea66-11eb-9425-113343a037e3 的 Vega 可视化触发的。

如果提供的信息不足以识别需要调整其参数的可视化,您可以配置 Kibana 日志以提供人类可读的描述和指向请求源的链接

logging:
  loggers:
    - name: execution_context
      level: debug
      appenders: [console]

现在,您可以看到对 Elasticsearch 的请求是由嵌入在 [Logs] Web Traffic 仪表板中的 [Logs] Unique Visitor Heatmap 可视化发起的。您可以导航到提供的 URL 以更改可视化的某些参数。

[DEBUG][execution_context] stored the execution context: {
  "type": "application",
  "name": "dashboard",
  "id": "edf84fe0-e1a0-11e7-b6d5-4dc382ef7f5b",
  "description": "[Logs] Web Traffic","url":"/view/edf84fe0-e1a0-11e7-b6d5-4dc382ef7f5b"
  "child": {
    "type": "visualization",
    "name": "Vega",
    "id": "cb099a20-ea66-11eb-9425-113343a037e3",
    "description": "[Logs] Unique Visitor Heatmap",
    "url": "/app/visualize#/edit/cb099a20-ea66-11eb-9425-113343a037e3"
  },
}