Datadog日志日期解析规则无匹配结果,请求排查原因
Datadog日志解析失败原因排查
针对你提供的日志片段和解析规则,未匹配成功的原因主要有以下几点:
日期格式不匹配
日志中的日期是2024-08-29 11:19:00,049,存在两个和规则冲突的地方:- 毫秒部分用逗号分隔,但规则里的
SSS对应点分隔的毫秒格式 - 日志里没有时区信息,但规则中加了
z(时区占位符)
修正后的日期格式应为:date("yyyy-MM-dd HH:mm:ss,SSS")
- 毫秒部分用逗号分隔,但规则里的
字段命名易混淆
规则中%{notSpace:INFO}的字段名用了INFO,这是日志级别的实际值,容易造成逻辑混淆,建议改为%{notSpace:loglevel};%{word:logname}匹配snipeit是符合规则的,这部分无需调整。JSON格式不标准
日志中的JSON部分是{'byod': False...},不符合标准JSON规范:- 标准JSON要求用双引号包裹键和字符串值,而非单引号
- 布尔值应为小写的
false,而非大写的False
Datadog的%{data::json}只解析标准JSON,这部分格式错误会导致解析失败,需要先修正日志输出的JSON格式,或者改用自定义正则匹配非标准JSON内容。
修正后的示例解析规则
parsing_rule \[%{date("yyyy-MM-dd HH:mm:ss,SSS"):date}\] %{word:logname} %{notSpace:loglevel} %{data::json}
内容的提问来源于stack exchange,提问作者Sam Sam
相关产品推荐
相关产品推荐

