本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
示例:从 Apache 日志中提取字段并分配维度
有时,使用各个日志事件中的值而不是使用计数作为指标值非常有用。此示例介绍如何创建提取规则,以创建衡量 Apache Web 服务器传输的字节数的指标。
此示例还展示了如何将维度分配给您正在创建的指标。
使用 CloudWatch 控制台创建指标筛选条件
-
访问 https://console.aws.amazon.com/cloudwatch/
打开 CloudWatch 控制台。 -
在导航窗格中,选择 Log groups(日志组)。
-
选择 Apache 服务器的日志组的名称。
-
选择
Actions
、Create metric filter(创建指标筛选条件)。 -
对于 Filter pattern(筛选条件模式),输入
[ip, id, user, timestamp, request, status_code, size]
。 -
(可选)要测试您的筛选条件模式,请在 Test Pattern(测试模式)下,输入一个或多个用于测试模式的日志事件。每个日志事件必须位于一行内,因为换行符用于在 Log event messages(日志事件消息)框中分隔日志事件。
-
选择 Next(下一步),然后对于 Filter name(筛选条件名称),键入
size
。 -
在 Metric Details(指标详细信息)下,对于 Metric namespace(指标命名空间),输入
MyNameSpace
。因为这是一个新的命名空间,请确保已选中 Create new (新建)。 -
对于 Metric name(指标名称),输入
BytesTransferred
对于 Metric value(指标值),输入
$size
。对于 Unit(单位),选择 Bytes(字节)。
对于 Dimension Name(维度名称),键入
IP
。对于 Dimension Value(维度值),键入
$ip
,然后选择 Next(下一步)。选择 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-transformations \ 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-transformations \ metricName=BytesTransferred,metricNamespace=MyNamespace,metricValue='$size',unit=Bytes,dimensions='{{IP=$ip}}'
注意
在此命令中,使用此格式指定多个维度。
aws logs put-metric-filter \ --log-group-name
my-log-group-name
\ --filter-namemy-filter-name
\ --filter-pattern 'my-filter-pattern
' \ --metric-transformations \ 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