性能优化 · 监控与可观测

待环境验证

Elasticsearch 磁盘水位与索引保留治理

结合 Elasticsearch 磁盘水位、分片分配与索引生命周期分析日志存储压力,制定容量恢复和保留策略验收标准。

Elasticsearch日志管理监控告警
阅读导引 · 理解后再操作

这篇知识解决什么问题

磁盘水位排障要从受影响节点和索引出发,解释为什么分片不能迁走以及日志写入在哪个环节被阻断。把有效阈值、数据层落点和生命周期实际状态联合阅读,再核对采集积压与保留责任,避免通过提高阈值或删除不明索引掩盖容量问题。

水位和放置规则要一起解释

磁盘保护针对实际节点及受影响索引,分片迁移还受数据层、分配过滤和副本放置约束。先读取有效设置及节点容量,再判断是否存在合格接收位置。不同单位表达的水位方向不能混用,也不能用全群平均值掩盖某个包含关键分片节点的风险。

容量恢复与数据保留是两份责任

减少占用可能缓解写入压力,但删除是否允许取决于业务保留、当前写目标及恢复来源。生命周期策略与实际索引绑定、所处阶段都需要核对,策略存在不代表数据已按期迁移或清理。恢复配置不能恢复已删数据,因此容量处置必须保留精确对象和审批依据。

进入文章正文
关联架构图解7 个组件 · 点击展开

借用集中日志图,查看 Elasticsearch 写入受阻如何向上游缓冲传递压力,以及生命周期如何影响可检索数据。本图把存储集群聚合成一个节点,未展开分片、数据层与磁盘分配关系,需要实际节点报告补足。

查看场景架构与实施步骤
参考架构 · 非实时拓扑

源端保留、有界缓冲与集中检索架构

日志先经 Fluent Bit 解析和脱敏,再通过本地有界缓冲写入 Elasticsearch;Kibana 提供受授权检索,字段契约与生命周期共同约束数据范围。

  • 数据 / 请求
  • 控制 / 管理
  • 观测 / 查询

点击组件,在图下方查看职责;连线编号对应流向解读。小屏可横向滚动,或直接展开文字说明。

源端保留、有界缓冲与集中检索架构:组件关系图日志先经 Fluent Bit 解析和脱敏,再通过本地有界缓冲写入 Elasticsearch;Kibana 提供受授权检索,字段契约与生命周期共同约束数据范围。 服务日志源 → Fluent Bit:日志事件;Fluent Bit → 位点与磁盘缓冲:保存位点与待发块;位点与磁盘缓冲 → Elasticsearch:TLS 输出与重试;Kibana → Elasticsearch:授权检索;字段与保留契约 → Fluent Bit:解析与脱敏规则;字段与保留契约 → Elasticsearch:模板与生命周期;值班排障 → Kibana:定位事件与缺口。箭头说明见下方流向解读。
逻辑参考图,缓冲为采集器本地机制,不表示另有消息队列;图示不证明日志已完整送达或具备不可篡改审计能力。

服务日志源

数据 / 制品

保存带事件标识的原始日志,登记轮转、源端保留和可重放范围;源文件被覆盖后不一定能够补采。

全部组件职责 7 个组件
服务日志源
保存带事件标识的原始日志,登记轮转、源端保留和可重放范围;源文件被覆盖后不一定能够补采。
Fluent Bit
按样例验证解析、多行和时间字段,敏感字段在输出前处理;解析失败必须能定位。工具介绍 Fluent Bit
位点与磁盘缓冲
位点记录输入读取位置,文件系统缓冲保存待输出数据;二者职责不同,需要独立持久目录和容量告警。
字段与保留契约
约定字段类型、脱敏、可查询角色、保留期和负责人;配置变更与数据删除的恢复能力要分开评估。
Elasticsearch
接收结构化日志并提供查询;提前配置模板、分片及生命周期,写入与读取权限分开验证。工具介绍 Elasticsearch
值班排障
根据服务、时间和事件标识核对源端与后端证据,区分业务没有日志、采集积压和输出拒绝。
Kibana
提供有时间范围的排障视图,后端权限必须实际限制数据可见性,前端筛选不是租户隔离。工具介绍 Kibana
流向解读 7 条连接
  1. 1

    服务日志源 Fluent Bit

    数据 / 请求 · 日志事件

    箭头表示日志数据从源端进入采集器,读取权限和首读范围由所选输入配置限定。

  2. 2

    Fluent Bit 位点与磁盘缓冲

    数据 / 请求 · 保存位点与待发块

    输入位点与待输出 chunk 分别落在受控状态目录,不让多个输入错误共享同一位点文件。

  3. 3

    位点与磁盘缓冲 Elasticsearch

    数据 / 请求 · TLS 输出与重试

    由 Fluent Bit 输出插件发送缓冲事件;重试可能产生重复,容量耗尽或拒绝可能造成缺口。

  4. 4

    Kibana Elasticsearch

    观测 / 查询 · 授权检索

    按用户权限请求查询,检索结果需结合事件时间和采集延迟解释。

  5. 5

    字段与保留契约 Fluent Bit

    控制 / 管理 · 解析与脱敏规则

    将已验证样本对应的配置版本用于输出前处理,规则错误应局限于测试或本批日志源。

  6. 6

    字段与保留契约 Elasticsearch

    控制 / 管理 · 模板与生命周期

    为目标索引建立类型、权限和保留配置;自管理集群 ILM 与 Serverless 生命周期应分别选择。

  7. 7

    值班排障 Kibana

    观测 / 查询 · 定位事件与缺口

    通过保存的检索入口回查事件序列,并对照源端、位点和缓冲判断缺失原因。

故障域与操作边界

缓冲容量不是不丢数据保证

后端长时间不可用时,源端轮转与输出队列上限共同决定可恢复范围。达到队列上限可能淘汰旧块,不能清空状态目录来掩盖积压。

配置回退不能恢复已删除日志

撤回生命周期策略只能阻止后续动作;已经删除的数据需依赖实际备份。检索副本也不等于不可篡改审计存储。

查询筛选不是访问隔离

敏感字段应在集中输出前处理,跨服务或租户读取限制在后端授权验证,不能只依赖 Kibana 保存视图。

架构依据与版本核对 3 篇官方资料

图解是本站基于官方资料整理的逻辑参考;实施前仍需核对实际部署版本、组件支持范围与变更审批。

适用范围与前提

用于 Elasticsearch 日志集群出现磁盘告警、分片迁移或写入被磁盘保护阻断时的诊断与容量治理。执行前确认部署方式、版本、数据节点角色、保留要求和可恢复快照。以下 API 示例用于 Kibana Dev Tools 的只读检查;大写索引名称为占位符。不同部署的可配置能力有差异,实际集群设置优先于本文示例。

正确理解磁盘水位

low 水位主要限制向空间不足节点继续分配分片,high 水位会促使分片迁出,flood-stage 则可对受影响索引施加写入保护。常见默认使用率为 85%、90% 和 95%,但要同时核对显式设置、可用空间上限规则及节点角色。百分比表示已用空间,字节配置表示剩余空间,不要混淆方向。某个节点过满可能影响包含其分片的整个索引,不能仅看全群平均使用率。

先定位空间与分配原因

先读取有效设置、节点磁盘和分片分布,再关联写入拒绝与系统日志中的时间。检查磁盘增长来自业务数据、其他文件还是异常积压,并确认同一数据层是否存在可接收分片的容量。

GET _cluster/settings?include_defaults=true&flat_settings=true
GET _cat/allocation?v
GET _cat/shards?v
GET _cluster/health
GET INDEX_NAME/_ilm/explain

分片未能迁走时,应继续核对分配过滤、数据层规则、副本约束和节点健康;增加了不符合条件的节点,不一定能缓解当前水位。保留原始输出,避免在同时调整多个参数后丢失判断依据。

按可恢复性选择止血动作

优先评估扩容合适的数据层、减少非必要写入或清理已确认可清理的非索引文件。涉及索引删除时,先核对精确名称、归属、保留期、当前写入目标和快照恢复能力,再使用团队批准的操作流程。不要从数据目录手工删除分片文件,也不要把提高水位或关闭磁盘阈值当作容量修复。空间恢复后再确认写入保护是否自动解除,并通过受控业务探针验证写入链路。

将保留要求落实为生命周期

按数据集定义可检索期限、冷热访问需求与归档方式,再配置适合部署的生命周期策略。使用 ILM 时,应核对 rollover 条件、模板绑定及后续阶段,不能只创建策略而不检查实际索引是否使用。已经 rollover 的索引,后续阶段的年龄计算需要结合 rollover 时间理解。删除阶段不等于备份;如果数据必须可恢复,另行验证快照和恢复流程。定期检查停留在错误步骤或长期等待条件的索引。

验收与容量复盘

验收覆盖各数据节点水位下降、分片恢复进度、受影响索引写入、采集积压排空和生命周期运行状态。观察窗口应覆盖常规写入峰值,并确认恢复过程中磁盘没有再次快速逼近阈值。复盘容量时记录每日净增长、最大分片、保留数据量、副本开销与恢复余量;根据趋势提前安排扩容,而不是把默认水位当作日常容量目标。

停止与回退条件

如果没有可验证的恢复副本、索引归属不清或删除范围无法精确限定,停止数据删除。若迁移期间持续出现节点失联或集群健康恶化,暂停扩大变更并先排查节点与存储。生命周期或模板变更可以恢复先前配置,但已经删除的数据只能依赖可用备份恢复;恢复配置不会撤销删除。任何临时参数调整都应记录原值、期限和负责人,并在容量稳定后复核。

参考资料

从现象到判断

先收集证据,再缩小范围。以下是判读路径,不代表已经确认根因或获准变更。

  1. 日志写入突然被拒绝,Kibana 或其他关联功能同时异常,但集群平均磁盘使用率没有达到团队设想的危险值。

    只读核对
    读取各数据节点空间、受影响索引分片及实际水位设置,关联拒绝错误的具体原因和首次发生时间,不修改写入保护。
    如何判读
    单个节点达到保护条件可能影响含其分片的索引;需要核对节点和错误正文,不能用平均容量排除磁盘原因。
  2. 高水位持续存在,分片未按预期迁出,即使新增节点后也没有改善;部分数据层空闲看起来很多。

    只读核对
    查看现有分配诊断、节点角色、数据层和过滤规则,读取目标索引的分片分布与副本约束,限定受影响对象。
    如何判读
    新增空间只有满足放置条件才可能被使用;需解释是哪项规则限制迁移,不能仅据节点数量增加判定扩容已完成。
  3. 保留策略已经配置,旧索引仍不断积累,或水位下降后采集端仍在积压;治理记录只注明集群恢复绿色。

    只读核对
    读取目标索引的生命周期绑定、阶段和错误信息,关联 rollover 时间、后端写入状态及采集缓冲趋势。
    如何判读
    索引健康、保留策略推进和积压排空是不同验收;必须逐项取得证据,不能从颜色变化推导整条日志链路恢复。
常见误区与判断边界 2 项

提高水位不是增加可用磁盘

改变阈值可能暂时改变保护行为,却不会创造空间或解决不合格落点,并可能缩短处理时间。诊断应先保留原值、实际容量与分配证据;是否采用任何临时配置需独立评估期限和风险,不能为了消除告警长期取消磁盘保护。

删除阶段不能当作备份策略

索引生命周期管理的是数据如何迁移和到期,不自动提供可恢复副本。若数据归属、保留期或恢复材料不明,就不能据索引年龄决定删除。尤其不能手工移除数据目录下的分片文件;配置回退无法撤销已发生的物理数据删除。

交接时应留下的证据

作为记录提纲使用,不是自动检查结果;未取得的证据应标记缺口,并注明负责人。

  • 登记部署模式与版本、受影响数据层和节点,保存有效水位及其单位、空间趋势与写入拒绝原文中的脱敏对象信息。
  • 为关键索引关联分片位置、可用落点及分配限制,附现有分配诊断和节点角色,说明新增空间是否真正符合要求。
  • 保存生命周期策略版本、绑定对象、阶段和等待或错误原因,记录 rollover 时间与业务保留要求之间的对应关系。
  • 交接节点空间、索引写入、分片恢复和采集积压各自状态,注明不可删除范围、可恢复来源及尚未取得的验收证据。

记录需包含环境、版本、时间与时区;分享前脱敏,不附访问令牌、密码或完整业务敏感数据。

继续阅读与资料核对

补充相关主题,再结合当前环境的实施记录形成结论。

返回原理导读

DOUYA OPS ECOSYSTEM

贡献你的经验,帮助更多运维人

把故障复盘、标准流程和最佳实践沉淀为可检索、可复用的知识内容。