• /
  • EnglishEspañol日本語한국어Português
  • EntrarComeçar agora

Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

Analisando dados log

Log parsing é o processo de conversão de dados log não estruturados em atributo (pares de valor principal) com base nas regras que você define. Você pode usar esses atributos em sua consulta NRQL para facetar ou filtrar o registro de maneiras úteis.

O New Relic analisa os dados de log automaticamente de acordo com determinadas regras de análise. Neste documento, você aprenderá como funciona a análise de log e como criar suas próprias regras de análise personalizadas.

Você também pode criar, consultar e gerenciar suas regras de análise de log usando NerdGraph, nossa API GraphQL. Uma ferramenta útil para isso é nosso Nerdgraph API Explorer. Para obter mais informações, consulte nosso tutorial NerdGraph para análise de arquivos.

Aqui está um vídeo de 5 minutos sobre análise de log:

Exemplo de análise

Um bom exemplo é um log de acesso NGINX padrão contendo texto não estruturado. É útil para pesquisar, mas não muito mais. Aqui está um exemplo de uma linha típica:

127.180.71.3 - - [10/May/1997:08:05:32 +0000] "GET /downloads/product_1 HTTP/1.1" 304 0 "-" "Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)"

Em um formato não analisado, você precisaria fazer uma pesquisa de texto completo para responder à maioria das perguntas. Após a análise, o log é organizado em atributos, como response code e request URL:

{
"remote_addr": "93.180.71.3",
"time": "1586514731",
"method": "GET",
"path": "/downloads/product_1",
"version": "HTTP/1.1",
"response": "304",
"bytesSent": 0,
"user_agent": "Debian APT-HTTP/1.3 (0.8.16~exp12ubuntu10.21)"
}

A análise torna mais fácil criar consultas personalizadas relacionadas a esses valores. Isso ajuda você a entender a distribuição dos códigos de resposta por URL de solicitação e a encontrar rapidamente páginas problemáticas.

Como funciona a análise de log

Aqui está uma visão geral de como New Relic implementa a análise de log:

Análise de log

Como funciona

O que

  • A análise é aplicada a um campo selecionado específico. Por padrão, o campo message é usado. No entanto, qualquer campo/atributo pode ser escolhido, mesmo aquele que não exista atualmente em seus dados.
  • Cada regra de análise é criada usando uma cláusula NRQL WHERE que determina qual log a regra tentará analisar.
  • Para simplificar o processo de correspondência, recomendamos adicionar um atributo logtype ao seu registro. Entretanto, você não está limitado a usar logtype; um ou mais atributos podem ser usados como critérios de correspondência na cláusula NRQL WHERE.

Quando

  • A análise será aplicada apenas uma vez a cada mensagem do log. Se várias regras de análise corresponderem ao log, somente a primeira que for bem-sucedida será aplicada.
  • As regras de análise não são ordenadas. Se mais de uma regra de análise corresponder a um log, uma será escolhida aleatoriamente. Certifique-se de criar suas regras de análise para que não correspondam ao mesmo log.
  • A análise ocorre durante a ingestão de log, antes que os dados sejam gravados no NRDB. Depois que os dados forem gravados no armazenamento, eles não poderão mais ser analisados.
  • A análise ocorre no pipeline before ocorrem enriquecimentos de dados. Tenha cuidado ao definir os critérios de correspondência para uma regra de análise. Se o critério for baseado em um atributo que não existe até que a análise ou enriquecimento ocorra, esses dados não estarão presentes no log quando ocorrer a correspondência. Como resultado, nenhuma análise acontecerá.

Como

  • As regras podem ser escritas em Grok, regex ou uma mistura dos dois. Grok é uma coleção de padrões que abstraem expressões regulares complicadas.
  • Oferecemos suporte à sintaxe Java Regex em nossa interface de análise. Para nomes de atributos ou campos em grupos de captura, o Java Regex permite apenas [A-Za-z0-9].

Analisar atributo usando Grok

Os padrões de análise são especificados usando Grok, um padrão da indústria para análise de mensagens do log. Qualquer log recebido com um campo logtype será verificado em relação às nossas regras de análise integradas e, se possível, o padrão Grok associado será aplicado ao log.

Grok é um superconjunto de expressões regulares que adiciona padrões nomeados integrados para serem usados no lugar de expressões regulares literais complexas. Por exemplo, em vez de lembrar que um número inteiro pode ser correspondido com a expressão regular (?:[+-]?(?:[0-9]+)), você pode simplesmente escrever %{INT} para usar o padrão Grok INT, que representa a mesma expressão regular.

Os padrões Grok têm a sintaxe:

%{PATTERN_NAME[:OPTIONAL_EXTRACTED_ATTRIBUTE_NAME[:OPTIONAL_TYPE[:OPTIONAL_PARAMETER]]]}

Onde:

  • PATTERN_NAME é um dos padrões Grok suportados. O nome do padrão é apenas um nome amigável que representa uma expressão regular. Eles são exatamente iguais à expressão regular correspondente.
  • OPTIONAL_EXTRACTED_ATTRIBUTE_NAME, se fornecido, é o nome do atributo que será adicionado à sua mensagem do log com o valor correspondente ao nome do padrão. É equivalente a usar um grupo de captura nomeado usando expressões regulares. Se isso não for fornecido, a regra de análise corresponderá apenas a uma região da sua string, mas não extrairá um atributo com seu valor.
  • OPTIONAL_TYPE especifica o tipo de valor de atributo a ser extraído. Se omitido, os valores serão extraídos como strings. Por exemplo, para extrair o valor 123 de "File Size: 123" como um número para o atributo file_size, use value: %{INT:file_size:int}.
  • OPTIONAL_PARAMETER especifica um parâmetro opcional para determinados tipos. Atualmente apenas o tipo datetime recebe um parâmetro. Veja detalhes abaixo.

Você também pode usar uma combinação de expressões regulares e nomes de padrões Grok na string correspondente.

Clique neste link para obter uma lista de padrões Grok suportados e aqui para obter uma lista de tipos Grok suportados.

Observe que os nomes das variáveis devem ser definidos explicitamente e estar em letras minúsculas, como %{URI:uri}. Expressões como %{URI} ou %{URI:URI} não funcionariam.

Organizando por tipo de log

O pipeline de ingestão de log do New Relic pode analisar dados combinando um evento de log com uma regra que descreve como o log deve ser analisado. Existem duas maneiras de analisar o evento de log:

As regras são uma combinação de lógica correspondente e lógica de análise. A correspondência é feita definindo uma correspondência de consulta em um atributo do log. As regras não são aplicadas retroativamente. log coletados antes da criação de uma regra não são analisados por essa regra.

A maneira mais simples de organizar seu log e como eles são analisados é incluir o campo logtype em seu evento de log. Isso informa ao New Relic qual regra integrada aplicar ao log.

Importante

Depois que uma regra de análise estiver ativa, os dados analisados pela regra serão alterados permanentemente. Isso não pode ser revertido.

Limites

A análise é computacionalmente cara, o que apresenta riscos. A análise é feita para regras personalizadas definidas em uma conta e para correspondência de padrões com um log. Um grande número de padrões ou regras personalizadas mal definidas consumirão uma enorme quantidade de memória e recursos de CPU, ao mesmo tempo que levarão muito tempo para serem concluídos.

Para evitar problemas, aplicamos dois limites de análise: por mensagem, por regra e por conta.

Limite

Descrição

Por mensagem por regra

O limite por mensagem por regra evita que o tempo gasto na análise de qualquer mensagem seja superior a 100 ms. Se esse limite for atingido, o sistema deixará de tentar analisar a mensagem do log com aquela regra.

O pipeline de ingestão tentará executar qualquer outro aplicável nessa mensagem, e a mensagem ainda será passada pelo pipeline de ingestão e armazenada no NRDB. A mensagem do log estará em seu formato original, não explorado.

Por conta

O limite por conta existe para evitar que as contas utilizem mais do que a sua quota-parte de recursos. O limite considera o tempo total gasto no processamento de all mensagens do log de uma conta por minuto.

Dica

Para verificar facilmente se seus limites de taxa foram atingidos, acesse a página do sistema Limits na interface do New Relic.

Regras de análise integradas

Os formatos de log comuns possuem regras de análise bem estabelecidas e já criadas para eles. Para aproveitar o benefício das regras de análise integradas, adicione o atributo logtype ao encaminhar o registro. Defina o valor como algo listado na tabela a seguir e as regras para esse tipo de log serão aplicadas automaticamente.

Lista de regras integradas

Os seguintes valores de atributo logtype são mapeados para uma regra de análise predefinida. Por exemplo, para consultar o aplicativo Load Balancer:

  • Na interface New Relic , use o formato logtype:"alb".
  • No NerdGraph, use o formato logtype = 'alb'.

Para saber quais campos são analisados para cada regra, consulte nossa documentação sobre regras de análise integradas.

logtype

Fonte log

Exemplo de consulta correspondente

apache

Log de acesso do Apache

logtype:"apache"

apache_error

Registro de erros do Apache

logtype:"apache_error"

alb

Log do balanceador de carga do aplicativo

logtype:"alb"

cassandra

Registro de Cassandra

logtype:"cassandra"

cloudfront-web

CloudFront (log da web padrão)

logtype:"cloudfront-web"

cloudfront-rtl

CloudFront (registro da web em tempo real)

logtype:"cloudfront-rtl"

elb

Registro do Elastic Load Balancer

logtype:"elb"

haproxy_http

Registro HAProxy

logtype:"haproxy_http"

ktranslate-health

Registro de integridade do contêiner KTranslate

logtype:"ktranslate-health"

linux_cron

Cron do Linux

logtype:"linux_cron"

linux_messages

Mensagens Linux

logtype:"linux_messages"

iis_w3c

Log do servidor Microsoft IIS - formato W3C

logtype:"iis_w3c"

mongodb

Registro do MongoDB

logtype:"mongodb"

monit

Registro de monitoramento

logtype:"monit"

mysql-error

Registro de erros MySQL

logtype:"mysql-error"

nginx

Registro de acesso NGINX

logtype:"nginx"

nginx-error

Registro de erros do NGINX

logtype:"nginx-error"

postgresql

Registro PostgreSQL

logtype:"postgresql"

rabbitmq

Registro do Rabbitmq

logtype:"rabbitmq"

redis

Registro do Redis

logtype:"redis"

route-53

Registro da Rota 53

logtype:"route-53"

syslog-rfc5424

Syslogs com formato RFC5424

logtype:"syslog-rfc5424"

Adicione o logtype

Ao agregar logs, é importante fornecer metadados que facilitem a organização, pesquisa e análise desses logs. Uma maneira simples de fazer isso é adicionar o atributo logtype à mensagem do log quando eles forem enviados. As regras de análise integradas são aplicadas por padrão a determinados valores logtype .

Dica

Os campos logType, logtype e LOGTYPE são todos suportados para regras integradas. Para facilitar a pesquisa, recomendamos que você alinhe uma única sintaxe em sua organização.

Aqui estão alguns exemplos de como adicionar logtype ao registro enviado por alguns dos nossos métodos de envio suportados.

Crie e visualize regras de análise personalizadas

Muitos logs são formatados ou estruturados de maneira única. Para analisá-los, a lógica personalizada deve ser construída e aplicada.

Screenshot of log parsing in UI

Na navegação à esquerda na interface de registro, selecione Parsing e crie sua própria regra de análise personalizada com uma cláusula NRQL WHERE válida e um padrão Grok.

Para criar e gerenciar suas próprias regras de análise personalizadas:

  1. Vá para one.newrelic.com > All capabilities > Logs.
  2. Em Manage data no painel de navegação esquerdo da interface de registro, clique em Parsing e, em seguida, clique em Create parsing rule.
  3. Insira um nome para a nova regra de análise.
  4. Selecione um campo existente para analisar (padrão = message) ou insira um novo nome de campo.
  5. Insira uma cláusula NRQL WHERE válida para corresponder ao log que você deseja analisar.
  6. Selecione um log correspondente, se existir, ou clique na guia Paste log para colar um log de amostra . Observe que se você copiar texto da interface de log ou do criador de consulta para colar na interface de análise, certifique-se de que seja a versão Unformatted .
  7. Insira a regra de análise e confirme se ela está funcionando visualizando os resultados na seção Output . Para saber mais sobre Grok e regras de análise personalizadas, leia nossa postagem no blog sobre como analisar logs com padrões Grok.
  8. Ative e salve a regra de análise personalizada.

Para visualizar regras de análise existentes:

  1. Vá para one.newrelic.com > All capabilities > Logs.
  2. Em Manage data no painel de navegação esquerdo da interface de registro, clique em Parsing.

Resolução de problemas

Se a análise não estiver funcionando da maneira desejada, pode ser devido a:

  • Logic: A lógica de correspondência de regras de análise não corresponde ao log desejado.
  • Timing: Se a sua regra de análise de correspondência destino for um valor que ainda não existe, ela falhará. Isto pode ocorrer se o valor for adicionado posteriormente no pipeline como parte do processo de enriquecimento.
  • Limits: Há um período fixo de tempo disponível a cada minuto para processar o log por meio de análise, padrões, filtros de eliminação, etc. Se o tempo máximo tiver sido gasto, a análise será ignorada para registros adicionais de eventos de log.

Para resolver esses problemas, crie ou ajuste suas regras de análise personalizadas.

Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.