ICP备案

备案站点的日志规范与集中检索实践

作者:备案源头内容团队内容审核:备案源头内容团队更新于 2026年9月15日

出事时真正的问题不是没日志,而是捞不出来

故障发生后最常见的场景是:几个人同时 SSH 到不同机器上 grep,一个人找到半条线索,另一个人在另一台机器上找到另外半条,二十分钟后才拼出完整链路。日志不是写出来就算数的,能不能在三分钟内定位到那一条才算数。

关键要点

  • 日志必须结构化(一行一个 JSON 或固定字段),否则检索只能靠正则硬扫。
  • 每条日志都要带请求 ID,这是把一次请求在多个服务、多台机器上的记录串起来的唯一办法。
  • 采集链路要考虑背压:日志暴增时,宁可丢采样也不能把应用拖垮
  • 保留策略必须分级,全量长期保留的成本会失控。

结构化日志的最小字段集

字段 作用 缺失后果
时间戳(含时区) 排序与对齐 多机日志无法拼时间线
级别 过滤噪声 告警规则没法写
请求 ID / trace ID 串联一次调用 只能靠时间猜关联
服务名 + 实例 定位到具体机器 不知道是哪台在报错
用户或业务主键 按单据回溯 用户投诉无法复现
耗时 找慢点 只知道错了不知道慢在哪

请求 ID 要在入口生成、随调用链一路透传,并写进每一条日志,这和链路追踪是同一套上下文,见 可观测性建设

日志级别:多数团队都在误用

  • ERROR:需要人介入处理的问题。写多了必然没人看,这是告警疲劳的源头。
  • WARN:降级、重试、命中兜底——现在还能转,但需要关注。
  • INFO:关键业务动作与状态变更,不是给每个函数都打一行。
  • DEBUG:默认关闭,线上按开关临时打开。

一个可执行的判断标准:如果一条 ERROR 出现时没有任何人需要做任何事,它就不该是 ERROR

采集链路与「丢日志」

典型链路是:应用写本地文件 → 采集器读取 → 传输 → 存储 → 检索。每一段都可能丢:

环节 丢日志原因 对策
应用 同步写阻塞、缓冲区满 异步写 + 有界队列,满了丢 DEBUG
本地文件 轮转过快被覆盖 按大小轮转并留足份数
采集器 进程挂了、位点丢失 监控采集器自身、位点持久化
存储 写入限流、磁盘满 容量告警 + 降采样

最关键的一条原则是日志系统绝不能反向拖垮业务:应用侧写日志必须是异步且有界的,后端写不进去时丢弃低价值日志,而不是阻塞业务线程。

保留与成本:按价值分级

类型 建议保留 说明
访问日志 依合规要求 留存义务见下文
应用错误日志 1~3 个月 排障主力
DEBUG / 调试日志 数天 只在需要时开
审计与操作日志 长期 权限与操作留痕

访问日志的留存期限有明确合规要求,不能只按成本决定,见 网站访问日志留存要求;运维操作的审计留痕见 运维权限治理与操作审计。存储成本随日志量线性增长,要纳入成本盘点,见 服务器资源与成本治理

脱敏:日志是最容易泄密的地方

密码、令牌、身份证号、手机号、银行卡号一旦进了日志,就等于把敏感数据复制到了一个权限管理通常更松的系统里。落地做法:

  • 日志输出层统一做脱敏(中间掩码),而不是指望每个人记得。
  • 请求体、响应体默认不打全量,只打字段名与长度。
  • 凭据类字段进白名单强制屏蔽,密钥管理见 密钥与凭据管理

常见坑

  • 日志无请求 ID:跨服务排查只能靠时间猜。
  • 全部打成 ERROR:告警变噪声,真故障被淹没。
  • 同步写日志:磁盘一慢,接口全部超时。
  • 异常只打 message 不打堆栈:看得见错,找不到行。
  • 把日志当监控用:指标该用指标系统,见 备案网站监控告警体系

常见问题

日志量太大存不起,应该怎么砍?

先按价值分级而不是一刀切降级:错误日志与审计日志优先保留,访问日志按合规期限保留,DEBUG 与高频成功日志做采样。对成功请求做 1% 采样、对失败请求全量保留,通常能砍掉大部分存储量而几乎不影响排障。

为什么强调请求 ID 比强调日志内容更重要?

因为一次请求可能跨越网关、应用、数据库和多个下游,单条日志再详细也只是局部。请求 ID 能把这些碎片按一次调用聚合起来,排查时间通常从几十分钟缩短到几分钟。

日志里已经写了敏感信息,怎么补救?

先在输出层加上脱敏止住新增,再按保留策略让存量自然过期;若涉及凭据泄露,必须立即轮换对应密钥,仅删日志是不够的。

本地 grep 和集中检索必须二选一吗?

不必。集中检索用于跨机器、跨时间的定位,本地日志保留数天用于深挖细节,两者互补。但只有本地日志时,多实例环境下的排查效率会急剧下降。

资料来源

主流日志采集与检索方案(如 Filebeat、Fluent Bit、Loki、Elasticsearch)官方文档中关于结构化日志、背压与保留策略的公开说明。本文为通用运维说明,仅供参考,具体以实际日志架构与合规要求为准。

相关阅读

网站访问日志留存与安全合规运维要点

为什么要留日志:这是法定要求 《网络安全法》第二十一条明确要求网络运营者"采取监测、记录网络运行状态、网络安全事件的技术措施,并按照规定留存相关的网络日志不少于六个月"。已完成备案、对外提供服务的网站属于网络运营者范畴,日志留存不是可选项,而是基础合规义务。 应留存哪些日志 | 日志类型 | 记录内容 | 主要用途 …

网站新增域名如何补充接入备案

企业在原有网站基础上新增域名,比如启用新的品牌域名或拼音域名指向同一网站时,不能直接绑定使用,而是需要在原备案基础上补充办理新增域名的接入手续。 新增域名前的准备工作 新增域名前,建议先确认该域名已经完成实名认证,可以通过 Whois查询 核对域名的注册信息和实名状态,避免因域名信息未实名导致接入申请被退回。同时确认…

备案信息年度核查该如何配合应对

部分省份的通信管理部门会对辖区内已备案网站开展年度或不定期核查,核查方式包括系统比对、电话回访、短信确认等,目的是确认备案信息与网站实际运营情况是否一致。 核查通常关注哪些内容 年度核查一般围绕主体信息、网站信息、接入信息三个维度展开,具体可以对照下表自查: | 核查维度 | 常见核查点 | | --- | --- …

备案号在网站上的规范展示与使用要求

网站完成备案只是第一步,备案号在页面上的展示方式同样需要长期维护,很多主体正是因为展示细节不规范,在日常巡查或年度核查中被要求整改。 展示位置与基本要求 通常做法是将备案号放置在网站首页底部,文字需清晰可辨、不被图片或广告遮挡,且格式应与下发的备案号文本保持一致,不能随意增减字符或调整顺序。是否需要加超链接指向查询入…

备案注销之后重新申请要注意什么

有些主体在此前因业务调整、接入商变更等原因注销了原有备案,之后又因新的业务需要重新申请备案。这种“二次备案”与首次备案在流程上大体相似,但有几个环节容易被忽略。 重新申请前的自查 重新申请前,建议先用 ICP备案查询 确认原备案是否确实已经完成注销,避免出现原备案未彻底清空、新申请与旧记录冲突的情况。同时检查计划使用…

备案信息变更有没有时效要求

备案不是办理完成后就一劳永逸的事项,主体信息、网站信息或联系方式一旦发生变化,通常需要在信息变化后的一定时间内完成变更提交,具体时限以属地管局要求为准。 哪些变化需要及时申报 常见需要变更的情形包括:主办单位名称或证件信息变化、网站负责人更换、联系电话或邮箱失效、网站域名调整、网站内容服务类型发生实质变化等。这类变更…

公司迁址之后备案地址信息如何更新

企业办公地址或注册地址发生变化后,备案信息中登记的地址项也需要相应更新,尤其是当迁址涉及跨区、跨市甚至跨省时,办理流程会比同城内迁址更复杂一些。 迁址后需要关注的信息 迁址后首先要确认工商登记信息是否已经完成同步变更,备案地址一般以工商登记的最新地址为准。可以先用 ICP备案查询 查看当前登记的主办单位地址,与最新的…

备案预留手机号邮箱变更该如何更新

备案信息中登记的手机号和邮箱,是管局与接入服务商联系网站负责人的主要渠道,用于发送核查通知、验证短信、审核结果等重要信息。这些联系方式一旦更换却未同步更新,容易导致关键通知被漏收。 常见需要更新的场景 负责人更换手机号或离职导致原号码停用; 企业邮箱系统迁移,原邮箱地址不再使用; 备案负责人变更,联系方式随之更换。 …

系统学习