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

相关推荐
Rverdoser28 分钟前
电脑硬盘分几个区好
大数据
傻啦嘿哟29 分钟前
Python 数据分析与可视化实战:从数据清洗到图表呈现
大数据·数据库·人工智能
Theodore_102236 分钟前
大数据(2) 大数据处理架构Hadoop
大数据·服务器·hadoop·分布式·ubuntu·架构
cookqq1 小时前
mongodb源码分析session异步接受asyncSourceMessage()客户端流变Message对象
数据库·sql·mongodb·nosql
呼拉拉呼拉1 小时前
Redis故障转移
数据库·redis·缓存·高可用架构
什么都想学的阿超1 小时前
【Redis系列 04】Redis高可用架构实战:主从复制与哨兵模式从零到生产
数据库·redis·架构
簌簌曌1 小时前
CentOS7 + JDK8 虚拟机安装与 Hadoop + Spark 集群搭建实践
大数据·hadoop·spark
pp-周子晗(努力赶上课程进度版)2 小时前
【MySQL】视图、用户管理、MySQL使用C\C++连接
数据库·mysql
斯特凡今天也很帅2 小时前
clickhouse常用语句汇总——持续更新中
数据库·sql·clickhouse
冒泡的肥皂3 小时前
强大的ANTLR4语法解析器入门demo
后端·搜索引擎·编程语言