Amazon CloudWatch Logs
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

示例:对 HTTP 4xx 代码进行计数

如前面的示例一样,您可能需要监控 Web 服务访问日志和监控 HTTP 响应代码级别。例如,您可能需要监控所有 HTTP 400 级的错误。但是,您可能不想为每一个返回代码指定新的指标筛选器。

以下示例演示如何创建包括访问日志中所有 400 级别 HTTP 代码响应的指标,该访问日志使用 示例:对 HTTP 404 代码进行计数 示例中的 Apache 访问日志格式。

使用 CloudWatch 控制台创建指标筛选器

  1. 通过以下网址打开 CloudWatch 控制台:https://console.amazonaws.cn/cloudwatch/

  2. 在导航窗格中,选择 Logs

  3. 在内容窗格中,选择一个日志组,然后选择 Create Metric Filter

  4. 定义日志指标筛选器屏幕上,为筛选条件模式键入 [ip, id, user, timestamp, request, status_code=4*, size]

  5. 要测试筛选器模式,请为 Select Log Data to Test 选择要对其测试指标筛选器的日志组,然后选择 Test Pattern

  6. Results (结果) 下,CloudWatch Logs 显示一条消息,表明筛选器模式在日志文件中出现的次数。

    要查看详细结果,请单击 Show test results (显示测试结果)

  7. 选择分配指标,然后在创建指标筛选器并分配指标屏幕上,为筛选条件名称键入 HTTP4xxErrors

  8. 指标详细信息下,为指标命名空间键入 MyNameSpace

  9. 对于 Metric Name,键入 HTTP4xxErrors

  10. 选择 Show advanced metric settings 并确认 Metric Value 为 1。这指定对于每个包含 4xx 错误的日志事件,计数以 1 累加。

  11. 对于 Default Value,键入 0,然后选择 Create Filter

使用 AWS CLI 创建指标筛选器

在命令提示符处,运行以下命令:

aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name HTTP4xxErrors \ --filter-pattern '[ip, id, user, timestamp, request, status_code=4*, size]' \ --metric-transformations \ metricName=HTTP4xxErrors,metricNamespace=MyNamespace,metricValue=1,defaultValue=0

您可以在 put-event 调用中使用以下数据来测试此规则。如果不删除前例中的监控规则,则会生成两个不同的指标。

127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287 127.0.0.1 - - [24/Sep/2013:11:49:52 -0700] "GET /index.html HTTP/1.1" 404 287 127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /~test/ HTTP/1.1" 200 3 127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308 127.0.0.1 - - [24/Sep/2013:11:50:51 -0700] "GET /favicon.ico HTTP/1.1" 404 308 127.0.0.1 - - [24/Sep/2013:11:51:34 -0700] "GET /~test/index.html HTTP/1.1" 200 3