AWS CloudWatch Logs 过滤器模式问题
AWS CloudWatch Logs filter pattern issues
我有几个抓取多个站点并将内容存储在数据库中的抓取工具。该程序的日志存储在 CloudWatch Logs 中。
如果爬虫成功拉回内容,它看起来类似于下面
HTTP GET: 200 - https://www.thecheyennepost.com/news/national/r
HTTP GET: 200 - https://www.thecheyennepost.com/news/f-e-warren-hous
我正在处理的问题是确定何时弹出 400 错误。下面是一个例子:
HTTP GET: 429 - https://www.livingstonparishnews.com/search/?l=25&sort=
HTTP GET: 429 - https://www.livingstonparishnews.com/search/?l=25&sort=rele
HTTP GET: 429 - https://www.ktbs.com/search/?l=25&s=start_time&sd=desc&f=
我尝试使用 status_code=4*
,但没有任何效果
我只想过滤掉所有 400 错误。
如能提供任何帮助,我们将不胜感激。
是的!现在您可以使用 Logs Insights :)
首先...您需要安装新的 UI 或以其他方式转到“Logs Insights”服务...jaja
CloudWatch -> CloudWatch Logs -> 日志组 -> [您的服务日志]
使用新的 UI 你可以看到这个按钮(或者去 aws cli 的搜索引擎中的 Logs Insights):
现在你可以看到这个:
- 这是一个查询框,就像一个SQL。
- 您要搜索的时间范围
现在你的情况..你需要这个查询(告诉我你是否需要过滤其他东西)
fields @message
| sort @timestamp desc
| filter @message like /4{1}[0-9]{1}[0-9]{1}/
我看到了你的日志,你的状态代码之间有空格,我认为这是最好的
fields @message
| sort @timestamp desc
| filter @message like / 4{1}[0-9]{1}[0-9]{1} /
就这些了
现在 运行 查询,您将只看到包含状态代码 [4xx] 的日志。
希望能解决你的问题
注意:如果您直接从搜索引擎转到 Logs Insights,您需要 select 您使用查询扫描的服务日志。在查询框顶部的组合框上。
您还可以在 CloudWatch 日志的“搜索日志组”功能中使用特殊的过滤语法。在您的情况下,您将输入以下搜索词:
[proto, verb, status=4*, ...]
我发现它使用起来更简单一些。但是,无法将查询保存在任何地方。
语法描述如下:
我有几个抓取多个站点并将内容存储在数据库中的抓取工具。该程序的日志存储在 CloudWatch Logs 中。
如果爬虫成功拉回内容,它看起来类似于下面
HTTP GET: 200 - https://www.thecheyennepost.com/news/national/r
HTTP GET: 200 - https://www.thecheyennepost.com/news/f-e-warren-hous
我正在处理的问题是确定何时弹出 400 错误。下面是一个例子:
HTTP GET: 429 - https://www.livingstonparishnews.com/search/?l=25&sort=
HTTP GET: 429 - https://www.livingstonparishnews.com/search/?l=25&sort=rele
HTTP GET: 429 - https://www.ktbs.com/search/?l=25&s=start_time&sd=desc&f=
我尝试使用 status_code=4*
,但没有任何效果
我只想过滤掉所有 400 错误。
如能提供任何帮助,我们将不胜感激。
是的!现在您可以使用 Logs Insights :)
首先...您需要安装新的 UI 或以其他方式转到“Logs Insights”服务...jaja
CloudWatch -> CloudWatch Logs -> 日志组 -> [您的服务日志]
使用新的 UI 你可以看到这个按钮(或者去 aws cli 的搜索引擎中的 Logs Insights):
现在你可以看到这个:
- 这是一个查询框,就像一个SQL。
- 您要搜索的时间范围
现在你的情况..你需要这个查询(告诉我你是否需要过滤其他东西)
fields @message
| sort @timestamp desc
| filter @message like /4{1}[0-9]{1}[0-9]{1}/
我看到了你的日志,你的状态代码之间有空格,我认为这是最好的
fields @message
| sort @timestamp desc
| filter @message like / 4{1}[0-9]{1}[0-9]{1} /
就这些了
现在 运行 查询,您将只看到包含状态代码 [4xx] 的日志。 希望能解决你的问题
注意:如果您直接从搜索引擎转到 Logs Insights,您需要 select 您使用查询扫描的服务日志。在查询框顶部的组合框上。
您还可以在 CloudWatch 日志的“搜索日志组”功能中使用特殊的过滤语法。在您的情况下,您将输入以下搜索词:
[proto, verb, status=4*, ...]
我发现它使用起来更简单一些。但是,无法将查询保存在任何地方。
语法描述如下: