Partilhar via


Coletar logs de texto com o agente do Log Analytics no Azure Monitor

A fonte de dados Logs Personalizados para o agente do Log Analytics no Azure Monitor permite coletar eventos de arquivos de texto em computadores Windows e Linux. Muitas aplicações registam informações em ficheiros de texto em vez de serviços de registo padrão, como o Syslog ou Registo de eventos do Windows. Depois que os dados são coletados, você pode analisá-los em campos individuais em suas consultas ou extraí-los durante a coleta para campos individuais.

Importante

Este artigo descreve como coletar um log de texto com o agente do Log Analytics. Se você estiver usando o agente do Azure Monitor, consulte Coletar logs de texto com o Azure Monitor Agent.

Importante

O agente herdado do Log Analytics foi preterido a partir de 31 de agosto de 2024. A Microsoft não fornecerá mais suporte para o agente do Log Analytics. Se você usar o agente do Log Analytics para ingerir dados para o Azure Monitor, migre agora para o agente do Azure Monitor.

Diagrama que mostra a coleção de logs personalizada.

Os arquivos de log a serem coletados devem corresponder aos seguintes critérios:

  • O log deve ter uma única entrada por linha ou usar um carimbo de data/hora correspondente a um dos seguintes formatos no início de cada entrada:

    AAAA-MM-DD HH:MM:SS
    M/D/AAAA HH:MM:SS AM/PM
    Seg DD, AAAA HH:MM:SS
    yyMMdd HH:mm:ss
    ddMMyy HH:mm:ss
    MMM d hh:mm:ss
    dd/MMM/aaaa:HH:mm:ss zzz
    aaaa-MM-ddTHH:mm:ssK

  • O arquivo de log não deve permitir o registro em log circular. Esse comportamento é a rotação de log onde o arquivo é substituído por novas entradas ou o arquivo é renomeado e o mesmo nome de arquivo é reutilizado para registro em log contínuo.

  • O arquivo de log deve usar codificação ASCII ou UTF-8. Outros formatos como UTF-16 não são suportados.

  • Para Linux, a conversão de fuso horário não é suportada para carimbos de data/hora nos logs.

  • Como prática recomendada, o arquivo de log deve incluir a data e a hora em que foi criado para evitar a substituição ou renomeação da rotação do log.

Nota

Se houver entradas duplicadas no arquivo de log, o Azure Monitor as coletará. Os resultados da consulta gerados serão inconsistentes. Os resultados do filtro mostrarão mais eventos do que a contagem de resultados. Você deve validar o log para determinar se o aplicativo que o cria está causando esse comportamento. Resolva o problema, se possível, antes de criar a definição de coleção de log personalizada.

Um espaço de trabalho do Log Analytics suporta os seguintes limites:

  • Apenas 500 logs personalizados podem ser criados.
  • Uma tabela suporta apenas até 500 colunas.
  • O número máximo de carateres para o nome da coluna é 500.

Importante

A coleta de log personalizada requer que o aplicativo que grava o arquivo de log libere o conteúdo do log para o disco periodicamente. Isso ocorre porque a coleção de logs personalizada depende de notificações de alteração do sistema de arquivos para o arquivo de log que está sendo rastreado.

Definir uma tabela de log personalizada

Use o procedimento a seguir para definir uma tabela de log personalizada. Role até o final deste artigo para obter um passo a passo de um exemplo de adição de um log personalizado.

Abrir o assistente de Registo Personalizado

O assistente de Log Personalizado é executado no portal do Azure e permite que você defina um novo log personalizado para coletar.

  1. No portal do Azure, selecione Espaços de trabalho do Log Analytics suas> tabelas de espaço de trabalho>.

  2. Selecione Criar e, em seguida, Novo log personalizado (baseado em MMA).

    Por padrão, todas as alterações de configuração são enviadas automaticamente por push para todos os agentes. Para agentes Linux, um arquivo de configuração é enviado para o coletor de dados Fluentd.

Carregar e analisar um log de exemplo

Para começar, carregue uma amostra do log personalizado. O assistente analisará e exibirá as entradas nesse arquivo para você validar. O Azure Monitor usará o delimitador especificado para identificar cada registro.

New Line é o delimitador padrão e é usado para arquivos de log que têm uma única entrada por linha. Se a linha começar com uma data e hora em um dos formatos disponíveis, você poderá especificar um delimitador de carimbo de data/hora , que oferece suporte a entradas que abrangem mais de uma linha.

Se um delimitador de carimbo de data/hora for usado, a propriedade TimeGenerated de cada registro armazenado no Azure Monitor será preenchida com a data e a hora especificadas para essa entrada no arquivo de log. Se um novo delimitador de linha for usado, TimeGenerated será preenchido com a data e hora em que o Azure Monitor coletou a entrada.

  1. Selecione Procurar e navegue até um arquivo de exemplo. Esse botão pode ser rotulado como Escolher arquivo em alguns navegadores.

  2. Selecione Seguinte.

    O assistente de Log Personalizado carrega o arquivo e lista os registros que ele identifica.

  3. Altere o delimitador usado para identificar um novo registro. Selecione o delimitador que melhor identifica os registros em seu arquivo de log.

  4. Selecione Seguinte.

Adicionar caminhos de coleta de log

Você deve definir um ou mais caminhos no agente onde ele pode localizar o log personalizado. Você pode fornecer um caminho e um nome específicos para o arquivo de log ou pode especificar um caminho com um curinga para o nome. Esta etapa suporta aplicativos que criam um novo arquivo a cada dia ou quando um arquivo atinge um determinado tamanho. Você também pode fornecer vários caminhos para um único arquivo de log.

Por exemplo, um aplicativo pode criar um arquivo de log todos os dias com a data incluída no nome como em log20100316.txt. Um padrão para esse log pode ser log*.txt, que se aplicaria a qualquer arquivo de log seguindo o esquema de nomenclatura do aplicativo.

A tabela a seguir fornece exemplos de padrões válidos para especificar diferentes arquivos de log.

Description Caminho
Todos os arquivos em C:\Logs com extensão .txt no agente do Windows C:\Logs\*.txt
Todos os arquivos em C:\Logs com um nome começando com log e uma extensão .txt no agente do Windows C:\Logs\log*.txt
Todos os arquivos em /var/log/audit com extensão .txt no agente Linux /var/log/auditoria/*.txt
Todos os arquivos em /var/log/audit com um nome começando com log e uma extensão .txt no agente Linux /var/log/auditoria/log*.txt
  1. Selecione Windows ou Linux para especificar qual formato de caminho você está adicionando.
  2. Digite o caminho e selecione o + botão.
  3. Repita o processo para mais caminhos.

Forneça um nome e uma descrição para o log

O nome especificado será usado para o tipo de log, conforme descrito. Ele sempre terminará com _CL para distingui-lo como um log personalizado.

  1. Introduza um nome para o registo. O sufixo _CL é fornecido automaticamente.
  2. Adicione uma Descrição opcional.
  3. Selecione Avançar para salvar a definição de log personalizada.

Validar se os logs personalizados estão sendo coletados

Pode levar até uma hora para que os dados iniciais de um novo log personalizado apareçam no Azure Monitor. O Azure Monitor começará a coletar entradas dos logs encontrados no caminho especificado a partir do ponto em que você definiu o log personalizado. Ele não reterá as entradas que você carregou durante a criação do log personalizado. Ele coletará entradas já existentes nos arquivos de log que localiza.

Depois que o Azure Monitor começar a coletar do log personalizado, seus registros estarão disponíveis com uma consulta de log. Use o nome que você deu ao log personalizado como o Tipo em sua consulta.

Nota

Se a propriedade RawData estiver ausente da consulta, talvez seja necessário fechar e reabrir o navegador.

Analisar as entradas de log personalizadas

Toda a entrada de log será armazenada em uma única propriedade chamada RawData. Você provavelmente desejará separar as diferentes partes de informações em cada entrada em propriedades individuais para cada registro. Para obter opções sobre como analisar RawData em várias propriedades, consulte Analisar dados de texto no Azure Monitor.

Excluir uma tabela de log personalizada

Consulte Excluir uma tabela.

Recolha de dados

O Azure Monitor coleta novas entradas de cada log personalizado aproximadamente a cada 5 minutos. O agente registra seu lugar em cada arquivo de log do qual coleta. Se o agente ficar offline por um período de tempo, o Azure Monitor coletará entradas de onde parou pela última vez, mesmo que essas entradas tenham sido criadas enquanto o agente estava offline.

Todo o conteúdo da entrada de log é gravado em uma única propriedade chamada RawData. Para métodos para analisar cada entrada de log importada em várias propriedades, consulte Analisar dados de texto no Azure Monitor.

Propriedades personalizadas do registro de log

Os registros de log personalizados têm um tipo com o nome de log fornecido e as propriedades na tabela a seguir.

Property Description
TimeGenerated Data e hora em que o registo foi recolhido pelo Azure Monitor. Se o log usar um delimitador baseado em tempo, esse é o tempo coletado da entrada.
SourceSystem Tipo de agente do qual o registro foi coletado.
OpsManager – agente do Windows, conexão direta ou System Center Operations Manager
Linux – Todos os agentes Linux
RawData Texto integral da entrada recolhida. Você provavelmente desejará analisar esses dados em propriedades individuais.
ManagementGroupName Nome do grupo de gerenciamento para agentes do System Center Operations Manager. Para outros agentes, esse nome é AOI-workspace< ID>.

Exemplo de passo a passo da adição de um log personalizado

A seção a seguir apresenta um exemplo de criação de um log personalizado. O log de exemplo que está sendo coletado tem uma única entrada em cada linha, começando com uma data e hora e, em seguida, campos delimitados por vírgulas para código, status e mensagem. Várias entradas de exemplo são mostradas.

2019-08-27 01:34:36 207,Success,Client 05a26a97-272a-4bc9-8f64-269d154b0e39 connected
2019-08-27 01:33:33 208,Warning,Client ec53d95c-1c88-41ae-8174-92104212de5d disconnected
2019-08-27 01:35:44 209,Success,Transaction 10d65890-b003-48f8-9cfc-9c74b51189c8 succeeded
2019-08-27 01:38:22 302,Error,Application could not connect to database
2019-08-27 01:31:34 303,Error,Application lost connection to database

Carregar e analisar um log de exemplo

Nós fornecemos um dos arquivos de log e podemos ver os eventos que ele será coletado. Neste caso, New line é um delimitador suficiente. No entanto, se uma única entrada no log pudesse abranger várias linhas, um delimitador de carimbo de data/hora precisaria ser usado.

Captura de tela que mostra o upload e a análise de um log de exemplo.

Adicionar caminhos de coleta de log

Os arquivos de log estarão localizados em C:\MyApp\Logs. Um novo arquivo será criado a cada dia com um nome que inclui a data no padrão appYYYYMMDD.log. Um padrão suficiente para esse log seria C:\MyApp\Logs\*.log.

Captura de tela que mostra a adição de um caminho de coleta de log.

Forneça um nome e uma descrição para o log

Usamos um nome de MyApp_CL e digitamos uma Descrição.

Captura de ecrã que mostra a adição de um nome de registo.

Validar se os logs personalizados estão sendo coletados

Usamos uma simples consulta de MyApp_CL para retornar todos os registros do log coletado.

Captura de ecrã que mostra uma consulta de registo sem campos personalizados.

Alternativas aos logs personalizados

Embora os logs personalizados sejam úteis se seus dados se ajustarem aos critérios listados, há casos em que você precisa de outra estratégia:

  • Os dados não se ajustam à estrutura necessária, como ter o carimbo de data/hora em um formato diferente.
  • O arquivo de log não atende a requisitos como codificação de arquivos ou uma estrutura de pastas sem suporte.
  • Os dados requerem pré-processamento ou filtragem antes da recolha.

Nos casos em que seus dados não podem ser coletados com logs personalizados, considere as seguintes estratégias alternativas:

  • Use um script personalizado ou outro método para gravar dados em Eventos do Windows ou Syslog, que são coletados pelo Azure Monitor.
  • Envie os dados diretamente para o Azure Monitor usando a API do Coletor de Dados HTTP.

Próximos passos