使用历史索引监控 Elasticsearch 索引生命周期管理

作者:来自 Elastic Stef Nestor

大家好!在之前的一篇博客中,我们概述了常见的索引生命周期管理 (index lifecycle management - ILM) 问题及其解决方案。此后,我们已将这些常见场景添加到我们的 Elasticsearch 文档中,并附带示例演示视频。在这里,我们将扩展 ILM 历史索引(ILM history index),以演示如何在故障排除期间使用它,并在需要干预时设置主动警报。

监控 ILM Elastic Health Elastic Cloud 支持 故障排除

ILM 原理

ILM 通过逻辑和时间延迟自动执行常见的管理任务,例如将数据轮换到新索引、通过硬件温度老化索引以及在保留期后删除数据。

为了保护数据完整性,ILM 按顺序执行这些请求的阶段及其操作。与其他一些行业工具不同,这意味着如果索引在某个步骤上出现问题,ILM 将不会继续执行索引的后续步骤,直到当前问题得到解决。这可以避免高级操作的中间状态,并且具有保护作用,例如,当索引的 ILM 策略被标记为在删除之前等待快照时,以确保在备份中捕获数据以确保合规性。

历史索引

ILM 历史索引 ilm-history-* 存储索引的 ILM explain 数据的历史摘要。它在设置 indices.lifecycle.history_index_enabled 下默认启用。你可以通过针对此索引模式 data view 在 Kibana 中查看此数据。例如,在 Create data view下,我们将定位索引模式 ilm-history-7。

创建后,我们可以在 Discover 下查看数据。我更喜欢通过切换表列来浏览创建的索引模式:[index、policy、state.phase、state.action、state.step、success、error_details]。

此日志在排查索引在执行其步骤时遇到问题的原因时非常有用,例如,滚动更新遇到错误,setting [index.lifecycle.rollover_alias] for index [x] is empty or not defined. 。

这也有助于检查索引是否在特定子操作上停留的时间比预期的要长。例如,迁移持续时间延长可能表示集群或网络压力。或者,等待快照的时间延长可能表示存储库健康问题。

类似的 ILM 信息记录在 Elasticsearch 集群日志中,但格式不同。两者对于故障排除同样有效。我发现出于合规性原因,用户更喜欢保留比集群日志更长的 ILM 历史记录。让我们展示一下相似之处!在 Elastic Cloud 下,我启用了日志和指标,以便可以针对 elastic-cloud-logs-8 创建数据视图。

然后,在 Discover 中,我可以过滤到 log.logger:"org.elasticsearch.xpack.ilm.IndexLifecycleRunner"。

你会注意到 10 分钟的周期,这是由 ILM 的设置 indices.lifecycle.poll_interval 值来决定的。

检查问题

我们建议使用 v8.7 中引入的 Health API 来检查活动的 ILM 问题。这会针对错误和停滞步骤进行报告,因此比滚动浏览 ILM explain 更为全面。Dev Tools 会显示健康结果:

Elastic Cloud 将此信息加载到其部署健康状态中,该部署健康状态报告:

以下是来自 Dev Tools 的不健康报告的示例:

Elastic Cloud 相应地报告:

监控错误

我们建议设置监控 Kibana 规则,以便在需要干预以纠正索引的 ILM 错误时收到通知,这样它就可以继续其生命周期。此设置位于 Stack Monitoring 及其其他性能警报之上

例如,在 "Create Rule " 下,我们将选择 "Stack Alerts ",然后选择类型 Elasticsearch query

我们将规则命名为 "ILM erring"。向下滚动,我们将目标数据视图 ilm-history-7 包含 Lucene 查询错误和 log.logger:"org.elasticsearch.xpack.ilm.IndexLifecycleRunner"。在我们的示例中,我们希望收到任何匹配的通知,因此我们将阈值设置为 "is above 1."。

接下来,我们将启用通知 action。在我们的示例中,我们将使用 Elastic Cloud 的内置 SMTP 服务器来发送值班分配电子邮件。

就是这样!现在,当需要使用 ILM 历史索引进行干预以保持 ILM 健康时,示例团队将收到通知。当你的团队收到通知时,他们可能会对我们关于检查 ILM 健康状况的演示视频以及我们常见的设置问题和解决方案感兴趣。让我们所有人都安静地待命吧!

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

原文:Monitoring Elasticsearch index lifecycle management with the history index | Elastic Blog

相关推荐
rainbow72424412 小时前
系统学习AI的标准化路径,分阶段学习更高效
大数据·人工智能·学习
星沙丘秋12 小时前
Kettle9入门、使用经验与5个问题
数据库·sql·etl
sg_knight12 小时前
如何通过 SQL*Plus 连接 Oracle 数据库(使用 Instant Client)
运维·数据库·sql·oracle·database·关系型数据库·sql puls
Guheyunyi12 小时前
节能降耗系统从“经验直觉”推向“精准智控”
大数据·数据库·人工智能·科技·信息可视化
跨境摸鱼13 小时前
选品别只看“需求”,更要看“供给”:亚马逊新思路——用“供给断层”挑出更好打的品
大数据·人工智能·跨境电商·亚马逊·跨境·营销策略
jiunian_cn13 小时前
【Redis】zset数据类型相关指令
数据库·redis·缓存
betazhou13 小时前
MySQL相关性能查询语句
android·数据库·mysql
jiunian_cn13 小时前
【Redis】set数据类型相关指令
数据库·redis·缓存
松涛和鸣13 小时前
DAY69 Practical Guide to Linux Character Device Drivers
linux·服务器·arm开发·数据库·单片机·嵌入式硬件
咩咩不吃草14 小时前
Linux环境下MySQL的安装与使用与Navicat
linux·运维·数据库·mysql·navicat