架构设计 · 监控与可观测

待环境验证

集中日志平台的采集与存储设计

规划 Fluent Bit、Elasticsearch 与 Kibana 的日志链路,明确字段、缓冲、保留周期和权限,并设计丢失与重复检测。

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

这篇知识解决什么问题

本篇把日志平台看作一条有保留窗口和权限边界的数据链路,而非采集器加搜索页面。设计时要说明事件在哪里生成、如何辨认、在哪一层可能积压或重复,以及在源端轮转和后端不可用同时发生时,还能凭什么恢复和证明完整性。

端到端身份先于吞吐容量

为日志事件建立可关联的身份、原始时间、采集时间和所属服务,再讨论吞吐及保留。多行解析和过滤会改变记录数量,只有在明确统计单位之后,输入与输出计数才有可比性。检索页面能显示一条样本,证明的是这条样本可见,不证明全部来源完整送达。

把三个恢复窗口放在同一张清单里

源文件保留决定能否补读,本地位点决定从何处继续,待输出缓冲决定哪些事件仍可发送;后端生命周期另决定已送达内容何时消失。应分别登记容量、持久化范围和负责人,并说明节点故障是否会同时失去源文件与缓冲,避免把本地落盘误认为独立副本。

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

参考图将日志源、采集解析、本地位点与缓冲、Elasticsearch 和 Kibana 连成一条可追查路径,并区分字段策略。本图没有独立消息队列,也未展开跨区备份或不可篡改审计存储,不能从缓冲节点推导这些能力。

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

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

日志先经 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 篇官方资料

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

适用范围与设计输入

用于以 Fluent Bit 采集应用日志、Elasticsearch 存储检索、Kibana 提供查询入口的集中日志方案。实施前确认日志来源、峰值速率、单条大小、检索需求、保留周期和可接受的数据丢失范围。本文为架构设计参考,容量与恢复能力均需实测,不预设某个节点规格可以承载固定规模业务。

先定义日志数据契约

约定事件时间、采集时间、环境、服务、主机或 Pod、日志级别和请求关联标识。优先采用结构化单行日志;多行堆栈应明确起始规则、拼接超时和最大长度。不要把密码、访问令牌及完整敏感请求体写入日志。统一时间格式与时区,保留原始事件时间,避免把采集延迟误判为业务发生时间。解析失败应可统计并进入受控路径,不能无声丢弃。

采集部署与故障边界

容器节点采集器与主机代理应分别明确日志文件路径、轮转策略和读取权限。为每个输入维护合适的读取状态,验证轮转、进程重启和节点重启后的行为。采集器需要自己的资源上限和健康监控,防止日志异常增长影响业务进程。采集凭据只授予目标数据写入所需权限,并通过受控渠道管理;测试记录应使用可识别的标记,避免混入真实业务分析。

缓冲、重试与背压

根据后端不可用窗口评估本地缓冲容量:使用峰值输入速率、预期中断时长和实测编码开销估算,再保留文件轮转与系统运行空间。Fluent Bit 的文件系统缓冲可降低只存内存带来的风险,但仍受磁盘容量、同步策略和输出队列限制影响。达到输出队列上限可能丢弃旧数据,不能把启用落盘等同于绝不丢失。定义后端变慢时的报警、限流和丢弃优先级,审计日志与调试日志不应共用未经区分的丢弃策略。

存储模型与保留策略

持续追加的时间序列日志可评估使用 Elasticsearch data stream,并提前建立索引模板、时间字段和字段映射。限制不受控的动态字段,区分需要全文检索、精确过滤与仅展示的内容。按业务、保留期限和访问权限划分数据集,避免为每个微小来源建立大量索引。容量规划同时计算副本、滚动新索引、恢复和合并所需余量;数据保留不应只依赖磁盘接近满时人工删除。

验收场景与观测指标

在测试范围发送带唯一标识和时间戳的样本,验证端到端可检索、字段正确和访问隔离。随后测试短时断网、后端拒绝写入、采集器重启、日志轮转和超长记录,比较输入、成功输出、重试与丢弃统计。观察积压是否可在约定时间内排空,并记录重复记录的表现。端到端延迟应由事件时间与检索可见时间计算,不能仅以采集进程存活作为验收。

停止与回退条件

若采集导致业务磁盘持续上涨、敏感字段进入错误数据集、解析失败激增或积压无法受控,暂停扩大接入范围并恢复上一版采集配置。回退时保留已存在的缓冲和读取状态,先确认兼容性与消费顺序,避免删除状态后重复采集或跳过数据。变更索引模板前需保留版本,已有数据的修复应独立评估,不能假设模板回退会改写历史文档。

参考资料

从现象到判断

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

  1. 采集器存活且持续接收日志,但搜索中的最新事件越来越旧,输出重试或缓冲占用也出现持续增长。

    只读核对
    只读比较源端事件时间、采集器成功输出与重试统计、缓冲趋势及后端拒绝信息,限定已知日志源与观察窗口。
    如何判读
    存在可恢复积压的可能,尚不能直接计为丢失;需要同时核对源端轮转、输出队列上限与实际剩余容量。
  2. 后端能查到记录,但字段类型、时间顺序或堆栈数量与源端预期不一致,按服务筛选时结果明显不完整。

    只读核对
    读取一组已有脱敏事件在源端与后端的表示,核对解析、过滤和模板版本,检查所用时间字段与数据集路由。
    如何判读
    应分别判断解析转换、字段冲突和查询遗漏;多行合并或过滤可能改变计数,不能以行数差值直接计算投递缺口。
  3. 不同服务的查询权限或保留期限存在差异,但平台只配置了保存视图;部分历史记录消失后无法说明删除依据。

    只读核对
    查看获准的角色授权、数据集绑定和生命周期执行记录,对照业务保留清单及已有备份验证材料,不读取无关租户数据。
    如何判读
    界面筛选不是后端隔离,生命周期完成也不是恢复能力;缺少独立证据的授权或归档承诺应标记待验证。
常见误区与判断边界 2 项

把位点和缓冲当成同一份保险

位点记录读取进度,缓冲保存待输出事件,丢失其中一项产生的后果不同。采集器重建与宿主机损坏也可能具有不同恢复范围。设计应标明各目录生命周期及来源可重放性;故障时清空状态既可能重复读取,也可能造成无法补齐的缺口。

把生命周期回退等同于数据回退

恢复旧模板或旧保留配置,只影响相应的后续行为,不能自动修复历史解析结果或找回已删除记录。删除前的保留责任与可恢复副本需要单独证明,敏感字段进入错误数据集也应按数据事件处理,而不是仅撤回一行配置后结束。

交接时应留下的证据

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

  • 保留数据源、事件身份与时间字段契约,附已有脱敏样本及解析前后对应关系,注明合并、过滤和失败记录的计数口径。
  • 登记源文件、Tail 位点和待输出缓冲的路径职责、保留及故障范围,附实际版本和容量依据,不预填不丢失承诺。
  • 保存同窗口输入、输出、重试、缓冲和后端拒绝趋势,说明重启归零与采样误差,以及仍可恢复或未知的事件范围。
  • 把写入身份、查询角色、生命周期与业务负责人对应起来,附可恢复来源的既有验证材料及尚未覆盖的访问隔离检查。

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

继续阅读与资料核对

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

返回原理导读

DOUYA OPS ECOSYSTEM

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

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