如何从日志组指标过滤器创建 CloudWatch 警报
How to create a CloudWatch alarm from log group metric filter
我正在尝试从日志组指标过滤器创建 CloudWatch 警报。我已经创建了指标过滤器,但我无法设置警报,因为似乎没有数据被绘制成图表。
我正在尝试设置一个指标过滤器来跟踪我们的 ECS 容器日志中的 502 错误。
我转到 CloudWatch > 日志组和 select 我们的组 'example-ecs'。
该组包含来自 ECS 容器的日志流。有很多,因为在部署网站时会创建一个新流。我认为是预期的,有 100 条日志。
web/example-task-production/1XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX 2022-04-14 13:54:14 (UTC+02:00)
web/example-task-production/2XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX 2022-05-05 12:09:00 (UTC+02:00)
web/example-task-production/3XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX 2022-04-04 18:11:03 (UTC+02:00)
web/example-task-production/4XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX 2022-04-05 09:47:15 (UTC+02:00)
如果我 'search all' 使用以下过滤器:
[timestamp, timezone, server, from, ip, request, method, url, response, http, codetitle, code=502, bytes, sent, time]
我得到了这些搜索结果(符合预期):
05/Apr/2022:16:04:28 +0000 Server: From: XXX.XX.X.XXX Request: POST https://example.com/broken/page Response: HTTP Code: 502 Bytes Sent: 315 Time: 0.042
05/Apr/2022:16:42:02 +0000 Server: From: XXX.XX.X.XXX Request: POST https://example.com/broken/page Response: HTTP Code: 502 Bytes Sent: 315 Time: 0.062
05/Apr/2022:19:14:50 +0000 Server: From: XXX.XX.X.XXX Request: POST https://example.com/broken/page Response: HTTP Code: 502 Bytes Sent: 315 Time: 0.043
然后我使用这个过滤器模式创建了一个指标过滤器。使用以下设置:
过滤模式:
[timestamp, timezone, server, from, ip, request, method, url, response, http, codeTitle, code=502, bytes, sent, time]
'Test pattern'也符合上面的测试。
过滤器名称: HTTP502Errors
指标命名空间: ExampleMetric
指标名称: ServerErrorCount
指标值: 1
默认值 – 可选: 0
单位 – 可选: 计数
在过去的 24 小时内,我的日志中应该有 5 个条目。当我尝试绘制此新指标的图表或创建警报时,其中似乎没有数据。我该怎么做?
创建指标筛选器时,您只能看到创建指标筛选器后生成的数据。
来自docs:
Filters do not retroactively filter data. Filters only publish the metric data points for events that happen after the filter was created
因此您将看不到 5 个匹配的日志条目,只能看到新的。
我正在尝试从日志组指标过滤器创建 CloudWatch 警报。我已经创建了指标过滤器,但我无法设置警报,因为似乎没有数据被绘制成图表。
我正在尝试设置一个指标过滤器来跟踪我们的 ECS 容器日志中的 502 错误。
我转到 CloudWatch > 日志组和 select 我们的组 'example-ecs'。
该组包含来自 ECS 容器的日志流。有很多,因为在部署网站时会创建一个新流。我认为是预期的,有 100 条日志。
web/example-task-production/1XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX 2022-04-14 13:54:14 (UTC+02:00)
web/example-task-production/2XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX 2022-05-05 12:09:00 (UTC+02:00)
web/example-task-production/3XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX 2022-04-04 18:11:03 (UTC+02:00)
web/example-task-production/4XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX 2022-04-05 09:47:15 (UTC+02:00)
如果我 'search all' 使用以下过滤器:
[timestamp, timezone, server, from, ip, request, method, url, response, http, codetitle, code=502, bytes, sent, time]
我得到了这些搜索结果(符合预期):
05/Apr/2022:16:04:28 +0000 Server: From: XXX.XX.X.XXX Request: POST https://example.com/broken/page Response: HTTP Code: 502 Bytes Sent: 315 Time: 0.042
05/Apr/2022:16:42:02 +0000 Server: From: XXX.XX.X.XXX Request: POST https://example.com/broken/page Response: HTTP Code: 502 Bytes Sent: 315 Time: 0.062
05/Apr/2022:19:14:50 +0000 Server: From: XXX.XX.X.XXX Request: POST https://example.com/broken/page Response: HTTP Code: 502 Bytes Sent: 315 Time: 0.043
然后我使用这个过滤器模式创建了一个指标过滤器。使用以下设置:
过滤模式:
[timestamp, timezone, server, from, ip, request, method, url, response, http, codeTitle, code=502, bytes, sent, time]
'Test pattern'也符合上面的测试。
过滤器名称: HTTP502Errors
指标命名空间: ExampleMetric
指标名称: ServerErrorCount
指标值: 1
默认值 – 可选: 0
单位 – 可选: 计数
在过去的 24 小时内,我的日志中应该有 5 个条目。当我尝试绘制此新指标的图表或创建警报时,其中似乎没有数据。我该怎么做?
创建指标筛选器时,您只能看到创建指标筛选器后生成的数据。
来自docs:
Filters do not retroactively filter data. Filters only publish the metric data points for events that happen after the filter was created
因此您将看不到 5 个匹配的日志条目,只能看到新的。