知识卡片
结构化日志与非结构化日志的取舍
内容
日志本质是带时间戳的事件文本记录,比指标携带更多信息但通常需要解析才能提取。非结构化日志(如典型 NGINX access log)字段含义靠位置隐含约定,不熟悉格式的人难以一眼看出状态码或用户代理是什么;转成结构化格式(如 JSON 键值对)后语义显式化,机器能直接提取字段,大多数日志都应该走这条路。但当日志量很小、语义本身直观可读、只需要 grep/tail 这类简单工具时,保留非结构化反而是对的——不必为了”结构化”这个正确方向而增加不必要的复杂度。发散:这是一个典型的”默认该做但允许例外”的工程判断,评判标准是后续消费方式的复杂度,而不是”结构化听起来更先进”。
参考来源
《监控运维实践 原则与策略-2021》第2章《监控设计模式》