结论先行:「过滤无效日志」这件事,做对了是省存储,做错了是把证据提前扔掉。判断是否该删,先分清「无效」指的是哪一种——解析失败的、噪声类型的、重复进来的,三者含义完全不同,处理方式也不该相同。在此之前,至少要让过滤这件事留下三笔账:规则是谁定的、删掉了多少、原始数据还能不能找回。

「无效」有三种来源,含义完全不同

来源典型内容该怎么处理直接删掉的风险
解析失败字段缺失、编码异常、格式变了的记录先进「未解析」区,保留原文,人工确认后再决定格式变化本身就是上游出问题的信号,删掉等于删掉证据
噪声类健康检查、心跳、调试输出、重复的状态上报可以按规则过滤,但必须保留过滤计数服务探活失败往往就藏在这一类里
重复记录双通道接入、重复推送造成的同一条内容走去重,不走过滤把去重和过滤混在一起,统计数字会长期失真

这张表的用法是:先归类,再定规则。三类混用一个关键词或一个采样比例去处理,是最常见的错法——那等于用一个笼统的「不需要」覆盖了三种完全不同的判断。

过滤规则要写清三件事

  • 匹配条件与责任人。规则按什么匹配(来源、字段、内容特征),谁定的,多久复核一次。没有责任人的规则会一直生效到有人发现数据不对。
  • 过滤计数。每条规则过滤掉多少条,必须单独统计并且能查。数字为空的规则,等于没人知道它删了什么。
  • 保留策略。过滤前是否先落一份原始数据到低成本存储,保留多久。这一步的成本很低,但决定了事后能不能翻案。

删之前该留什么

三样东西,缺一样都会让过滤变成不可回溯的动作。

  • 计数要能看趋势。某条规则的过滤量突然放大,通常不是噪声变多了,而是上游的日志格式或采集方式变了。趋势线比绝对值有用。
  • 每条规则留少量样本。样本的作用不是排查故障,是证明规则还在正确地工作。规则失效时,样本会立刻显示出异常。
  • 规则要有版本。什么时候加的、什么时候改的、改之前过滤量是多少。事后复盘时,「当时这条规则还不存在」和「当时已经改了」是完全不同的两个结论。

复核节奏

每月看一次过滤量排前几位的规则,重点看两件事:量有没有突变,副作用有没有被发现。出故障时的排查顺序也建议调过来——先确认这段时间的过滤规则动过没有,再去查采集端本身。很多「日志缺失」最后查下来,不是没采到,是被自己的规则删掉了。

本文只谈过滤规则怎么定、删之前留什么账;不谈同一条日志重复进来该怎么去重,也不谈采集端停止运行该怎么发现,更不谈日志保留周期与合规要求的关系。

深圳市奇摩计算机有限公司在做日志接入时,会把过滤规则连同过滤量、样本与规则版本一并交接给客户运维团队,规则改动走变更记录,避免几个月后没人说得清哪一批数据是怎么消失的。预约咨询