Elasticsearch:利用 AutoOps 检测长时间运行的搜索查询

news2025/1/6 16:00:19

作者:来自 Elastic Valentin Crettaz

了解 AutoOps 如何帮助你调查困扰集群的长期搜索查询以提高搜索性能。

AutoOps 于 11 月初在 Elastic Cloud Hosted 上发布,它通过性能建议、资源利用率和成本洞察、实时问题检测和解决路径显著简化了集群管理。

AutoOps 每分钟运行数百次分析之一,用于检查集群的设置、指标和健康警报,当长时间运行的搜索查询困扰你的集群时。长时间运行的搜索查询会严重影响性能,导致高资源消耗。让我们看看它的具体工作原理。

什么是 AutoOps?

它是如何工作的?

AutoOps for Elastic Cloud Hosted 的优点在于无需执行任何操作。在所有支持 AutoOps 的地区,AutoOps 代理会自动附加到任何新的或现有的部署,几分钟内,指标将开始发送,分析将启动,一旦检测到可疑情况,就会引发事件。

无需启用慢速日志并设置 Filebeat 来跟踪和索引它们,只需仔细并定期监控任务管理(Task Management) API 即可开箱即用。

为了知道是否为给定部署启用了 AutoOps,只需转到其 Elastic Cloud 控制台页面并单击 “Manage - 管理” 部署即可。如果屏幕右上角出现 “打开 AutoOps(Open AutoOps)” 按钮,则表示 AutoOps 已启用。

在 AutoOps 中打开部署视图(Deployment view)时,我们会立即看到所有最近事件的简要历史记录。在下面的屏幕截图中,我们可以看到最近打开了一个 “长时间运行的搜索任务 - Long running search task” 事件。

单击事件会打开一个弹出面板,其中显示已检测到的慢速搜索查询的 DSL 以及与该查询的执行上下文相关的大量信息。

长时间运行的搜索任务的剖析

下面的屏幕截图显示了 AutoOps 能够收集并显示在事件弹出面板中的所有信息。我们现在将更详细地回顾每个部分。

1. 涉及的节点

首先,我们获得检测到长时间运行查询的节点的链接,即 instance-0000000223。该链接允许我们直接跳转到 Nodes 视图(Nodes view),我们可以在其中找到有关该特定节点的大量指标和信息。

2. 涉及的索引

我们还可以看到查询在哪些索引上运行。在本例中,我们可以看到查询在 logs-apache.error-default、logs-nginx.error-default 和另外两个索引上运行。

单击这些索引将转到 Shards 视图(Shards view),该视图将允许我们查看已识别节点上这些索引的详细分片细分以及也位于该节点上的其他索引的所有分片。该视图将帮助我们检测是否存在可能导致查询缓慢的热点。

3. 查询延迟高的潜在原因

深入挖掘后,我们可以看到进行了一些基本的查询分析,并且 AutoOps 揭示了查询可能变慢的一些潜在原因。在这种情况下,我们可以看到:

  1. 查询以 30 天的时间间隔运行,这可能代表大量数据
  2. 存在嵌套聚合,众所周知,这些聚合性能不佳
  3. 响应可能包含多达 20,000 个聚合存储桶,这可能会对节点内存造成负担

对于使用正则表达式或脚本的查询,有更多检测规则。此外,新的检测规则将定期添加,并与索引映射一起考虑。

4. 查询上下文

最后,还有一些关于搜索查询上下文的信息需要收集,例如:

  1. 它运行了多长时间,
  2. 它是否可取消,
  3. 附加到 HTTP 调用的所有标头。在这种情况下,我们可以看到 trace.id 标头(这使得在 APM 中很容易找到它),还可以看到 X-Opaque-Id,其中包含发送此查询的客户端的指示。在这里,我们可以看到查询源自 Kibana 中的 SIEM 警报规则,但它也可能是可视化或仪表板,甚至是在 Dev Tools 中运行查询的用户。

也适用于 ES|QL

但等等,还有更多!AutoOps 不仅检测长时间运行的 DSL 查询,还检测 ES|QL 查询。在下面的屏幕截图中,我们可以看到 AutoOps 检测到了一个缓慢的 ES|QL 查询。

所有相同的上下文信息都可用于 ES|QL 查询,只是目前没有进行查询分析。因此,AutoOps 尚未提供任何有关如何改进 ES|QL 查询的见解,但很快就会添加。

接下来可以做什么?

由于此事件是在检测到长时间运行的搜索查询时引发的,因此有几个选项。检查查询时,如果它看起来像一个恶意查询或由粗心的用户从 Dev Tools 运行的查询,那么如果任务仍在运行,则可以简单地取消该任务。

另一方面,如果它看起来像一个合法查询并且不再运行,那么下一步应该是调查 “延迟增加的原因 - reasons for increased latency”,其中 AutoOps 列出了通过检查查询检测到的一些潜在问题。目前这仅适用于 DSL,未来将支持 ES|QL。

多长时间算长?

默认情况下,如果搜索查询已运行超过一分钟,AutoOps 将引发 “长时间运行的搜索任务 - Long running search task” 事件。这是默认配置设置,可以通过单击事件弹出面板右上角的三个点图标,然后选择 “自定义 - Customize” 来轻松修改,以更改默认持续时间阈值。

如果 AutoOps 正在监控多个集群,还可以将自定义设置仅应用于特定集群,而不是所有集群。

总结

正如我们所见,AutoOps 有助于检测长时间运行的搜索查询并挖掘出有关它们的大量信息。确保利用所有这些信息来改进你的搜索查询,并尽可能减轻集群的负载。

另请注意,“长时间运行的搜索任务 - Long running search task” 事件只是 AutoOps 知道要检测的数百个其他有见地的事件之一。如果你的部署位于受支持的区域之一,请随时转到你的 Elastic Cloud 帐户并启动 AutoOps,了解它如何使集群管理变得更加简单。还请继续关注有关其他非常有用的事件和建议的未来文章。

使用 AutoOps 管理 Elastic Cloud 很容易。获得即时性能洞察和成本可见性 - 免费试用 AutoOps 14 天。

原文:https://www.elastic.co/search-labs/blog/slow-search-elasticsearch-query-autoops

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

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

相关文章

Unity2022接入Google广告与支付SDK、导出工程到Android Studio使用JDK17进行打包完整流程与过程中的相关错误及处理经验总结

注:因为本人也是第一次接入广告与支付SDK相关的操作,网上也查了很多教程,很多也都是只言片语或者缺少一些关键步骤的说明,导致本人也是花了很多时间与精力踩了很多的坑才搞定,发出来也是希望能帮助到其他人在遇到相似问…

Spring实现Logback日志模板设置动态参数

版权说明: 本文由博主keep丶原创,转载请保留此块内容在文首。 原文地址: https://blog.csdn.net/qq_38688267/article/details/144842327 文章目录 背景设计日志格式实现配置动态取值logback-spring.xml 相关博客 背景 多个单体服务间存在少量…

element-ui dialog 组件源码分享

简单分享 dialog 组件源码,主要从以下三个方面: 1、dialog 页面结构。 2、dialog 组件属性。 3、dialog 组件挂载。 4、dialog 组件事件。 一、dialog 页面结构: 二、组件属性: 2.1 visible 是否显示 Dialog,支持…

Vue3 组件之插槽

文章目录 Vue3 组件之插槽概述默认插槽具名插槽默认内容插槽没有提供内容有提供内容 作用域插槽简单使用使用解构形式 Vue3 组件之插槽 概述 插槽专门用于父组件向子组件传递标签结构。在使用时,一般会在子组件中通过slot来声明占位,在父组件中&#x…

postgres docker安装

mkdir -p /root/postgresql/data docker pull postgres:14 docker run --privilegedtrue --name postgres -e POSTGRES_PASSWORD123456 -e ALLOW_IP_RANGE0.0.0.0/0 -p 5432:5432 -v /root/postgresql/data:/var/lib/postgresql/data -d postgres:14#地址:192.168.3…

探索Wiki:开源知识管理平台及其私有化部署

在如今的信息时代,企业和团队的知识管理变得愈发重要。如何有效地存储、整理、共享和协作,是提高团队效率和创新能力的关键因素之一。今天,我要为大家介绍一款非常有用的github上开源知识管理工具——Wiki,并分享它的私有化部署方…

Python多分类Logistic回归详解与实践

在机器学习中,Logistic回归是一种基本但非常有效的分类算法。它不仅可以用于二分类问题,还可以扩展应用于多分类问题。本文将详细介绍如何使用Python实现一个多分类的Logistic回归模型,并给出详细的代码示例。 一、Logistic回归简介 Logist…

打造三甲医院人工智能矩阵新引擎(三):多模态大模型篇-Med-Gemini多面手

一、引言 1.1 研究背景与意义 近年来,随着人工智能技术的迅猛发展,医疗多模态大模型如Med-Gemini应运而生,成为医疗领域的研究热点。这些模型整合了文本、影像、基因等多源数据,能够模拟人类医生的思维方式,为医疗决策提供全面、精准的支持,有望解决传统医疗模式中的诸…

Servlet解析

概念 Servlet是运行在服务端的小程序(Server Applet),可以处理客户端的请求并返回响应,主要用于构建动态的Web应用,是SpringMVC的基础。 生命周期 加载和初始化 默认在客户端第一次请求加载到容器中,通过反射实例化…

游戏如何检测iOS越狱

不同于安卓的开源生态,iOS一直秉承着安全性更高的闭源生态,系统中的硬件、软件和服务会经过严格审核和测试,来保障安全性与稳定性。 据FairGurd观察,虽然iOS系统具备一定的安全性,但并非没有漏洞,如市面上…

android studio android sdk下载地址

android studio安装后,因为公司网络原因,一直无法安装android sdk 后经过手机网络,安装android sdk成功如下,也可以手动下载后指定android sdk本地目录 https://dl.google.com/android/repository/source-35_r01.zip https://dl…

Redis面试相关

Redis开篇 使用场景 缓存 缓存穿透 解决方法一: 方法二: 通过多次hash来获取对应的值。 小结 缓存击穿 缓存雪崩 打油诗 双写一致性 两种不同的要求 强一致 读锁代码 写锁代码 强一致,性能低。 延迟一致 方案一:消息队列 方…

gitlab的搭建及使用

1、环境准备 服务器准备 CentOS Linux release 7.9.2009 (Core)&#xff0c;内存至少4G。 修改主机名和配置ip地址 hostnamectl set-hostname <hostname> 关闭主机的防火墙 # 关闭防火墙 systemctl stop firewalld #临时关闭防火墙 systemctl disable firewalld …

趣味编程:心形曲线

目录 1.序言 2.代码展示 3.代码详解 3.1 头文件包含 3.2 绘制坐标轴函数 3.3 main 函数主体部分 4. 小结 1.序言 2025年的第一篇博客就用这个笛卡尔心形图开篇吧&#xff0c;寓意着新年大家能够有心有所属&#xff0c;祝诸位程序猿 / 程序媛 能够早点遇到自己的另一半。…

跳跃表(跳表)是什么

为什么要有跳表 正常链表只能一个一个往下走但是如果我直到我的目标位置就在链表的中部但是我还得一步一步走过去很浪费时间&#xff0c;所以跳表就是在正常链表的基础上添加了多步跳跃的指针。 什么是跳表 跳表&#xff08;Skip List&#xff09;是一种概率型的数据结构&am…

如何逐步操作vCenter修改DNS服务器?

在vSphere 7中有一个新功能&#xff0c;它允许管理员更改vCenter Server Appliance的FQDN和IP。因此本文将介绍如何轻松让vCenter修改DNS服务器。 vCenter修改DNS以及修改vCenter IP地址 与在部署 vCenter Server Appliance 后&#xff0c;您可以根据需要修改其 DNS 设置和 IP…

支持图片生成、语音转文本和文本转语音节点,支持导出和导入应用,MaxKB知识库问答系统v1.9版本发布

2025年1月3日&#xff0c;MaxKB开源知识库问答系统正式发布v1.9版本。 在v1.9社区版中&#xff0c;应用方面&#xff0c;MaxKB新增图片生成节点、文本转语音节点、语音转文本节点&#xff0c;支持用户提问时上传音频文件&#xff0c;支持导出和导入应用&#xff1b;知识库方面…

WebGL 实践(一)开发环境搭建

WebGL 是一种基于 JavaScript 的 API&#xff0c;用于在浏览器中渲染 2D和3D 图形&#xff0c;很多场景都能用&#xff0c;例如游戏开发、数据可视化、在线教育和虚拟现实等应用领域。 零、基础知识 相关基础知识很重要&#xff0c;如果会html、JavaScript等技术掌握起来会更…

商米电子秤服务插件

概述 SunmiScaleUTS封装商米电子秤服务模块&#xff0c;支持商米旗下S2, S2CC, S2L CC等设备&#xff0c;设备应用于超市、菜市场、水果店等,用于测量商品的重量,帮助实现快捷、准确、公正的交易等一系列商业场景。 功能说明 SDK插件下载 一. 电子秤参数 型号:S2, S2CC, …

【开源监控工具】Uptime Kuma:几分钟设置实时监控你的网站性能

文章目录 前言1.关于Uptime Kuma2.安装Docker3.本地部署Uptime Kuma4.使用Uptime Kuma5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址 前言 大家好&#xff01;如果你是网站运维人员或者管理着多个站点&#xff0c;那么今天我要介绍的一款工具绝对…