Amazon CloudWatch Logs
用户指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

示例:从 Apache 日志提取字段

有时,使用各个日志事件中的值而不是使用计数作为指标值非常有用。此示例介绍如何创建提取规则,以创建衡量 Apache Web 服务器传输的字节数的指标。

此提取规则与日志事件的 7 个字段匹配。指标值是第七个匹配的标记的值。您可以在提取规则的 metricValue 字段中看到对该标记的引用为“$7”。

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

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

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

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

  4. Define Logs Metric Filter 屏幕上,为 Filter Pattern 键入 [ip, id, user, timestamp, request, status_code, size]

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

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

    要查看详细结果,请单击 Show test results

  7. 选择 Assign Metric,然后在 Create Metric Filter and Assign a Metric 屏幕上,为 Filter Name 键入 size

  8. Metric Details 下,为 Metric Namespace 键入 MyNameSpace

  9. Metric Name 键入 BytesTransferred

  10. Metric Value 键入 $size,然后选择 Create Filter

    如果 Metric Value 值字段不可见,请选择 Show advanced metric settings

使用 AWS CLI 创建指标筛选器

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

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

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

Copy
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