11

我按照这里的说明https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html

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

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

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

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

在此处输入图像描述

4

3 回答 3

9

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

CloudWatch -> CloudWatch 日志 -> 日志见解

或者

CloudWatch -> CloudWatch Logs -> 日志组 -> [您的服务日志] -> [Button Logs Insights]

日志洞察

日志见解 UI

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

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

fields @timestamp, @message
| sort @timestamp desc
| filter @message like /SEVERE|severe|FATAL|fatal|closing session/ 

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

于 2020-09-27T17:55:19.443 回答
2

试试这个过滤器模式:

[(w1="*UNKNOWN_TOPIC_OR_PARTITION*" || w1="*SEVERE*" || w1="*severe*" || w1="*FATAL*" || w1="*fatal*") && w1!="*closing session*"]
于 2021-06-11T09:26:19.387 回答
1

这一点与所有 OR 相结合,会给您带来问题- "closing session"。尝试删除它,看看其余部分是否符合预期。

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

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

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

于 2019-05-25T09:02:01.030 回答