适用范围与设计输入
用于以 Fluent Bit 采集应用日志、Elasticsearch 存储检索、Kibana 提供查询入口的集中日志方案。实施前确认日志来源、峰值速率、单条大小、检索需求、保留周期和可接受的数据丢失范围。本文为架构设计参考,容量与恢复能力均需实测,不预设某个节点规格可以承载固定规模业务。
先定义日志数据契约
约定事件时间、采集时间、环境、服务、主机或 Pod、日志级别和请求关联标识。优先采用结构化单行日志;多行堆栈应明确起始规则、拼接超时和最大长度。不要把密码、访问令牌及完整敏感请求体写入日志。统一时间格式与时区,保留原始事件时间,避免把采集延迟误判为业务发生时间。解析失败应可统计并进入受控路径,不能无声丢弃。
采集部署与故障边界
容器节点采集器与主机代理应分别明确日志文件路径、轮转策略和读取权限。为每个输入维护合适的读取状态,验证轮转、进程重启和节点重启后的行为。采集器需要自己的资源上限和健康监控,防止日志异常增长影响业务进程。采集凭据只授予目标数据写入所需权限,并通过受控渠道管理;测试记录应使用可识别的标记,避免混入真实业务分析。
缓冲、重试与背压
根据后端不可用窗口评估本地缓冲容量:使用峰值输入速率、预期中断时长和实测编码开销估算,再保留文件轮转与系统运行空间。Fluent Bit 的文件系统缓冲可降低只存内存带来的风险,但仍受磁盘容量、同步策略和输出队列限制影响。达到输出队列上限可能丢弃旧数据,不能把启用落盘等同于绝不丢失。定义后端变慢时的报警、限流和丢弃优先级,审计日志与调试日志不应共用未经区分的丢弃策略。
存储模型与保留策略
持续追加的时间序列日志可评估使用 Elasticsearch data stream,并提前建立索引模板、时间字段和字段映射。限制不受控的动态字段,区分需要全文检索、精确过滤与仅展示的内容。按业务、保留期限和访问权限划分数据集,避免为每个微小来源建立大量索引。容量规划同时计算副本、滚动新索引、恢复和合并所需余量;数据保留不应只依赖磁盘接近满时人工删除。
验收场景与观测指标
在测试范围发送带唯一标识和时间戳的样本,验证端到端可检索、字段正确和访问隔离。随后测试短时断网、后端拒绝写入、采集器重启、日志轮转和超长记录,比较输入、成功输出、重试与丢弃统计。观察积压是否可在约定时间内排空,并记录重复记录的表现。端到端延迟应由事件时间与检索可见时间计算,不能仅以采集进程存活作为验收。
停止与回退条件
若采集导致业务磁盘持续上涨、敏感字段进入错误数据集、解析失败激增或积压无法受控,暂停扩大接入范围并恢复上一版采集配置。回退时保留已存在的缓冲和读取状态,先确认兼容性与消费顺序,避免删除状态后重复采集或跳过数据。变更索引模板前需保留版本,已有数据的修复应独立评估,不能假设模板回退会改写历史文档。