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.
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
-
Abra o CloudWatch console em https://console.aws.amazon.com/cloudwatch/
. -
No painel de navegação, escolha Grupos de logs.
-
Escolha o nome do grupo de logs para o servidor Apache.
-
Escolha a
Actions
Criar filtro de métrica. -
Em Filter pattern (Padrão de filtro), insira
[ip, id, user, timestamp, request, status_code, size]
. -
(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).
-
Escolha Next (Próximo) e, em Filter name (Nome do filtro), digite
size
. -
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. -
Em Metric name (Nome da métrica), insira
BytesTransferred
Em Metric Value (Valor de métrica), insira
$size
.Em Unit (Unidade), selecione Bytes.
Para Dimension Name, digite
IP
.Em Dimension Value (Valor da dimensão), digite
$ip
e escolha Next (Próximo).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-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}'
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