Ejemplo: contar códigos HTTP 404 - 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: contar códigos HTTP 404

Con CloudWatch los registros, puede controlar cuántas veces sus servidores Apache devuelven una respuesta HTTP 404, que es el código de respuesta de la página no encontrada. Es posible que le interese monitorizar esto para saber con qué frecuencia los visitantes no encuentran el recurso que buscan. Supongamos que los registros se estructuran para incluir la siguiente información para cada evento de registro (visita al sitio):

  • Dirección IP del solicitante

  • Identidad RFC 1413

  • Nombre de usuario

  • Timestamp

  • Solicitar método con recurso solicitado y protocolo

  • Código de respuesta HTTP para solicitud

  • Bytes transferidos en solicitud

Un ejemplo de esto podría ser el siguiente:

127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 404 2326

Podría especificar una regla que intente comparar eventos con dicha estructura para errores HTTP 404, tal y como se muestra en el ejemplo siguiente:

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 Actions, Create metric filter (Crear filtro de métricas).

  4. En Filter pattern (Patrón de filtro), escriba [IP, UserInfo, User, Timestamp, RequestInfo, StatusCode=404, Bytes].

  5. (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).

  6. Elija Next (Siguiente), y, a continuación, para Filter name (Nombre de filtro), escriba HTTP404Errors.

  7. En Metric Details (Detalles de métrica), en Metric Namespace (Espacio de nombres de métrica), escriba MyNameSpace.

  8. En Metric name (Nombre de métrica), escriba ApacheNotFoundErrorCount.

  9. Confirme que el Metric Value (Valor métrico) es 1. Esto especifica que el recuento se incrementa en 1 para cada evento de Error 404.

  10. En Default Value (Valor predeterminado), escriba 0 y, a continuación, elija Next (Siguiente).

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

Para crear un filtro métrico 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 HTTP404Errors \ --filter-pattern '[ip, id, user, timestamp, request, status_code=404, size]' \ --metric-transformations \ metricName=ApacheNotFoundErrorCount,metricNamespace=MyNamespace,metricValue=1

En este ejemplo, se han utilizado caracteres literales como los corchetes izquierdo y derecho, las comillas dobles y la cadena de caracteres 404. El patrón tiene que coincidir con todo el mensaje de evento de registro para que el evento de registro se tenga en cuenta para monitorización.

Puede verificar la creación del filtro de métricas a través del comando describe-metric-filters. Debería ver un resultado con un aspecto similar al siguiente:

aws logs describe-metric-filters --log-group-name MyApp/access.log { "metricFilters": [ { "filterName": "HTTP404Errors", "metricTransformations": [ { "metricValue": "1", "metricNamespace": "MyNamespace", "metricName": "ApacheNotFoundErrorCount" } ], "creationTime": 1399277571078, "filterPattern": "[ip, id, user, timestamp, request, status_code=404, size]" } ] }

Ahora puede publicar unos cuantos eventos manualmente:

aws logs put-log-events \ --log-group-name MyApp/access.log --log-stream-name hostname \ --log-events \ timestamp=1394793518000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb.gif HTTP/1.0\" 404 2326" \ timestamp=1394793528000,message="127.0.0.1 - bob [10/Oct/2000:13:55:36 -0700] \"GET /apache_pb2.gif HTTP/1.0\" 200 2326"

Poco después de colocar estos eventos de registro de ejemplo, puede recuperar la métrica denominada en la CloudWatch consola como ApacheNotFoundErrorCount.