You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Amazon CloudWatch Logs Insights查询无结果,请求过滤解析协助

CloudWatch Logs Insights 查询无结果的修复方案

问题根源

你使用的filter @message="abc"是完全匹配逻辑,要求整个@message字段内容等于"abc",但你的日志示例中"abc"只是@message里的子串(位于[SFTP:2547246_0:abc:x.x.x.x]片段中),因此无法匹配到任何日志。

修正后的查询语句

1. 模糊匹配包含"abc"的日志

如果只需要找出所有包含"abc"字符串的日志,改用contains操作符:

fields @timestamp, @message, @logStream, @log 
| filter contains(@message, "abc")
| sort @timestamp desc
| limit 2000

2. 精准匹配特定位置的"abc"

如果要精准匹配[SFTP:...:abc:...]格式中的"abc"(比如指定是SFTP会话中的用户名为abc),可以使用正则匹配:

fields @timestamp, @message, @logStream, @log 
| filter @message =~ /\[SFTP:[^:]+:abc:[^\]]+\]/
| sort @timestamp desc
| limit 2000

3. 解析日志字段后精准过滤

如果需要更灵活的分析,可以先用parse命令拆分@message中的关键信息(比如SFTP会话ID、用户名、IP、操作类型等),再针对提取出的字段过滤:

fields @timestamp, @message, @logStream, @log 
| parse @message "*|*|[SFTP:*:*:*:*] *: *" as cmd, log_timestamp, session_id, user, ip, operation, details
| filter user = "abc"  # 直接过滤提取出的用户名字段
| sort @timestamp desc
| limit 2000

内容的提问来源于stack exchange,提问作者Nitish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 08:02:08