CloudWatch Logs 过滤不区分大小写的多个术语或已连接
CloudWatch Logs Filter case insensitive multiple terms or connected
我只是想创建一个基于 CloudWatch Logs 过滤器的警报,它会在多个条件(或连接、非和)上触发并且不区分大小写
使用 "error warning" 作为模式无效
我正在寻找对以下所有错误和警告做出反应的过滤器模式:
ERROR: first sample
Error: second sample
error: third sample
{ ERROR: "fourth sample"}
{type: "error"}
WARNING: SOMETHING BAD!
{ WARNING: "fifth sample"}
根据有关 Filter and Pattern Syntax 的 AWS 文档,您不能使用 "error warning" 来捕获 "OR" 关系,因为:
- You can specify multiple terms in a metric filter pattern, but all terms must appear in a log event for there to be a match.
或者换句话说,CloudWatch Log 指标过滤器需要一个 "AND" 关系。
同样:
- Metric filters are case sensitive.
因此您将无法使用单个过滤器实现此目的。对于希望写入 Cloudwatch Logs 的 "error" 和 "warning" 的每个区分大小写的排列,您需要一个过滤器。
为了对所有这些过滤器设置单个警报,只需将每个过滤器配置为使用相同的 CloudWatch 指标即可。这是来自 AWS 控制台的示例,其中我的每个指标过滤器都针对我的 LogMetric/test
指标:
然后我可以简单地创建一个基于 LogMetric/test
指标的 CloudWatch 警报,以对这些不同指标过滤器的总和发出警报。
如果您需要过滤某些字符串,您可以 OR
它们如下:
?"String1" ?"String2"
等等。试试吧。
让我们提出两种解决问题的方法...
I - 使用过滤器(日志组)
- 转到 AWS CloudWatch;
- 单击“日志组”(“日志”);
- 搜索所需的日志组;
- Select 所需的日志组;
- 点击“搜索日志组”;
- 在相关字段中应用所需的过滤器和其他所需的搜索参数。
过滤器示例
?"ERROR" ?"Error" ?"error" ?"EXCEPT" ?"Except" ?"except"
注意: 允许您搜索多个案例 - “不区分大小写”的解决方法 - 以及所需的字符串部分。术语之间的连接符将是“或”。
II - 使用查询 (Logs Insights)
- 转到 AWS CloudWatch;
- 点击“Logs Insights”(“日志”);
- 搜索所需的日志组;
- Select 所需的日志组;
- 插入您的查询;
- 应用其他所需的搜索参数;
- 单击“运行 查询”。
查询示例
fields @timestamp, @message
| filter @message like /(?i)(error|except)/
| sort @timestamp desc
| limit 20
注意: 允许您不区分大小写并按所需的字符串部分进行搜索。术语之间的连接符将是“或”。
谢谢!
[参考:
我只是想创建一个基于 CloudWatch Logs 过滤器的警报,它会在多个条件(或连接、非和)上触发并且不区分大小写
使用 "error warning" 作为模式无效
我正在寻找对以下所有错误和警告做出反应的过滤器模式:
ERROR: first sample
Error: second sample
error: third sample
{ ERROR: "fourth sample"}
{type: "error"}
WARNING: SOMETHING BAD!
{ WARNING: "fifth sample"}
根据有关 Filter and Pattern Syntax 的 AWS 文档,您不能使用 "error warning" 来捕获 "OR" 关系,因为:
- You can specify multiple terms in a metric filter pattern, but all terms must appear in a log event for there to be a match.
或者换句话说,CloudWatch Log 指标过滤器需要一个 "AND" 关系。
同样:
- Metric filters are case sensitive.
因此您将无法使用单个过滤器实现此目的。对于希望写入 Cloudwatch Logs 的 "error" 和 "warning" 的每个区分大小写的排列,您需要一个过滤器。
为了对所有这些过滤器设置单个警报,只需将每个过滤器配置为使用相同的 CloudWatch 指标即可。这是来自 AWS 控制台的示例,其中我的每个指标过滤器都针对我的 LogMetric/test
指标:
然后我可以简单地创建一个基于 LogMetric/test
指标的 CloudWatch 警报,以对这些不同指标过滤器的总和发出警报。
如果您需要过滤某些字符串,您可以 OR
它们如下:
?"String1" ?"String2"
等等。试试吧。
让我们提出两种解决问题的方法...
I - 使用过滤器(日志组)
- 转到 AWS CloudWatch;
- 单击“日志组”(“日志”);
- 搜索所需的日志组;
- Select 所需的日志组;
- 点击“搜索日志组”;
- 在相关字段中应用所需的过滤器和其他所需的搜索参数。
过滤器示例
?"ERROR" ?"Error" ?"error" ?"EXCEPT" ?"Except" ?"except"
注意: 允许您搜索多个案例 - “不区分大小写”的解决方法 - 以及所需的字符串部分。术语之间的连接符将是“或”。
II - 使用查询 (Logs Insights)
- 转到 AWS CloudWatch;
- 点击“Logs Insights”(“日志”);
- 搜索所需的日志组;
- Select 所需的日志组;
- 插入您的查询;
- 应用其他所需的搜索参数;
- 单击“运行 查询”。
查询示例
fields @timestamp, @message
| filter @message like /(?i)(error|except)/
| sort @timestamp desc
| limit 20
注意: 允许您不区分大小写并按所需的字符串部分进行搜索。术语之间的连接符将是“或”。
谢谢!
[参考: