追踪 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 前缀后的部分表示该请求是由 Dashboard 触发的,其 id 为 edf84fe0-e1a0-11e7-b6d5-4dc382ef7f5b,Vega 可视化 id 为 cb099a20-ea66-11eb-9425-113343a037e3

如果提供的信息不足以识别要调整其参数的可视化,您可以配置 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"
  },
}