Exemplo: Extrair campos de um log Apache e atribuir dimensões - 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: Extrair campos de um log Apache e atribuir dimensões

Às vezes, em vez de contar, é útil usar os valores em eventos de log individuais para valores de métrica. Este exemplo mostra como criar uma regra de extração para criar uma métrica que meça os bytes transferidos por um servidor web Apache.

Esta regra de extração faz a correspondência dos sete campos do evento de log. O valor da métrica é o valor do sétimo token correspondente. Você pode ver a referência para o token como "$7" no campo metricValue da regra de extração.

O exemplo também mostra como atribuir dimensões à métrica que você está criando.

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

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

  3. Escolha o nome do grupo de logs para o servidor Apache.

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

  5. Em Filter pattern (Padrão de filtro), insira [ip, id, user, timestamp, request, status_code, size].

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

  7. Escolha Next (Próximo) e, em Filter name (Nome do filtro), digite size.

  8. Em Metric details (Detalhes da métrica), em Metric namespace (Namespace da métrica), insira MyNameSpace. Como se trata de um novo namespace, verifique se a opção Create new (Criar novo) está selecionada.

  9. Em Metric name (Nome da métrica), insira BytesTransferred

  10. Em Metric Value (Valor de métrica), insira $size.

  11. Em Unit (Unidade), selecione Bytes.

  12. Para Dimension Name, digite IP.

  13. Em Dimension Value (Valor da dimensão), digite $ip e escolha Next (Próximo).

  14. Escolha Criar filtro de métrica.

Para criar esse filtro métrico usando o AWS CLI

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

Nesse comando, use esse formato para especificar várias dimensões.

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

Você pode usar os dados a seguir em put-log-event chamadas para testar essa regra. Isso gerará duas métricas diferentes se você não removeu a regra de monitoramento no exemplo 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