故障排除指南:解决 Kibana Discover 加载中的 6 个常见问题

news2024/12/26 23:01:22

作者:Steffanie Nestor

Discover 是 Elastic® 的核心 Kibana® UI,用于搜索、过滤和检查(时间序列)数据。 可视化用于数据聚合/摘要。 Discover UI 对于大数据 Elasticsearch® 响应具有弹性,但有时会因(未压缩的)响应大小、映射爆炸和浏览器限制而遇到问题。

下面,我们将总结最常见的历史问题,包括长时间加载、超时和错误,并提供解决这些问题的顺序故障排除演练。 注意:本文的 API 是针对 v8.6 编写的,但一般故障排除流程适用于早期和更高版本。

建立并加载用户会话后,Kibana 将通过基本 URI /app/discover(或其相关的 Kibana Space 特定 URI)加载 Discover。 为了加载这个页面,浏览器页面会依次向 Kibana 服务器请求三个 API(并根据需要通过 Kibana 到下面的 Elasticsearch 服务器)。

常见问题 1:加载时出现页面错误


如果 Kibana 页面加载时出错,你需要打开浏览器的 network tab 以确认哪个顺序请求最终失败。 你可以通过导出 HAR 日志来分享你的发现。

1. 加载数据视图

浏览器页面将请求当前所选 Data View 的 Kibana 的 Saved Objects 端点(代码仍然以 “type:index-pattern” 为目标,因为该对象在早期版本中被命名为“Index Pattern”,但为了清晰起见,在 v8.0 中已重命名)。

POST /api/saved_objects/_bulk_get
[{"id":"${INDEX_PATTERN_ID}","type":"index-pattern"}]

注意:上述命令在 8.7 之后已经是 deprecated 状态。

此 Kibana API 搜索转发到 Saved Object 的后备 Alias .kibana 下的 Elasticsearch API。 我不确定查询翻译,但它会是这样的:

GET .kibana*/_search
{"query": {"bool": {"filter": [{"bool": {"should": [{
 "match_phrase": {"_id": "index-pattern:INDEX_PATTERN_ID"}
}]}}]}}}

注意:Saved Objects 通过 Data View 的 ID 查找,而不是 title 或 name。 如果你在 Kibana Spaces 或 Elasticsearch 集群之间导出/导入或复制已保存对象,则可能会出现有关你的底层 id 在导入过程中发生更改的 Visualization/Dashboard/Discover 错误(请参阅 Saved Objects 的导入模块以避免)。 为了展示这些字段的差异:

常见问题 2:缺少 Data View

如果这对你有影响,在页面加载期间,你会看到右下角的警告/错误模块,类似于:

"DATA_VIEW_ID" is not a configured data view ID

此错误是在当前 Kibana Space 的上下文中报告的,并且如果数据视图不存在于不同的空间中,则不符合要求。

2. 加载字段

接下来,Kibana UI 将加载支持索引相关字段的汇编。

API。 首先,它会 API 请求:

GET /api/index_patterns/_fields_for_wildcard?pattern=INDEX_PATTERN&meta_fields=_source&meta_fields=_id&meta_fields=_index&meta_fields=_score

每次用户选择左上角的数据视图时,此 API 都会重新触发。 在后端,Kibana 从 Elasticsearch 的 Field Caps API 返回索引。

常见问题 3:Mapping explosion

该 API 的响应时间受到映射爆炸的严重影响,这可以通过该 API 的未/压缩响应大小来部分诊断。 通常这与加载多少个不同的索引映射有关,但也可能是由于覆盖映射限制而导致的。 这通常返回(远)低于 3 秒,但你绝对应该考虑 ≥ 10 秒是慢的。

常见问题 4:字段冲突


历史上,索引之间的字段名称冲突曾发生过错误。 你想要修复底层索引映射,但也可以应用运行时字段作为临时覆盖来修复杂散索引的映射类型。

JS(Javascript)。 API 结果返回后,如果左侧抽屉(显示 “Selected Fields” 和 “Available Fields”)打开,则 JavaScript 浏览器将对这些字段进行汇总分析。 如果速度慢,当 API 请求结束时,这将显示在浏览器的 “Netword” 选项卡中,但以下 (3) 请求在多秒钟内没有开始尝试。 用户通常只会注意到 ≥10 秒。

JavaScript 编译时间通过浏览器 DevTool 的 “Performance” 选项卡进行诊断(例如 Chrome、Firefox、Edge;还可以导出类似 HAR 的等效项以进行共享)。

3. 加载搜索

最后,浏览器页面将发出 API 搜索请求。 此 API 搜索请求通过 Kibana 服务器,但(应该)花费与直接发出 Elasticsearch API 请求几乎相同的时间。

API。 该 URI 默认为:

POST /internal/bsearch {REQUEST_BODY_HERE}

但如果 Advanced Settings courier:batchSearches 设置为 false (<v8.0),那么这将改为请求以下 API:

POST /internal/_msearch {REQUEST_BODY_HERE}

(为了帮助快速页面搜索:#inspectViaDevTools。)如果此搜索需要一段时间来处理,通常我们会尽可能缩短回溯时间(例如 1-5 分钟)。 然后我们将导航  Discocer > Inspect。 我们将快速检查与 Statistics > Query time 相比的总加载时间(在下面的绿色框中)。

我们预计 “Query Time”(Elasticsearch 认为搜索所需的时间)与 Kibana 报告的时间之间存在差异,但我们需要检查后者是否与前者相差几个量级,这将表明 Kibana 等情况服务器负载、HTTP 压缩被禁用或一般渲染问题。

如果我们想进一步调查我们的搜索以隔离 Kibana 服务器负载与一般渲染问题,我们将进一步导航 Inspect > Request”>  在 Dev Tools 中打开。 视觉上:

然后,我们将在 DevTools 中运行此 API 搜索请求,并通过 Elasticsearch API curl 单独运行此 API 搜索请求,并注意 Discover、DevTools 和 Elasticsearch API 之间的总体响应时间差异。

常见问题 5:Elasticsearch API 查询速度慢


如果 Elasticsearch 也和其他两个一样慢,我们可能会怀疑原始 Discover 视图中的搜索/过滤器未优化。 如果未应用过滤器/搜索(或在未应用任何过滤器/搜索的情况下进行复制),我们将通过 CAT 节点、CAT 线程池(特别是搜索线程)和 CAT 任务(对于长时间运行的任务)确认 Elasticsearch 的总体性能。 如果没有发现集群范围的问题,我们将比较 Discover 中选择的不同 Data View 之间的搜索响应持续时间,然后比较这些搜索的相关查询分析(在我们的搜索请求正文中注入 profile: true 后)。

JS (Javascript)。 API 结果返回后,浏览器的 JavaScript 开始加载 1) 显示表摘要(中下 “Documents” 表,你可以在其中打开/关闭列视图)或 2) “Field Statistics”(测试版中,通过 discovery:showFieldStatistics 在 Advanced Settings 中切换)。

常见问题 6:渲染时间受 Mapping Explosion 影响


映射爆炸可能会导致大型结果集(resultset),这在过去导致浏览器性能下降(例如 kibana#144673)。 Mapping Explosion 可能会出现特定于浏览器的错误,例如 Chrome 的错误:maximum call stack size exceeded(超过最大调用堆栈大小),你可以隐身重现该错误,但在 Firefox/Safari 中不会发生,有时只能通过升级 Chrome 来解决。 但是,如果你在结果返回后遇到非常缓慢的渲染过程且没有错误,那么就需要记录浏览器性能配置文件以反思导致渲染缓慢的原因。 我们的团队很乐意通过 Kibana GitHub、Elastic Discuss 或打开支持案例帮助审核输出!

级联影响

(为了帮助快速页面搜索:#devToolsAuto。)在对潜在的映射爆炸进行故障排除时,当由于 URI 预计不会出现请求时,DevTools 的响应速度可能会慢于 Discover 和左上角的图标加载。

GET /api/console/autocomplete_entities?fields=true&indices=true&templates=true&dataStreams=true

这是通过 Dev Tools > Settings > Autocomplete 通过禁用(至少)字段并增加刷新频率来控制的。

这些请求可能会导致 1) 本地浏览器陷入困境,导致页面崩溃或 “等待页面?” 横幅和 2) Kibana 服务器,具体取决于频率和昂贵程度。 此更改特定于登录用户。

结论

Discover 是一种检查集群内多个索引数据的简单方法。 有一些配置和设置可能会使此 UI 加载速度比所需速度慢。 本指南详细介绍了这些各种问题的影响; 然而,良好的数据卫生可以避免所有这些问题。 有关更多数据卫生提示,请参阅我们的 Elasticsearch 文档。

本文中描述的任何特性或功能的发布和时间安排均由 Elastic 自行决定。 当前不可用的任何特性或功能可能无法按时交付或根本无法交付。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1005830.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VRTK4⭐一.VRTK4和VRTK的区别 , 及VRTK4简介

文章目录 &#x1f7e5; VRTK4和VRTK的区别1️⃣ 版本区别2️⃣安装方式区别 &#x1f7e7; 安装VRTK41️⃣ AssetStore网址2️⃣安装不同功能的包 &#x1f7e9;Tilia的独立功能包介绍及配置方法&#x1f381;Tilia.CameraRigs.SpatialSimulator.Unity [重要]&#x1f381;Til…

济南市图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

济南市图书馆《乡村振兴战略下传统村落文化旅游设计》许少辉八一新著

ASP.NET+sqlserver通用电子病历管理系统

一、源码描述 这是一款简洁十分美观的ASP.NETsqlserver源码&#xff0c;界面十分美观&#xff0c;功能也比较全面&#xff0c;比较适合 作为毕业设计、课程设计、使用&#xff0c;感兴趣的朋友可以下载看看哦 二、功能介绍 该源码功能十分的全面&#xff0c;具体介绍如下&…

【Java 基础篇】Java TreeSet 详解:红黑树实现的有序集合

Java 集合框架提供了多种数据结构&#xff0c;用于存储和操作数据。其中&#xff0c;TreeSet 是一种特殊类型的集合&#xff0c;它通过红黑树&#xff08;Red-Black Tree&#xff09;数据结构实现了有序的、唯一元素存储。本篇博客将深入探讨 TreeSet&#xff0c;包括其概念、特…

【C++技能树】手撕AVL树 --插入与旋转详解

Halo&#xff0c;这里是Ppeua。平时主要更新C&#xff0c;数据结构算法&#xff0c;Linux与ROS…感兴趣就关注我bua&#xff01; 文章目录 0.平衡搜索二叉树概念0.1 平衡因子 1.插入1.1 普通插入操作1.2更新平衡因子 2.旋转2.1 左单旋2.2 右单旋2.3 右左双旋2.4 左右双旋 3. 旋…

量化:Fama-French五因子模型复现

文章目录 参考三因子模型概述策略设计 五因子模型概述 参考 掘金-fama三因子 b站-fama三因子 知乎-fama五因子 因子溢价、因子暴露及用途 三因子模型 概述 在CAPM模型的基础上加入了两个因子提出了三因子模型&#xff0c;三因子分别为 市场因子MKT规模因子SMB&#xff08;S…

收货已完成,删除采购订单没有任何提示

收货已完成或发票已校验&#xff0c;此时删除订单系统是不允许的&#xff0c;正常会报错06115&#xff0c; 现在问题是生产机不报这个消息&#xff0c;直接删除了订单行&#xff0c;查了一下资料&#xff0c;都说这个配置是系统写死的&#xff0c;通过增加06115的消息号 也不起…

算法:经典贪心算法--跳一跳[2]

1、题目&#xff1a; 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转的最大长度。换句话说&#xff0c;如果你在 nums[i] 处&#xff0c;你可以跳转到任意 nums[i j] 处: 返回到达 nums[n - 1] 的最小跳跃次数。生…

Maven 安装配置

Maven 安装配置 文章目录 Maven 安装配置一、下载 Maven二、解压Maven核心程序三、指定本地仓库四、配置阿里云镜像仓库4.1 将原有的例子配置注释掉4.2 加入新的配置 五、配置 Maven 工程的基础 JDK 版本六、配置环境变量6.1 检查 JAVAHOME 配置是否正确6.2 配置 MAVENHOME6.3 …

一个综合资产收集和漏洞扫描工具

Komo 介绍 Komo是一个综合资产收集和漏洞扫描工具&#xff0c;并且支持进度记录&#xff0c;通过多种方式对子域进行获取&#xff0c;收集域名&#xff0c;邮箱&#xff0c;子域名存活探测&#xff0c;域名指纹识别&#xff0c;域名反查ip&#xff0c;ip端口扫描&#xff0c;w…

Python 图形化界面基础篇:添加按钮( Button )到 Tkinter 窗口

Python 图形化界面基础篇&#xff1a;添加按钮&#xff08; Button &#xff09;到 Tkinter 窗口 引言什么是 Tkinter 按钮&#xff08; Button &#xff09;&#xff1f;步骤1&#xff1a;导入 Tkinter 模块步骤2&#xff1a;创建 Tkinter 窗口步骤3&#xff1a;创建按钮&…

2023年9月12日

实现一个图形类&#xff08;Shape&#xff09;&#xff0c;包含受保护成员属性&#xff1a;周长、面积&#xff0c; 公共成员函数&#xff1a;特殊成员函数书写 定义一个圆形类&#xff08;Circle&#xff09;&#xff0c;继承自图形类&#xff0c;包含私有属性&#xff1a;半…

【C++】STL之string

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言string类的内部成员变量&#xff1a; string的模拟实现**六个默认成员函数****iterator****capacity****modify**element access**String operations**Non-memb…

分布式id的概述与实现

文章目录 前言一、分布式id技术选型二、雪花算法三、在项目中集成雪花算法 前言 随着业务的增长&#xff0c;数据表可能要占用很大的物理存储空间&#xff0c;为了解决该问题&#xff0c;后期使用数据库分片技术。将一个数据库进行拆分&#xff0c;通过数据库中间件连接。如果…

C语言顺序表

文章目录 前言线性表顺序表静态顺序表动态顺序表 接口实现 前言 我们先补一下上篇博客落下的知识点&#xff1a; 首先说一下斐波那契的时间复杂度和空间复杂度&#xff1a; long long Fac(size_t N) {if(0 N)return 1;return Fac(N-1)*N; }还是说一下size_t代表的类型是unsi…

C#,数值计算——伽马微分(Gammadev)的计算方法与源程序

1 文本格式 using System; namespace Legalsoft.Truffer { public class Gammadev : Normaldev { private double alph { get; set; } private double oalph { get; set; } private double bet { get; set; } private double a1 { g…

2023年第十届中文自修杯汉字小达人比赛安排、常见问题和试卷题型

好消息&#xff01;面向上海市小学生的2023年第十届中文自修杯汉字小达人比赛开始了&#xff01; 这个活动从2014年开始举办第一届&#xff0c;迄今已经举办了九届&#xff0c;活动的影响力越来越大&#xff0c;深受上海市的小学生们欢迎。而且&#xff0c;有一些外省市的学校…

软件测评报告需要提交什么材料?

软件测评报告 软件测评/软件测试的经典定义是在规定条件下对程序进行操作&#xff0c;以发现错误&#xff0c;对软件质量进行评估。因为软件是由文档、数据以及程序组成的&#xff0c;所以软件测试的对象也就不仅仅是程序本身&#xff0c;而是包括软件形成过程的文档、数据以及…

Liunx系统下载安装Nginx下载安装

目录 版本介绍 Liunx下安装步骤 补充&#xff1a;Docker安装nginx 版本介绍 Nginx开源版 http://nginx.org/en/ 官方原始的Nginx版本 Nginx plus商业版 开箱即用&#xff0c;集成了大量功能 Open Resty https://openresty.org/cn/ OpenResty是一个基于Nginx与 Lua 的高性…

ModuleNotFoundError: No module named ‘transformers.modeling_bert‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…