Você pode habilitar o registro em log da sua distribuição do Amazon CloudFront para enviar logs de acesso à Web para o New Relic.
Opções para envio de log
Há duas opções para enviar logs do CloudFront: registro em log padrão ou log em tempo real.
Standard logs são enviados do CloudFront para um bucket S3 onde são armazenados. Você usaria então nosso gatilho AWS Lambda para enviar o log do S3 para New Relic. Revise a documentação do Amazon CloudFront para configurar e usar o log padrão (log de acesso). Contém informações detalhadas sobre como criar seu bucket S3 e definir as permissões apropriadas. O log padrão inclui todos os campos de dados e é enviado ao S3 e depois ao New Relic a cada 5 minutos. Para obter instruções detalhadas sobre como configurar logs padrão no console da Amazon e enviá-los para a New Relic por meio de nosso gatilho S3 Lambda, consulte a seção Habilitar log padrão.
Real-time logs são enviados segundos após o recebimento das solicitações usando um consumidor Kinesis Data Stream e um Kinesis Data Firehose para entrega à New Relic. Revise a documentação do Amazon CloudFront para configurar o tempo real log. tempo real log são configuráveis e permitem configurar uma taxa de amostragem (qual porcentagem de log enviar), selecionar campos específicos para receber nos registros log e definir comportamentos de cache específicos (padrões de caminho) para os quais você deseja receber o log. O log real do tempo também requer um bucket de backup S3 para enviar todos os dados ou apenas dados com falha. Portanto, para ativar o tempo real log, você também deve seguir nossas instruções para criar um bucket S3. Para obter instruções detalhadas sobre como configurar o log padrão no console Amazaon e enviá-los para New Relic por meio de nosso gatilho S3 Lambda, consulte a seção Habilitar tempo real log seção.
Para ambas as opções, você pode usar nossas regras de análise de log integradas para analisar automaticamente seu log de acesso do CloudFront e nosso dashboard de início rápido para obter insights imediatos sobre seus dados. Para que as regras de análise integradas funcionem e preencham os dados no widget do dashboard Início Rápido fornecido, você deve configurar o atributo logtype
conforme definido nas instruções. Para obter detalhes adicionais sobre a análise do log real do tempo se você selecionar apenas alguns dos campos de registro, consulte a seção Análise
Crie um bucket S3 para armazenar log do CloudFront
Para habilitar o log padrão ou o log tempo real para sua distribuição do CloudFront, você deve primeiro criar um bucket S3 para usar para armazenar o log de acesso do CloudFront:
No Console de gerenciamento da AWS, escolha
Services > All services > S3
.
Selecione
Create bucket
.
Insira um
Bucket name
e selecione o
AWS region
de sua preferência. (Observe que seu bucket S3 deve estar na mesma região que sua função do Lambda que você cria na próxima seção se estiver usando o log padrão.)
Na seção
Object ownership
, selecione
ACLs enabled
.
Selecione
Create bucket
.
Agora você pode ativar o registro padrão ou em tempo real. Para obter instruções sobre essas opções, continue lendo.
Habilitar registro padrão
Atualize sua distribuição do CloudFront para ativar o log padrão:
No Console de gerenciamento da AWS, escolha
Services > All Services > CloudFront
.
Clique na sua distribuição
ID
. Na guia Geral, selecione
Edit
na seção Configuração.
Na seção
Standard logging
, selecione
On
para ativar a geração de registros e exibir as definições de configuração da geração de registros.
Para
S3 bucket
, pesquise e escolha o nome do bucket S3 que você criou acima.
Opcional: você pode adicionar um prefixo de log como
cloudfront_logs
.Escolha
Save changes
.
Dentro de cinco minutos, você deverá começar a ver o arquivo de log aparecendo em seu bucket S3 com o seguinte formato de nome de arquivo:
<optional prefix>/<distribution ID>.YYYY-MM-DD-HH.unique-ID.gz
A seguir, você deve instalar e configurar nossa função AWS do Lambda NewRelic-log-ingestion-s3
para enviar o log de acesso no S3 para o New Relic. Você precisará de uma única função do Lambda para o log do Amazon CloudFront para poder definir a variável de ambiente LOG_TYPE
apropriada: isso permite que você use nossas regras de análise integradas do CloudFront e o dashboard de início rápido. Se você já possui esta função do Lambda instalada em uma região e está utilizando-a para enviar outro log do S3 para New Relic (por exemplo log ALB/NLB), será necessário instalar a função do Lambda novamente em outra região. Além disso, conforme observado anteriormente, seu bucket S3 para armazenar log de acesso e sua função do Lambda para enviar log S3 para New Relic devem estar na mesma região.
Para executar estas etapas:
Siga as instruções aqui para configurar AWS Lambda para enviar log do S3.
Após a instalação da função do Lambda, selecione
Functions > NewRelic-s3-log-ingestion
.
Selecione o botão
+ Add trigger
em S3.
Para
Trigger Configuration
, selecione S3.
Para
Bucket
, pesquise e escolha o bucket S3 que você criou acima.
Na seção
Recursive invocation
, marque a caixa de confirmação e escolha
Add
.
Na guia
Configuration
da função, escolha a opção
Environment variables
à esquerda.
Selecione
Edit
e para
LOG_TYPE
insiracloudfront-web
.Selecione
Save
.
Dentro de cinco minutos você deverá começar a ver seu log na interface de log. Para confirmar que você está recebendo o log, pesquise logtype:cloudfront-web
na barra de pesquisa da interface de log ou execute uma consulta NRQL com algo como FROM Log SELECT * WHERE logtype='cloudfront-web'
Habilitar registro de tempo real
Para habilitar o registro em log em tempo real para sua distribuição do CloudFront, primeiro você deve criar um Kinesis Data Stream para receber os logs do CloudFront:
No Console de gerenciamento da AWS, escolha
Services > Kinesis
.
Selecione
Data streams
e depois
Create data stream
.
Insira um
Data stream name
. Por exemplo,
CloudFront-DataStream
.Selecione um modo de capacidade de fluxo de dados de sua preferência.
Selecione
Create data stream
.
Na seção
Consumers
, selecione
Process with delivery stream
.
Para
Destination
, selecione
New Relic
.
Insira um
Delivery stream name
. Por exemplo,
CloudFront-DeliveryStream
.Na seção de configurações
Destination
, para o URL endpoint HTTP, selecione
New Relic logs - US
ou
New Relic logs - EU
.
Para
API key
, insira o
da sua conta New Relic.
Selecione
Add parameter
.
Se você selecionar todos os campos para login na etapa 21 abaixo, para
Key
insira
logtype
e paraValue
insira
cloudfront-rtl
. Se você planeja selecionar um subconjunto de campos para registro na Etapa 21 abaixo, insiracloudfront-rtl-custom
. Se você não optar por selecionar todos os campos, consulte a seção tempo real análise de log abaixo para obter informações sobre como criar uma regra de análise personalizada para seu log.Na seção
Backup settings
, você pode escolher apenas
Failed data
ou
All data
para a opção
Source record backup in Amazon S3
, com base em sua preferência.
Para o bucket de backup S3, selecione
Browse
para pesquisar e selecionar o nome do bucket S3 que você criou acima para armazenar o log do CloudFront.
Escolha
Create delivery stream
.
Em seguida, crie uma configuração de registro em tempo real e anexe-a à sua distribuição do CloudFront:
No Console de gerenciamento da AWS, escolha
Services > CloudFront
.
Em
Telemetry section
à esquerda, selecione
Logs
.
Clique na guia
Real-time configurations
e escolha
Create configuration
.
Insira um nome de configuração. Por exemplo:
CloudFront-RealTimeLogs
.Insira uma taxa de amostragem de
1
a100
.Para
Fields
, selecione
All fields
ou escolha os campos que deseja incluir em seu registro.
Para
Endpoint
, selecione o nome do fluxo de dados criado na Etapa 3. Por exemplo:
CloudFront-DataStream
.Na seção
Distrubutions
, selecione seu ID de distribuição do CloudFront.
Para
Cache behaviors
, marque
Default (*)
.
Escolha
Create configuration
.
Dentro de alguns minutos você deverá começar a ver seu log em nossa interface de log. Para confirmar que você está recebendo o log do tempo real, você pode pesquisar por logtype:cloudfront-rtl*
na barra de pesquisa da interface de log ou por meio de uma consulta NRQL como FROM Log SELECT * WHERE logtype LIKE 'cloudfront-rtl%'
Tempo real análise de log
Nossa regra de análise integrada para tempo real log assume que todos os campos serão log. Se você optar por log apenas um subconjunto de campos, deverá definir uma regra de análise customizada que corresponda ao seu formato log . Isso é necessário para que o log seja analisado corretamente e para usar nosso dashboard de início rápido.
Para criar uma regra de análise personalizada, selecione Parsing na seção Manage data da interface de registro.
Para
Rule name
, insira
CloudFront custom parsing rule
.Para
Filter logs based on NRQL
, insira
logtype='cloundfront-rtl-custom'
.Atualize a lógica de análise do Grok abaixo para incluir
only
os campos que você selecionou na configuração do log tempo real. Por exemplo, se você optar por não incluir o campo
cs_headers
, remova%{SPACE}%{NOTSPACE:cs_headers}%
do Grok e assim por diante.^%{NOTSPACE:timestamp}.\d{3}%{SPACE}%{NOTSPACE:c_ip}%{SPACE}%{NUMBER:time_to_first_byte:INT}%{SPACE}%{NUMBER:sc_status:INT}%{SPACE}%{NUMBER:sc_bytes:INT}%{SPACE}%{WORD:cs_method}%{SPACE}%{NOTSPACE:cs_protocol}%{SPACE}%{NOTSPACE:cs_host}%{SPACE}%{NOTSPACE:cs_uri_stem}%{SPACE}%{NUMBER:cs_bytes:INT}%{SPACE}%{NOTSPACE:x_edge_location}%{SPACE}%{NOTSPACE:x_edge_request_id}%{SPACE}%{NOTSPACE:x_host_header}%{SPACE}%{NUMBER:time_taken:INT}%{SPACE}%{NOTSPACE:cs_protocol_version}%{SPACE}%{NOTSPACE:cs_ip_version}%{SPACE}%{NOTSPACE:cs_user_agent}%{SPACE}%{NOTSPACE:cs_referer}%{SPACE}%{NOTSPACE:cs_cookie}%{SPACE}%{NOTSPACE:cs_uri_query}%{SPACE}%{NOTSPACE:x_edge_response_result_type}%{SPACE}%{NOTSPACE:x_forwarded_for}%{SPACE}%{NOTSPACE:ssl_protocol}%{SPACE}%{NOTSPACE:ssl_cipher}%{SPACE}%{NOTSPACE:x_edge_result_type}%{SPACE}%{NOTSPACE:fle_encrypted_fields}%{SPACE}%{NOTSPACE:fle_status}%{SPACE}%{NOTSPACE:sc_content_type}%{SPACE}%{NOTSPACE:sc_content_len}%{SPACE}%{NOTSPACE:sc_range_start}%{SPACE}%{NOTSPACE:sc_range_end}%{SPACE}%{NUMBER:c_port:INT}%{SPACE}%{NOTSPACE:x_edge_detailed_result_type}%{SPACE}%{NOTSPACE:c_country}%{SPACE}%{NOTSPACE:cs_accept_encoding}%{SPACE}%{NOTSPACE:cs_accept}%{SPACE}%{NOTSPACE:cache_behavior_path_pattern}%{SPACE}%{NOTSPACE:cs_headers}%{SPACE}%{NOTSPACE:cs_header_names}%{SPACE}%{NOTSPACE:cs_headers_count}$Cole o Grok atualizado na seção de lógica de análise e selecione
Test grok
para validar se seu analisador está funcionando.
Ative a regra e escolha
Save parsing rule
.
Uma captura de tela da configuração de análise personalizada do CloudFront.
Qual é o próximo?
Nosso início rápido para o log do Amazon CloudFront Access inclui um dashboard pré-construído.
Aqui estão algumas ideias para os próximos passos:
Comece em minutos com um dashboard predefinido para ver as principais métricas do seu log de acesso do Amazon CloudFront. Acesse o log de acesso do Amazon CloudFront início rápido e clique em
Install now
.
Explore os dados de registro em sua plataforma com nossa interface de registros.
Obtenha visibilidade mais profunda dos dados de desempenho do seu aplicativo e da plataforma encaminhando seu log com nossos recursos de logs contextualizados .
Configure alertas.
Desativar encaminhamento de logs
Para desativar os recursos de encaminhamento de logs, existem duas opções. Se você quiser apenas parar de enviar o log do S3 para o New Relic , poderá excluir o gatilho do S3 na NewRelic-log-ingestion-s3
função do Lambda. Se quiser desabilitar completamente os logs de acesso do Amazon CloudFront, você precisará excluir o gatilho, bem como desativar o registro em log nas configurações gerais da distribuição do CloudFront.