Ferramentas de logs e observabilidade

Analisador de logs da AWSpara logs de acesso do CloudFront e do ALB

Cole um log padrão do CloudFront ou um log de acesso do ALB, deixe o formato ser detectado automaticamente (ou escolha você mesmo) e clique em «Analisar log» para obter uma tabela filtrável.

Analisador de logs da AWS

Exemplo:
Tipo de log
Filtros

Log de acesso

Tudo é processado localmente no seu navegador. O texto do log nunca é enviado, e não é preciso conta na AWS.

Linhas analisadas

Analise um log para ver as linhas aqui.

Cole um log do CloudFront ou do ALB, ou carregue um exemplo, e clique em «Analisar log».

CloudFront e ALB geram dois dos logs de acesso mais comuns na AWS, e nenhum dos dois é fácil de ler a olho nu: os campos do CloudFront dependem de quais colunas você escolheu ao ativar o log, e o ALB coloca mais de 30 valores separados por espaço em uma única linha, vários entre aspas. Este analisador de logs da AWS existe para o momento em que você tem um trecho de um desses logs em mãos — copiado de um chamado de suporte, baixado do S3 ou tirado de uma exportação do CloudWatch — e precisa saber qual edge location atendeu uma requisição, qual destino devolveu um 502, ou qual IP de cliente está martelando um caminho, sem montar uma consulta no Athena para isso.

Pensado para uma checagem rápida de algumas centenas a alguns milhares de linhas, não para substituir um pipeline de análise permanente. Tudo acontece na aba do navegador; o texto do log nunca é enviado, e não é preciso ter conta na AWS nem acesso ao S3.

Por que usar este analisador de logs da AWS

Criado em torno de como esses dois formatos da AWS realmente declaram seus próprios campos.

O próprio cabeçalho do CloudFront diz quais são as colunas

Um log padrão do CloudFront começa com as linhas #Version e #Fields, que nomeiam cada coluna em ordem. Este analisador lê essas duas linhas em vez de supor um layout fixo, então quando a AWS entrega um log com mais campos, a tabela simplesmente cresce junto — sem precisar atualizar esta ferramenta nem escolher um número de versão.

Uma linha de cabeçalho #Fields do CloudFront sendo mapeada diretamente para colunas de uma tabela

Estatísticas específicas de cada formato, não um resumo genérico

No CloudFront você tem um detalhamento do resultado de cache (Hit, Miss, RefreshHit, Error) e os edge locations mais frequentes — exatamente o que se checa quando um CDN se comporta de forma estranha. No ALB você tem um detalhamento das ações executadas e a contagem de requisições em que o código de status do load balancer diverge do código do destino, geralmente o primeiro sinal de um backend com problema.

Painéis separados para o resultado de cache e a divergência de código de status entre ELB e destino

De um log bruto da AWS a uma tabela filtrável

Analise, filtre e exporte em três passos.

01

Cole o log e deixe a detecção automática trabalhar

Cole um log padrão do CloudFront ou um log de acesso do ALB. A detecção automática olha só a primeira linha não vazia: começar com #Version: significa CloudFront, e a primeira palavra ser http/https/h2/grpcs/ws/wss significa ALB. Se nenhum dos dois bater (por exemplo, se você colou só linhas de dados sem cabeçalho), escolha o tipo manualmente no menu em vez de deixar a ferramenta adivinhar.

  • Escolher CloudFront manualmente em um log sem cabeçalho #Version/#Fields não dá erro — a ferramenta cai para a lista de campos padrão embutida, que cobre o conjunto de campos atual da AWS
  • Os dois exemplos embutidos carregam com o formato já pré-selecionado, cada um com uma linha propositalmente inválida para você ver como uma divergência é reportada
02

Clique em «Analisar log» (ou Ctrl/Cmd+Enter)

A análise não roda automaticamente enquanto você digita — esses logs costumam ter milhares de linhas, algumas com mais de 30 campos, e refazer a comparação a cada tecla seria um desperdício. Clique uma vez em «Analisar log», ou use o atalho de teclado, e a tabela é preenchida.

  • Trocar o tipo de log depois não reanalisa automaticamente; a tabela antiga continua visível, só fica esmaecida até você clicar em «Analisar log» de novo
03

Filtre e exporte

Os filtros de status, caminho, IP de cliente e (no CloudFront) edge location se aplicam instantaneamente às linhas já analisadas, sem precisar clicar em «Analisar log» de novo. O painel de resumo abaixo da tabela se atualiza junto com o filtro, incluindo o detalhamento de resultado de cache ou de ações executadas, e o total de bytes e a latência média/máxima do que está sendo exibido no momento. Copie ou baixe as linhas visíveis como CSV, JSON ou texto simples.

  • O filtro de edge location só aparece quando o tipo de log é CloudFront ou Detecção automática — logs do ALB não têm um campo equivalente, então esse campo simplesmente não é exibido, em vez de aparecer desabilitado
Ir para o analisador

O que esta tabela oferece além do texto bruto

Mapeamento de campos, quatro filtros e estatísticas específicas de cada formato, feitos para investigar um log de acesso real da AWS.

Mapeamento de campos autodescritivo para o CloudFront

Os nomes das colunas vêm direto da linha #Fields do próprio log, então a tabela sempre corresponde exatamente à versão do log que você colou, incluindo qualquer subconjunto de campos personalizado escolhido ao ativar o log.

Um mapa de campos fixo e só de acréscimo para o ALB

O ALB não tem linha de cabeçalho, mas a documentação oficial da AWS é explícita: novos campos são sempre adicionados no final. Este analisador mapeia os tokens de uma linha por posição contra a lista completa de campos conhecidos e reporta quantos campos conhecidos realmente bateram — assim um log mais antigo com menos campos finais continua sendo analisado direitinho, sem erro.

Quatro filtros: status, caminho, IP de cliente, edge location

Restrinja a tabela por faixa de status ou código exato, substring ou regex de caminho, substring de IP de cliente e, no CloudFront, substring de edge location, tudo sem reanalisar o log.

Detalhamento de cache e de ações, mais divergências de status

As linhas do CloudFront são resumidas por x-edge-result-type (Hit, Miss, RefreshHit, Error e afins); as linhas do ALB são resumidas pelo valor actions_executed separado por vírgula, além de uma contagem de requisições em que os códigos do ELB e do destino não coincidem.

Linhas inválidas com número da linha

Uma linha cujo número de colunas não bate com o formato detectado é listada com o número da linha (base 1) e o texto original, para que algumas linhas estranhas nunca desapareçam silenciosamente da contagem.

Exportação em CSV, JSON ou texto simples

Exporta exatamente as linhas exibidas no momento pelos filtros, com as mesmas colunas da tabela, prontas para uma planilha ou outra ferramenta.

O que este analisador lê, e o que não lê

O comportamento exato em torno da detecção de campos, linhas inválidas e os limites de escopo, que dificilmente vão mudar.

CloudFront exige número de colunas exato, ALB precisa de pelo menos 13 tokens
Uma linha de dados do CloudFront só é aceita se o número de colunas separadas por tabulação bater exatamente com a lista de campos ativa (do #Fields, ou a padrão embutida). Uma linha do ALB precisa de pelo menos 13 tokens separados por espaço — o suficiente para chegar ao campo request entre aspas — ou é listada como linha inválida em vez de ser adivinhada.
Campos do ALB além dos 34 conhecidos simplesmente não são mapeados
Se uma versão futura da AWS adicionar campos depois dos que esta ferramenta conhece hoje, esses valores finais não aparecem como colunas extras — o aviso de cobertura de campos continua mostrando o número real de campos conhecidos em relação ao total, para você perceber quando um log é mais novo que a lista de campos desta ferramenta.
É analisado o formato de log em texto clássico, não o JSON ou Parquet do CloudFront Standard Logging v2
O CloudFront Standard Logging v2 também pode entregar arquivos JSON ou Parquet. Parquet é um formato binário orientado a colunas que um navegador não consegue analisar de forma útil como texto colado, então esta ferramenta só processa o formato de texto clássico estilo W3C (o formato legacy, e a opção de saída w3c equivalente no v2).
Sem S3, sem credenciais da AWS, sem logs em tempo real ou streaming
Esta ferramenta nunca pede nome de bucket nem chave de acesso, e nunca faz nenhuma requisição de rede — você cola um texto que já tem em mãos. Ela também não lê os logs em tempo real do CloudFront, entregues via Kinesis Data Streams em vez de como um arquivo que dá para colar.
Um único texto colado tem limite de 300.000 caracteres e 20.000 linhas
Esse limite mantém a análise rápida e previsível na aba do navegador. Divida uma exportação de log maior em vários lotes se atingir o limite.

Perguntas frequentes sobre o analisador de logs da AWS

Respostas para o que costuma ser perguntado antes de analisar online um log de acesso do CloudFront ou do ALB.

Qual o significado dos campos do log de acesso do ALB?

Como o ALB não tem linha de cabeçalho, esta ferramenta mapeia os tokens separados por espaço de cada linha, por posição, contra a ordem de campos documentada pela AWS — type, time, elb, client:port, até campos mais recentes como classification e ip_address. Esse mapeamento se aplica automaticamente assim que o ALB é escolhido ou detectado.

O que significam os campos do log do CloudFront?

Depende da configuração de log e da versão no momento em que foi ativado — por isso esta ferramenta lê os nomes dos campos direto da linha #Fields do próprio log, em vez de supor uma lista fixa. Depois de colar o log, os cabeçalhos das colunas são os nomes de campo reais daquela versão, de date e c-ip até campos menos comuns como fle-status ou sc-range-start.

Como correlacionar os logs do CloudFront e do ALB para a mesma requisição?

Esta ferramenta não une os dois logs automaticamente, ela analisa cada um separadamente. O que ela oferece são os campos necessários para cruzar manualmente: x-edge-request-id e x-forwarded-for do lado do CloudFront, e trace_id do lado do ALB — exatamente o valor que a AWS documenta para relacionar os dois saltos.

Como obter o IP real do cliente atrás do ALB quando o CloudFront está na frente?

Quando o CloudFront fica na frente de um ALB, este último geralmente vê como cliente o IP do lado edge do CloudFront. Esta ferramenta exibe o campo client:port do ALB como está em uma coluna e permite filtrar por IP de cliente sem a parte da porta, para conferir na hora se o valor é o esperado.

É possível analisar um arquivo de log no navegador sem enviar para um servidor?

Sim. O texto colado não é enviado para lugar nenhum. Análise, filtragem e exportação acontecem inteiramente na aba do navegador com JavaScript, sem upload, armazenamento ou registro no servidor, e sem pedir em nenhum momento conta na AWS ou acesso ao S3.

O que são os campos novos dos logs do ALB, como conn_trace_id ou classification?

A AWS já adicionou campos ao final do formato de log do ALB várias vezes desde 2016 — classification e classification_reason para mitigação de desync, conn_trace_id e, mais recentemente, transformed_host e ip_address. Este analisador mapeia quantos dos 34 campos conhecidos uma linha realmente tiver e reporta essa contagem, então continua útil tanto em logs antigos quanto em logs mais novos do ALB sem que você precise saber qual versão introduziu qual campo.

Este analisador suporta o formato JSON ou Parquet do CloudFront Standard Logging v2?

Não — este analisador só lê o formato de log em texto clássico, separado por tabulação (o formato legacy e a opção de saída w3c equivalente no Standard Logging v2). Parquet é um arquivo binário orientado a colunas que não dá para colar de forma útil como texto, então essa opção de saída fica fora do escopo de uma ferramenta de análise de texto baseada no navegador.

Encontrou uma linha de log real que este analisador interpreta errado?

Analise agora seu log do CloudFront ou do ALB

Cole um log padrão do CloudFront ou um log de acesso do ALB e obtenha em segundos uma tabela filtrável e exportável — sem S3, sem credenciais da AWS, sem enviar nada.

Salve este analisador de logs da AWS nos favoritos para a próxima vez que precisar conferir uma taxa de acerto de cache, encontrar quem está martelando um caminho, ou descobrir por que um target group está devolvendo o código de status errado.

Toda a análise acontece localmente no seu navegador.