我正在按照https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html
上的说明进行操作但是它没有按我期望的那样工作。
我目前具有以下cloudwatch日志订阅过滤器模式:? "UNKNOWN_TOPIC_OR_PARTITION" ? " SEVERE " ? " severe " ? " FATAL " ? " fatal " - "closing session"
我希望将任何模式与“致命”匹配,同时从结果中排除“结束会话”。
但是,上述过滤器与其他日志输出匹配:
答案 0 :(得分:1)
您不能在CloudWatch中使用事件过滤器...但是可以使用 Logs Insights
CloudWatch-> CloudWatch Logs->日志见解
或
CloudWatch-> CloudWatch Logs->日志组-> [您的服务日志]-> [Button日志分析]
日志见解
因此,您可以在查询框中使用它
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*"]