CloudWatch Logs筛选不区分大小写的多个术语或已连接

Man*_*uel 5 amazon-web-services cloudwatch amazon-cloudwatch amazon-cloudwatchlogs

我只是尝试基于CloudWatch Logs Filter创建一个警报,该警报在多个术语上触发(或连接,而不是和)并且不区分大小写

使用"错误警告"作为模式不起作用

我正在寻找对所有以下错误和警告做出反应的过滤器模式:

ERROR: first sample
Error: second sample
error: third sample
{ ERROR: "fourth sample"}
{type: "error"}
WARNING: SOMETHING BAD!
{ WARNING: "fifth sample"}
Run Code Online (Sandbox Code Playgroud)

Edu*_*cio 10

让我们提出两种解决问题的方法......

I - 使用过滤器(日志组)

  1. 转到 AWS CloudWatch;
  2. 点击“日志组”(“日志”);
  3. 搜索所需的日志组;
  4. 选择需要的日志组;
  5. 点击“搜索日志组”;
  6. 在相关字段中应用所需的过滤器和其他所需的搜索参数。

过滤器示例

?"ERROR" ?"Error" ?"error" ?"EXCEPT" ?"Except" ?"except"
Run Code Online (Sandbox Code Playgroud)

注意:允许您搜索多个案例 - “不区分大小写”的解决方法 - 并按所需的字符串部分。术语之间的连接符为“OR”。

II - 使用查询(日志见解)

  1. 转到 AWS CloudWatch;
  2. 点击“Logs Insights”(“日志”);
  3. 搜索所需的日志组;
  4. 选择需要的日志组;
  5. 插入您的查询;
  6. 应用其他所需的搜索参数;
  7. 单击“运行查询”。

查询示例

fields @timestamp, @message
| filter @message like /(?i)(error|except)/
| sort @timestamp desc
| limit 20
Run Code Online (Sandbox Code Playgroud)

注意:允许您不区分大小写并按所需的字符串部分进行搜索。术语之间的连接符为“OR”。

谢谢!

[参考文献:/sf/answers/3698007491/、https://bneijt.nl/blog/cloudwatch-case-insensitive-like-filter/、https://stackoverflow.com/ a/58377451/3223785]


Ant*_*ace 6

根据有关过滤器和模式语法的AWS文档,您不能使用"错误警告"来捕获"OR"关系,因为:

  • 您可以在指标筛选器模式中指定多个术语,但所有术语必须出现在日志事件中才能匹配.

或者换句话说,CloudWatch Log指标筛选器期望"AND"关系.

同样:

  • 度量标准过滤器区分大小写.

因此,您将无法通过单个过滤器实现此目的.对于您希望写入Cloudwatch日志的"错误"和"警告"的每个区分大小写的排列,您都需要一个过滤器.

要在所有这些过滤器上设置单个警报,只需将每个过滤器配置为使用相同的CloudWatch指标.以下是AWS控制台中的一个示例,其中每个指标过滤器都针对我的LogMetric/test指标:

AWS Console使用相同的CloudWatch指标显示多个指标筛选器.

然后,我可以根据LogMetric/test指标简单地创建一个CloudWatch警报,以警告这些不同的指标筛选器的总和.


Sac*_*ach 5

如果您需要过滤一些字符串,则可以OR按照以下步骤进行操作:

?"String1" ?"String2" 
Run Code Online (Sandbox Code Playgroud)

等等。试试吧。