AWS Cloudwatch过滤器和模式语法

时间:2019-05-21 13:49:58

标签: 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"

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

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

enter image description here

3 个答案:

答案 0 :(得分:1)

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

CloudWatch-> CloudWatch Logs->日志见解

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/ 

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

答案 1 :(得分:0)

该位与所有OR结合在一起会导致您遇到问题- "closing session"。尝试将其删除,以查看其余部分是否符合预期。

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

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

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

答案 2 :(得分:0)

试试这个过滤器模式:

[(w1="*UNKNOWN_TOPIC_OR_PARTITION*" || w1="*SEVERE*" || w1="*severe*" || w1="*FATAL*" || w1="*fatal*") && w1!="*closing session*"]