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

A fonte de dados de Logs personalizados para o agente do Log Analytics no Azure Monitor permite que você colete eventos de arquivos de texto em computadores com Windows e Linux. Muitos aplicativos registram informações em arquivos de texto em vez de serviços de registro standard, como o log de eventos do Windows ou Syslog. Após a coleta dos dados, você pode analisá-los em campos individuais em suas consultas ou extraí-los dados durante a coleta de campos individuais.

Importante

Este artigo descreve como coletar um registro de texto com o agente Log Analytics. Se você estiver usando o agente do Azure Monitor, então consulte Coletar registros de texto com o Agente do Azure Monitor.

Importante

O agente herdado do Log Analyticsserá preterido em agosto de 2024. Após essa data, a Microsoft não fornecerá mais suporte para o agente do Log Analytics. Migre para o agente do Azure Monitor antes de agosto de 2024 para continuar a ingestão de dados.

Diagram that shows custom log collection.

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

  • O log deve ter uma única entrada por linha ou usar um carimbo de data/hora correspondente a um dos formatos a seguir 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
    aaMMdd hh
    ddMMaa HH:mm:ss
    aaMMdd hh
    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 em que 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 a codificação ASCII ou UTF-8. Não há suporte para outros formatos, como UTF-16.

  • No caso do Linux, não há suporte para a conversão de fuso horário para os carimbos de data/hora dos logs.

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

Observação

Se houver entradas duplicadas no arquivo de log, o Azure Monitor irá coletá-los. Os resultados da consulta 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 personalizado.

Um workspace do Log Analytics suporta os seguintes limites:

  • Apenas 500 logs personalizados podem ser criados.
  • Uma tabela só dá suporte a até 500 colunas.
  • O número máximo de caracteres 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 acontece porque a coleção de log 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 encontrar um passo a passo de um exemplo de adição de um log personalizado.

Abrir o Custom Log Wizard (Assistente de Log Personalizado)

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

  1. No portal do Azure, selecione Workspaces do Log Analytics> seu workspace > Tabelas.

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

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

Carregar e analisar um log de exemplo

Para começar, carregue um exemplo de log personalizado. O assistente analisará e exibirá as entradas nesse arquivo para validação. O Azure Monitor usará o delimitador que você especificar para identificar cada registro.

Nova Linha é 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 Carimbo de data/hora, que dá suporte a entradas que se estendem por 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á preenchido com a data e hora especificadas para essa entrada no arquivo de log. Se um delimitador de nova 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 Avançar.

    O Custom Log Wizard (Assistente de Log Personalizado) carrega o arquivo e lista os registros que identificar.

  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 Avançar.

Adicionar caminhos de coleta de log

Você deve definir um ou mais caminhos no agente no qual 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 caractere curinga para o nome. Essa etapa dá suporte a aplicativos que criam um novo arquivo por 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 por dia com a data incluída no nome, como log20100316.txt. Um padrão para tal log pode ser log*.txt, que se aplica a qualquer arquivo de log após o esquema de nomenclatura do aplicativo.

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

Descrição Caminho
Todos os arquivos em C:\Logs com extensão .txt no agente do Windows C:\Logs\*.txt
Todos os arquivos em C:\Logs cujo nome começa 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 do Linux /var/log/audit/*.txt
Todos os arquivos em /var/log/audit cujo nome começa com log e uma extensão .txt no agente do Linux /var/log/audit/log*.txt
  1. Selecione Windows ou Linux para especificar qual formato de caminho você está adicionando.
  2. Insira o caminho e selecione o botão +.
  3. Repita o processo para caminhos adicionais.

Fornecer um nome e 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. Insira um nome para o log. O sufixo _CL é fornecido automaticamente.
  2. Adicione uma Descriçãoopcional.
  3. Selecione Próximo para salvar a definição do log personalizado.

Validar que os logs personalizados estão sendo coletados

Pode demorar até uma hora para os dados iniciais de um novo log personalizado aparecerem no Azure Monitor. O Azure Monitor começará a coletar entradas dos logs encontrados no caminho especificado do ponto que você definiu o log personalizado. Ele não manterá as entradas carregadas durante a criação do log personalizado. Ele coletará entradas já existentes nos arquivos de log localizados.

Depois que o Azure Monitor iniciar a coleta de log personalizado, seus registros estarão disponíveis com uma consulta de log. Use o nome que você atribuiu ao log personalizado como o Tipo em sua consulta.

Observação

Se a propriedade RawData estiver ausente da busca, você precisará fechar e reabrir o navegador.

Analisar as entradas do log personalizado

A entrada de log inteira será armazenada em uma única propriedade chamada RawData. Você provavelmente desejará separar as diferentes partes de informações em cada entrada em propriedades individuais armazenadas para cada registro. Consulte Analisar dados de texto no Azure Monitor para opções de análise RawData em várias propriedades.

Excluir uma tabela de logs personalizada

Confira Excluir uma tabela.

Coleta de dados

O Azure Monitor coleta novas entradas de cada log personalizado aproximadamente a cada cinco minutos. O agente registra seu lugar em cada arquivo de log do qual ele realiza a coleta. Se o agente ficar offline por um período de tempo, o Azure Monitor coleta entradas de onde ele parou, mesmo que as 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 de registro do log personalizado

Os registros de log personalizado têm um tipo com o nome do log que você fornece e as propriedades na tabela a seguir.

Propriedade Descrição
TimeGenerated Data e hora em que o registro foi coletado pelo Azure Monitor. Se o log usar um delimitador baseado na hora, essa será a hora coletada da entrada.
SourceSystem Tipo de registro do qual os dados foram coletados.
OpsManager – agente do Windows, conexão direta ou System Center Operations Manager
Linux: todos os agentes do Linux
RawData Texto completo da entrada coletada. 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, o nome é AOI-<ID do espaço de trabalho>.

Passo a passo do exemplo de adição de um log personalizado

A seção a seguir explica passo a passo um exemplo de criação de um log personalizado. O log de exemplo sendo coletado tem uma única entrada em cada linha que começa com uma data e hora e campos delimitados por vírgula para o 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

Fornecemos um dos arquivos de log e podemos ver os eventos que ele coletará. Nesse caso, Nova linha é um delimitador suficiente. Se uma única entrada de log pudesse abranger várias linhas, seria necessário usar um delimitador de carimbo de data/hora.

Screenshot that shows uploading and parsing a sample log.

Adicionar caminhos de coleta de log

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

Screenshot that shows adding a log collection path.

Fornecer um nome e descrição para o log

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

Screenshot that shows adding a log name.

Validar que os logs personalizados estão sendo coletados

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

Screenshot that shows a log query with no custom fields.

Alternativas para logs personalizados

Embora os logs personalizados sejam úteis quando os dados atendem 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 está de acordo com os requisitos como a codificação do arquivo ou uma estrutura de pastas sem suporte.
  • Os dados requerem pré-processamento ou filtragem antes da coleta.

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

Próximas etapas