AWS CloudWatch Log Insights:提取指定header_name对应的header_value
CloudWatch日志提取特定header_value的方法
解决方案步骤
- 先在CloudWatch Insights里用
parse命令解析扁平化字段,搭配filter筛选目标header_name:fields @timestamp, @message | parse @message /protocol_headers\.(?<index>\d+)\.header_name\s+(?<name>.*)/ | parse @message /protocol_headers\.(?<index>\d+)\.header_value\s+(?<value>.*)/ | filter name = "test 1" | display index, name, value - 也可以通过索引关联对应值,写法更简洁:
fields @timestamp, @message | parse @message /protocol_headers\.(?<idx>\d+)\.header_name\s+(?<h_name>.*)/ as idx, h_name | parse @message /protocol_headers\.$idx\.header_value\s+(?<h_value>.*)/ as h_value | filter h_name = "test 1" | display h_value
关键注意点
parse命令的正则要匹配日志中字段的实际空格数量,如果header_name和值之间是多个空格,正则里用\s+匹配任意数量空白字符,避免因空格数不匹配导致解析失败。
若同一索引的header_name和header_value分属不同日志行,需要用
stats或join命令按索引聚合后再匹配。
内容的提问来源于stack exchange,提问作者Sid Sidhant
相关产品推荐
相关产品推荐

