如何通过Promtail的structured_metadata保留完整日志并精简输出?
Promtail流水线配置:保存原始日志到structured_metadata并提取message输出
要捕获原始日志行,你需要先利用Promtail内置的__raw_log__字段(这是Promtail自动为每条原始日志生成的字段),通过copy stage将其复制到自定义字段,避免后续JSON解析等操作覆盖或丢失原始内容。完整配置如下:
# 复制原始日志到自定义字段,留存原始内容 - copy: source: __raw_log__ target: raw_log # 解析JSON提取message字段 - json: expressions: message: message # 将原始日志存入structured_metadata的log字段 - structured_metadata: log: raw_log # 输出提取后的message字段 - output: source: message
关键说明:
__raw_log__是Promtail默认提供的字段,存储了未经过任何处理的原始日志行,必须在后续处理前复制到自定义字段(比如这里的raw_log),确保原始内容不会被修改。structured_metadata阶段直接引用提前保存好的raw_log字段,即可把原始日志完整存入structured_metadata的log字段中。- 保留原有
output配置,最终输出解析后的message字段内容。
内容的提问来源于stack exchange,提问作者Archimedes Trajano
相关产品推荐
相关产品推荐

