Ejemplo: extraer campos desde un registro de Apache y asignar dimensiones - Amazon CloudWatch Logs

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Ejemplo: extraer campos desde un registro de Apache y asignar dimensiones

A veces, en lugar de contar, se recomienda utilizar valores dentro de eventos de registro individuales para valores de métricas. Este ejemplo muestra cómo puede crear una regla de extracción para crear una métrica que mida los bytes transferidos por un servidor web Apache.

En este ejemplo también se muestra cómo asignar dimensiones a la métrica que se crea.

Para crear un filtro métrico mediante la CloudWatch consola
  1. Abra la CloudWatch consola en https://console.aws.amazon.com/cloudwatch/.

  2. En el panel de navegación, seleccione Grupos de registro.

  3. Elija el nombre del grupo de registros para el servidor Apache.

  4. Elija Actions, Create metric filter (Crear filtro de métricas).

  5. En Filter pattern (Patrón de filtro), ingrese [ip, id, user, timestamp, request, status_code, size].

  6. (Opcional) Para probar el patrón de filtro, en Test Pattern (Patrón de prueba), ingrese uno o más eventos de registro a utilizar para probar el patrón. Cada evento de registro debe estar dentro de una línea, ya que los saltos de línea se utilizan para separar los eventos de registro en el cuadro de Log event messages (Mensajes de eventos de registro).

  7. Elija Next (Siguiente) y, a continuación, en Filter Name (Nombre de filtro), tipo size.

  8. En Metric Details (Detalles de métrica), en Metric Namespace (Espacio de nombres de métrica), ingrese MyNameSpace. Debido a que este es un nuevo espacio de nombres, asegúrese de que la opción Create new (Crear nuevo) esté seleccionada.

  9. En Metric name (Nombre de métrica), ingrese BytesTransferred.

  10. En Metric Value (Valor de métrica), ingrese $size.

  11. En Unit (Unidad), seleccione Bytes.

  12. Para Dimension Name, escriba IP.

  13. En Dimension Value (Valor de dimensión) escriba $ip y, a continuación, elija Next (Siguiente).

  14. Elija Create metric filter (Crear filtro de métricas).

Para crear este filtro de métricas mediante el AWS CLI

En el símbolo del sistema, ejecute el siguiente comando

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}}'
nota

En este comando, utilice este formato para especificar varias dimensiones.

aws logs put-metric-filter \ --log-group-name my-log-group-name \ --filter-name my-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}'

Puede usar los siguientes datos en las put-log-event llamadas para probar esta regla. Esto genera dos métricas diferentes si no elimina la regla de monitorización en el ejemplo anterior.

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