AWS Cloudwatch 过滤器和模式语法

Ebr*_*aya 8 amazon-web-services amazon-cloudwatch amazon-cloudwatchlogs amazon-cloudwatch-metrics

我正在按照此处的说明进行操作https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html

但它并没有像我期望的那样工作。

我目前有以下 cloudwatch 日志订阅过滤器模式: ? "UNKNOWN_TOPIC_OR_PARTITION" ? " SEVERE " ? " severe " ? " FATAL " ? " fatal " - "closing session"

我想将任何模式与“致命”匹配,同时从结果中排除“结束会议”。

但是,上述过滤器匹配其他日志输出:

在此处输入图片说明

小智 14

尝试这个过滤器模式:

[(w1="*UNKNOWN_TOPIC_OR_PARTITION*" || w1="*SEVERE*" || w1="*severe*" || w1="*FATAL*" || w1="*fatal*") && w1!="*closing session*"]
Run Code Online (Sandbox Code Playgroud)


Der*_*dez 6

您不能在 CloudWatch 中使用事件过滤器...但您可以使用Logs Insights

CloudWatch -> CloudWatch 日志 -> 日志洞察

或者

CloudWatch -> CloudWatch Logs -> 日志组 -> [您的服务日志] -> [按钮日志见解]

日志洞察

日志洞察 UI

  1. 日志服务(您需要选择要跟踪的服务日志
  2. 在这部分您可以选择时间范围。
  3. 在这里你有你的查询框,在这里你可以像 SQL 一样放置查询

因此,在您的情况下,您可以在查询框中使用它

fields @timestamp, @message
| sort @timestamp desc
| filter @message like /SEVERE|severe|FATAL|fatal|closing session/ 
Run Code Online (Sandbox Code Playgroud)

现在单击运行查询,您将只看到您想要使用该过滤器的日志。

  • 您可以在过滤器中使用“and @message not like / opening session/”来排除带有该句子的日志。 (3认同)

Unk*_*nts 3

该位与所有 OR 结合起来会给您带来问题- "closing session"。尝试将其删除,看看其余部分是否按预期匹配。

我不知道在单个过滤器中获取所需内容的语法,但为了获得相同的结果,您可以为要匹配的每个字符串创建单独的日志过滤器。在这种情况下,将是:

  • "UNKNOWN_TOPIC_OR_PARTITION" - "closing session"
  • " SEVERE " - "closing session"
  • " severe " - "closing session"
  • " FATAL " - "closing session"
  • " fatal " - "closing session"

现在您有 5 个不同的指标。您可以使用度量数学对它们进行总结,这将为您提供所需的度量。有关如何使用度量数学的信息,请参阅此处: