示例:从 Apache 日志中提取字段并分配维度 - Amazon CloudWatch Logs
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

示例:从 Apache 日志中提取字段并分配维度

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

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

此示例还说明如何将维度分配给您正在创建的量度。

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

  1. 通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/

  2. 在导航窗格中,选择 Log groups (日志组)

  3. 选择 Apache 服务器的日志组的名称。

  4. 选择 ActionsCreate metric filter (创建指标筛选条件)

  5. 适用于筛选条件模式,输入[ip, id, user, timestamp, request, status_code, size].

  6. (可选)测试筛选条件模式,请在测试模式中,输入一个或多个用于测试模式的日志事件。每个日志事件必须在一行内,因为换行符用于在日志事件消息

  7. 选择下一步,然后用于筛选器名称,键入size.

  8. UNTER指标详细信息, 用于指标命名空间,输入MyNameSpace. 因为这是一个新的命名空间,请确保创建新的处于选择状态。

  9. 适用于指标名称,输入BytesTransferred

  10. 适用于指标值,输入$size.

  11. 适用于单位中,选择字节.

  12. 对于 Dimension Name,键入 IP

  13. 适用于维值,键入$.ip,然后选择下一步.

  14. 选择 Create metric filter (创建指标筛选条件)

使用创建此指标筛选条件Amazon CLI

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

aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name BytesTransferred \ --filter-pattern '[ip, id, user, timestamp, request, status_code, size]' \ --metric-transformation \ metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue=$size
aws logs put-metric-filter \ --log-group-name MyApp/access.log \ --filter-name BytesTransferred \ --filter-pattern '[ip, id, user, timestamp, request, status_code, size]' \ --metric-transformation \ metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue=$size,unit=Bytes,dimensions='{EventType=$eventtype}'
注意

在此命令中,使用此格式指定多个维度。

aws logs put-metric-filter \ --log-group-name my-log-group-name \ --filter-name my-filter-name \ --filter-pattern 'my-filter-pattern' \ --metric-transformation \ metricName=my-metric-name,metricNamespace=my-metric-namespace,metricValue=my-token,unit=unit,dimensions='{dimension1=$dim,dimension2=$dim2,dim3=$dim3}''

您可以在 put-log-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