使用历史索引监控 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

相关推荐
字节全栈_kYu32 分钟前
Hadoop大数据应用:HDFS 集群节点缩容
大数据·hadoop·hdfs
weixin_307779132 小时前
流媒体娱乐服务平台在AWS上使用Presto作为大数据的交互式查询引擎的具体流程和代码
大数据·python·音视频·aws
Allen_LVyingbo2 小时前
构建医疗AI编程可控价值观罗盘:多维度融合导向
安全·全文检索·健康医疗
飞翔的佩奇2 小时前
Java项目: 基于SpringBoot+mybatis+maven+mysql实现的图书管理系统(含源码+数据库+答辩PPT+毕业论文)
java·数据库·spring boot·mysql·spring·毕业设计·图书管理
weixin_307779133 小时前
AWS EMR使用Apache Kylin快速分析大数据
大数据·数据仓库·云计算·aws·kylin
一 乐3 小时前
基于vue船运物流管理系统设计与实现(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端·船运系统
jerry6094 小时前
注解(Annotation)
java·数据库·sql
vcshcn5 小时前
DBASE DBF数据库文件解析
数据库·dbase
weixin_307779136 小时前
AWS EMR上的Spark日志实时搜索关键指标网页呈现的设计和实现
大数据·python·spark·云计算·aws