Exemplo: contar códigos HTTP 404 - CloudWatch Registros da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Exemplo: contar códigos HTTP 404

Usando o CloudWatch Logs, você pode monitorar quantas vezes os servidores Apache retornam uma resposta HTTP 404, que é o código de resposta para página não encontrada. Você pode monitorar isso para entender a frequência com que os visitantes de seu site não encontram o recurso que procuram. Suponha que seus registros de log estejam estruturados para incluir as seguintes informações para cada evento de log (visita ao site):

  • Endereço IP do solicitante

  • Identidade RFC 1413

  • Nome de usuário

  • Timestamp

  • Método de solicitação com o recurso solicitado e o protocolo

  • Código de resposta HTTP para a solicitação

  • Bytes transferidos na solicitação

Um exemplo disso pode ter a seguinte aparência:

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

Você pode especificar uma regra que tente fazer a correspondência de eventos dessa estrutura para erros HTTP 404, como mostrado no exemplo a seguir:

Para criar um filtro de métrica usando o console do CloudWatch
  1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

  2. No painel de navegação, escolha Grupos de logs.

  3. Escolha a Actions Criar filtro de métrica.

  4. Em Padrão de filtro, digite [IP, UserInfo, User, Timestamp, RequestInfo, StatusCode=404, Bytes].

  5. (Opcional) Para testar seu padrão de filtro, em Test Pattern (Testar padrão), insira um ou mais eventos de log a serem usados para testar o padrão. Cada evento de log deve estar dentro de uma linha, porque as quebras de linha são usadas para separar eventos de log na caixa Log event messages (Mensagens do evento de log).

  6. Escolha Próximo e, para Nome do filtro, digite HTTP404Errors.

  7. Em Detalhes da métrica, para Namespace da métrica, insira MyNameSpace.

  8. Em Nome da métrica, insira ApacheNotFoundErrorCount.

  9. Confirme se o Valor da métrica é 1. Isso especifica que a contagem é aumentada em 1 para cada evento 404 Error.

  10. Para Valor padrão, insira 0 e escolha Próximo.

  11. Escolha Criar filtro de métrica.

Para criar um filtro de métrica usando a AWS CLI

Em um prompt de comando, execute o seguinte 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

Neste exemplo, os caracteres literais, como os colchetes à direita e à esquerda, aspas duplas e string de caracteres 404 foram usados. O padrão precisa fazer a correspondência com toda a mensagem de evento de log para o evento de log a ser considerado para monitoramento.

Você pode verificar a criação do filtro de métrica usando o comando describe-metric-filters. Você deve ver uma saída semelhante a:

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]" } ] }

Agora você pode publicar alguns 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"

Logo depois de colocar esses exemplos de eventos de log, é possível recuperar a métrica indicada no console do CloudWatch como ApacheNotFoundErrorCount.