Todos os produtos
Search
Central de documentação

Simple Log Service:Coletar logs de texto de servidores

Última atualização: Jun 23, 2026

Colete logs de texto de instâncias ECS, servidores locais ou hosts de nuvem de terceiros no Simple Log Service usando o LoongCollector (Logtail). Dois modos estão disponíveis: coleta contínua (incremental em tempo real) e coleta única (importação histórica em lote).

Selecionar um modo de coleta

Cenário

Modo recomendado

Logs gravados continuamente; monitoramento em tempo real e alertas são necessários.

Coleta contínua

Importar arquivos históricos arquivados uma única vez.

Coleta única

Migração de sistema ou dados; reprocessamento de dados históricos.

Coleta única

Investigação pontual de logs de um período específico.

Coleta única

null

Por padrão, o LoongCollector coleta apenas logs incrementais. Para coletar arquivos estáticos existentes, use o modo de coleta única.

Observações de uso

  • Sistemas operacionais e arquiteturas suportados:

    O LoongCollector suporta apenas Linux. Para hosts Windows, use o Logtail.

    Para novas implantações, use o LoongCollector — a próxima geração que substitui o Logtail. Instale um ou o outro, não ambos.
  • Requisitos de recursos de computação:

    • CPU: Mínimo de 0,4 núcleos.

    • Memória: Mínimo de 300 MB.

    • Mantenha o uso abaixo de 80% do limite. O consumo real depende da velocidade de coleta, da quantidade de diretórios e arquivos e do backlog da fila de envio.

  • Requisitos de permissão:

    Se você usar um usuário RAM (Resource Access Management), conceda as permissões AliyunLogFullAccess e AliyunECSFullAccess. Para autorização granular, consulte Apêndice: Políticas de permissão personalizadas.

Fluxo de trabalho de configuração de coleta

  1. Preparations: Crie um projeto (isolamento de recursos) e um Logstore (armazenamento de logs).

  2. Configure a machine group (Install LoongCollector): Instale o LoongCollector em seus servidores e adicione-os a um grupo de máquinas.

  3. Create and configure log collection rules:

    1. Global and input configurations: Defina o nome da configuração de coleta, a origem e o escopo da coleta de logs.

    2. Log processing and structuring: Configure regras de processamento com base no formato do log.

      • Logs multilinha: Para logs que abrangem várias linhas (como pilhas de exceções Java), configure uma expressão regular para identificar o início de cada log e mescle linhas consecutivas em uma única entrada.

      • Análise estruturada: Use plugins de análise (expressão regular, separador ou padrão NGINX) para extrair strings brutas em pares chave-valor estruturados para consulta e análise independentes.

    3. Log filtering: Configure listas de bloqueio e filtros de conteúdo para excluir dados redundantes e reduzir os custos de armazenamento.

    4. Log categorization: Use tópicos para distinguir logs de diferentes aplicações, servidores ou origens de caminho.

  4. Query and analysis configuration: O índice de texto completo é habilitado por padrão para pesquisas por palavras-chave. Ative o índice de campo para consultas precisas em campos estruturados.

  5. Verification and troubleshooting: Verifique se os logs estão sendo coletados. Para problemas como ausência de dados, falhas de heartbeat ou erros de análise, consulte as Perguntas frequentes.

Preparações

Crie um projeto e um Logstore para armazenar os logs. Se esses recursos já existirem, pule para Configure a machine group (Install LoongCollector).

Criar um projeto

  1. Faça login no console do Simple Log Service.

  2. Clique em Create Project e configure os seguintes parâmetros:

    • Region: Selecione a região da origem dos seus logs. Não pode ser alterada após a criação.

    • Project Name: Deve ser globalmente exclusivo no Alibaba Cloud e não pode ser alterado após a criação.

    • Mantenha as configurações padrão para as demais opções e clique em Create. Para obter mais informações sobre outros parâmetros, consulte Criar um projeto.

Criar um Logstore

  1. Clique no nome do projeto para acessar o projeto de destino.

  2. No painel de navegação à esquerda, escolha imageLog Storage e clique em +.

  3. Na página Criar Logstore, conclua as seguintes configurações principais:

    • Logstore Name: Deve ser exclusivo dentro do projeto. Não pode ser alterado após a criação.

    • Logstore Type: Selecione Standard ou Query de acordo com seus requisitos.

    • Billing Mode:

      • Pay-by-feature: Armazenamento, indexação e operações de leitura/gravação são cobrados individualmente. Ideal para uso em pequena escala ou imprevisível.

      • Pay-by-ingested-data: Cobrado pelo volume de dados brutos. Inclui 30 dias de armazenamento gratuito mais transformação e entrega de dados complementares. Ideal para retenção de ~30 dias ou pipelines de processamento complexos.

    • Data Retention Period: Retenção de logs em dias (1–3.650). 3.650 = permanente. Padrão: 30 dias.

    • Mantenha as configurações padrão para as demais opções e clique em OK. Para obter mais informações sobre outras configurações, consulte Gerenciar Logstores.

Etapa 1: Configurar um grupo de máquinas (Instalar o LoongCollector)

Após concluir as Preparações, instale o LoongCollector em seus servidores e adicione-os a um grupo de máquinas.

null

Estas etapas se aplicam somente a instâncias ECS na mesma conta e região que o projeto SLS.

Para cenários entre contas, entre regiões ou locais, consulte Instalar e configurar o LoongCollector.

Procedimento:

  1. Na página imageLogstores, clique no ícone image antes do nome do Logstore de destino para expandi-lo.

  2. Clique no ícone image ao lado de Data Collection e, na caixa de diálogo Quick Data Import, selecione um modelo de coleta de log de texto (como Single Line - Text Log) e clique em Integrate Now.

    Todos os modelos de log de texto compartilham a mesma configuração e diferem apenas nos plugins de análise. Você pode modificar a configuração posteriormente.
  3. Na página Machine Group Configurations, configure os seguintes parâmetros:

    • Scenario: Servers

    • Installation Environment: ECS

    • Selecionar grupo de máquinas: Com base no status de instalação do LoongCollector e na configuração do grupo de máquinas do servidor de destino, selecione a operação correspondente:

      • Se o LoongCollector já estiver instalado e adicionado a um grupo de máquinas, selecione o grupo em Source Machine Group e mova-o para Applied Server Groups.

      • Se o LoongCollector não estiver instalado, clique em Create Machine Group:

        Siga estas etapas para instalar o LoongCollector automaticamente e criar um grupo de máquinas.
        1. O sistema lista as instâncias ECS na mesma região que o projeto. Selecione as instâncias das quais deseja coletar logs.

        2. Clique em Install and Create Machine Group. O sistema instala automaticamente o LoongCollector nas instâncias ECS selecionadas.

        3. Configure o Name do grupo de máquinas e clique em OK.

        null

        Se a instalação falhar ou permanecer em estado de espera, verifique se a região da instância ECS é a mesma que a região do projeto.

      • Para adicionar um servidor com o LoongCollector já instalado a um grupo de máquinas existente, consulte as Perguntas frequentes Como adiciono um servidor a um grupo de máquinas existente?

  4. Verificar o status do heartbeat: Clique em Next. A seção Machine Group Heartbeat será exibida. Verifique o status de Heartbeat. Se estiver OK, a conexão do grupo de máquinas está normal. Clique em Next para ir para a página de configuração do Logtail.

    Se o status for FAIL, aguarde cerca de dois minutos e atualize. Se ainda estiver como FAIL, consulte O heartbeat do grupo de máquinas está como FAIL para mais informações sobre solução de problemas.

Etapa 2: Criar e configurar regras de coleta de logs

Após concluir a instalação do LoongCollector e a configuração do grupo de máquinas, acesse a página Logtail Configuration para definir as regras de coleta e processamento.

1. Configurações globais e de entrada

Defina o nome da configuração de coleta, a origem e o escopo da coleta de logs.

Global Configurations:

  • Configuration Name: Nome personalizado para a configuração de coleta. Deve ser exclusivo dentro do projeto e não pode ser alterado após a criação. Convenções de nomenclatura:

    • Pode conter apenas letras minúsculas, dígitos, hifens (-) e sublinhados (_).

    • Deve começar e terminar com uma letra minúscula ou um dígito.

Input Configurations:

  • Type: Text Log Collection.

  • File Path: O caminho de coleta do log.

    • Linux: O caminho deve começar com uma barra (/). Por exemplo, /data/mylogs/**/*.log indica todos os arquivos com a extensão .log no diretório /data/mylogs e seus subdiretórios.

    • Windows: O caminho deve começar com uma letra de unidade. Por exemplo, C:\Program Files\Intel\**\*.Log.

  • Maximum Directory Monitoring Depth: A profundidade máxima de diretórios correspondida pelo caractere curinga ** no File Path. O valor padrão é 0, indicando que apenas o diretório atual é monitorado.


2. Processamento e estruturação de logs

Configure regras de processamento para estruturar logs brutos em pares chave-valor pesquisáveis. Primeiro, adicione um log de amostra:

Na seção Processor Configurations da página Logtail Configuration, clique em Add Sample Log e insira um log de amostra. O sistema identifica o formato e gera as regras de análise automaticamente.

Caso de uso 1: Processar logs multilinha (como logs de pilha Java)

Logs como pilhas de exceções Java abrangem várias linhas. Sem o modo multilinha, eles são divididos em registros incompletos. Ative o modo multilinha e defina uma Regex para corresponder à primeira linha, a fim de mesclar linhas consecutivas em um único log.

Exemplo:

Log bruto sem processamento

No modo de coleta padrão, cada linha é um log separado, fragmentando o rastreamento de pilha e perdendo o contexto

Com o modo multilinha ativado, uma Regex para corresponder à primeira linha identifica o log completo, preservando sua estrutura semântica integral.

image

image

image

Procedimento: Na seção Processor Configurations da página Logtail Configuration, ative o Multi-line Mode:

  • Em Type, selecione Custom ou Multi-line JSON.

    • Custom: Para logs brutos com formato variável, configure uma Regex to Match First Line para identificar a linha inicial de cada log.

      • Regex to Match First Line: Gere automaticamente ou insira manualmente uma expressão regular que corresponda a uma linha completa de dados. Por exemplo, a expressão regular para o exemplo anterior é \[\d+-\d+-\w+:\d+:\d+,\d+]\s\[\w+]\s.*.

        • Geração automática: Clique em Generate. Em seguida, na caixa de texto Log Sample, selecione o conteúdo do log que deseja extrair e clique em Automatically Generate.

        • Entrada manual: Clique em Manually Enter Regular Expression. Após inserir a expressão, clique em Validate.

    • Multi-line JSON: O SLS trata automaticamente as quebras de linha dentro de um único log bruto, desde que o log esteja no formato JSON padrão.

  • Processing Method If Splitting Fails:

    • Discard: Descarta um segmento de texto se ele não corresponder à regra de início de linha.

    • Retain Single Line: Mantém o texto não correspondido em linhas separadas.

Caso de uso 2: Logs estruturados

Logs brutos em formatos não estruturados (como logs de acesso do NGINX) são difíceis de consultar diretamente. Os plugins de análise do SLS os convertem em pares chave-valor estruturados para análise e alertas.

Exemplo:

Log bruto

Log estruturado

192.168.*.* - - [15/Apr/2025:16:40:00 +0800] "GET /nginx-logo.png HTTP/1.1" 0.000 514 200 368 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.*.* Safari/537.36"
body_bytes_sent: 368
http_referer: -
http_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.x.x Safari/537.36
remote_addr:192.168.*.*
remote_user: -
request_length: 514
request_method: GET
request_time: 0.000
request_uri: /nginx-logo.png
status: 200
time_local: 15/Apr/2025:16:40:00

Procedimento: Na seção Processor Configurations da página Logtail Configuration

  1. Adicionar um plugin de análise: Clique em Add Processor e configure um plugin como análise por expressão regular, análise por separador ou análise JSON de acordo com o formato real. Este exemplo usa a coleta de logs do NGINX e seleciona Native Processor > Data Parsing (NGINX Mode).

  2. NGINX Log Configuration: Copie a definição de log_format do arquivo de configuração do servidor NGINX (nginx.conf) e cole-a nesta caixa de texto.

    Exemplo:

    log_format main  '$remote_addr - $remote_user [$time_local] "$request" ''$request_time $request_length ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent"';
    null

    A definição de formato aqui deve ser exatamente igual ao formato que gera os logs no servidor. Caso contrário, a análise do log falhará.

  3. Descrição dos parâmetros de configuração comuns: Os parâmetros a seguir aparecem em vários plugins de análise de dados e têm função e uso unificados.

    • Campo Original: O campo de origem a ser analisado. Padrão: content (toda a entrada de log coletada).

    • Manter Campo Original se a Análise Falhar: Preserva o conteúdo original do log quando a análise falha (por exemplo, devido a uma incompatibilidade de formato).

    • Manter Campo Original se a Análise For Bem-sucedida: Retém o conteúdo original do log mesmo após uma análise bem-sucedida.


3. Filtragem de logs

Logs de baixo valor (DEBUG, INFO) desperdiçam armazenamento, aumentam custos, reduzem a eficiência de consulta e representam risco de exposição de dados. Use a filtragem para coletar apenas os logs relevantes.

Reduza custos com filtragem de conteúdo

Filtre campos com base no conteúdo do log, como coletar apenas logs com nível WARNING ou ERROR.

Exemplo:

Log bruto sem nenhum processamento

Coletar apenas logs WARNING ou ERROR

{"level":"WARNING","timestamp":"2025-09-23T19:11:40+0800","cluster":"yilu-cluster-0728","message":"Disk space is running low","freeSpace":"15%"}
{"level":"ERROR","timestamp":"2025-09-23T19:11:42+0800","cluster":"yilu-cluster-0728","message":"Failed to connect to database","errorCode":5003}
{"level":"INFO","timestamp":"2025-09-23T19:11:47+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}
{"level":"WARNING","timestamp":"2025-09-23T19:11:40+0800","cluster":"yilu-cluster-0728","message":"Disk space is running low","freeSpace":"15%"}
{"level":"ERROR","timestamp":"2025-09-23T19:11:42+0800","cluster":"yilu-cluster-0728","message":"Failed to connect to database","errorCode":5003}

Procedimento: Na seção Processor Configurations da página Logtail Configuration

Clique em Add Processor e selecione Native Processor > Data Filtering:

  • Field Name: O campo do log a ser usado para filtragem.

  • Field Value: A expressão regular usada para filtragem. Apenas correspondências completas são suportadas, não correspondências parciais por palavra-chave.

Controle o escopo de coleta com uma lista negra

Use uma lista negra para excluir diretórios ou arquivos específicos, impedindo que logs irrelevantes ou sensíveis sejam enviados.

Procedimento: Na seção Input Configurations > Other Input Configurations da página Logtail Configuration, ative Collection Blacklist e clique em Add.

Suporta correspondência completa e por curinga para diretórios e nomes de arquivos. Os únicos caracteres curinga suportados são o asterisco (*) e o ponto de interrogação (?).
  • File Path Blacklist: Especifica os caminhos de arquivo a excluir. Exemplos:

    • /home/admin/private*.log: Ignora todos os arquivos no diretório /home/admin/ que começam com private e terminam com .log.

    • /home/admin/private*/*_inner.log: Ignora arquivos que terminam com _inner.log dentro de diretórios que começam com private sob o diretório /home/admin/.

  • File Blacklist: Uma lista de nomes de arquivo a ignorar durante a coleta. Exemplo:

    • app_inner.log: Ignora todos os arquivos chamados app_inner.log durante a coleta.

  • Directory Blacklist: Caminhos de diretório não podem terminar com barra (/). Exemplos:

    • /home/admin/dir1/: A lista negra de diretórios não terá efeito.

    • /home/admin/dir*: Ignora arquivos em todos os subdiretórios que começam com dir sob o diretório /home/admin/ durante a coleta.

    • /home/admin/*/dir: Ignora todos os arquivos em subdiretórios chamados dir no segundo nível do diretório /home/admin/. Por exemplo, arquivos no diretório /home/admin/a/dir são ignorados, mas arquivos no diretório /home/admin/a/b/dir são coletados.

4. Categorização de logs

Quando logs de múltiplas aplicações ou instâncias compartilham o mesmo formato, mas têm caminhos diferentes (por exemplo, /apps/app-A/run.log e /apps/app-B/run.log), os tópicos ajudam a distinguir suas origens para consultas precisas dentro de um único Logstore.

Procedimento: Global Configurations > Other Global Configurations > Log Topic Type: Selecione um método para gerar tópicos. Os três tipos a seguir são suportados:

  • Tópico do Grupo de Máquinas: Quando uma configuração de coleta é aplicada a múltiplos grupos de máquinas, o LoongCollector usa o nome do grupo de máquinas do servidor como campo __topic__. Adequado para dividir logs por host.

  • Custom: Usa o formato customized://<custom_topic_name>, como customized://app-login. Este formato é adequado para casos de uso com tópicos estáticos e identificadores de negócio fixos.

  • Extração de Caminho de Arquivo: Extraia informações-chave do caminho do arquivo de log para marcar dinamicamente a origem do log. Indicado quando múltiplos usuários ou aplicações compartilham o mesmo nome de arquivo de log, mas diferem no caminho:

    /data/logs
    ├── userA
    │   └── serviceA
    │       └── service.log
    ├── userB
    │   └── serviceA
    │       └── service.log
    └── userC
        └── serviceA
            └── service.log

    Configure a Extração de Caminho de Arquivo e use uma expressão regular para extrair informações-chave do caminho completo. O resultado correspondido é então enviado ao Logstore como tópico.

    Regra de extração de caminho de arquivo: baseada em grupos de captura de expressão regular

    Ao configurar uma expressão regular, o sistema determina automaticamente o formato do campo de saída com base no número e na nomenclatura dos grupos de captura. As regras são as seguintes:

    Na expressão regular para um caminho de arquivo, é necessário usar escape na barra (/).

    Tipo de grupo de captura

    Caso de uso

    Campo gerado

    Exemplo de regex

    Exemplo de caminho correspondente

    Exemplo de campo gerado

    Grupo de captura único (apenas um (.*?))

    Apenas uma dimensão é necessária para distinguir a origem (como nome de usuário ou ambiente)

    Gera o campo __topic__

    \/logs\/(.*?)\/app\.log

    /logs/userA/app.log

    __topic__: userA

    Múltiplos grupos de captura - sem nome (múltiplos (.*?))

    Múltiplas dimensões são necessárias para distinguir a origem, mas rótulos semânticos não são necessários

    Gera um campo de tag __tag__:__topic_{i}__, onde {i} é o número ordinal do grupo de captura

    \/logs\/(.*?)\/(.*?)\/app\.log

    /logs/userA/svcA/app.log

    __tag__:__topic_1__userA

    __tag__:__topic_2__svcA

    Múltiplos grupos de captura - com nome (usando (?P<name>.*?)

    Múltiplas dimensões são necessárias para distinguir a origem, e os significados dos campos devem ser claros para facilitar consultas e análises

    Gera um campo de tag __tag__:{name}

    \/logs\/(?P<user>.*?)\/(?P<service>.*?)\/app\.log

    /logs/userA/svcA/app.log

    __tag__:user:userA;

    __tag__:service:svcA

5. Configuração de saída

Por padrão, todos os logs são enviados ao Logstore atual com compressão lz4. Para enviar logs da mesma origem para diferentes Logstores:

Distribuição dinâmica para múltiplos destinos

null
  • O envio de logs para múltiplos destinos está disponível apenas para LoongCollector 3.0.0 e versões posteriores. Este recurso não é suportado pelo Logtail.

  • É possível configurar até cinco destinos de saída.

  • Após configurar múltiplos destinos de saída, a configuração de coleta não será mais visível na lista de configurações de coleta do Logstore atual. Para visualizar, modificar ou excluir a configuração de distribuição para múltiplos destinos, consulte Como gerencio configurações de distribuição para múltiplos destinos?

Procedimento: Na seção Output Configurations da página Logtail Configuration

  1. Clique em image para expandir a configuração de saída.

  2. Clique em Add Output Targets e defina as seguintes configurações:

    • Logstore: Selecione o Logstore de destino.

    • Compression Method: Selecione lz4 ou zstd.

    • Route Settings: Roteia logs com base em campos de tag. Os logs que correspondem às regras de roteamento são enviados ao Logstore de destino. Se esta configuração estiver vazia, todos os logs coletados serão enviados ao Logstore de destino.

      • Tag Name: O nome do campo de tag usado para roteamento. Insira o nome do campo diretamente, como __path__, sem o prefixo __tag__:. Os campos de tag se dividem em duas categorias:

        Para mais informações sobre tags, consulte Gerenciar tags de coleta do LoongCollector.
        • Relacionadas ao agente: Essas tags estão relacionadas ao agente de coleta e são independentes de qualquer plugin. Exemplos incluem __hostname__ e __user_defined_id__.

        • Relacionadas ao plugin de entrada: Essas tags dependem do plugin de entrada, que adiciona e enriquece o log com informações relevantes. Exemplos incluem __path__ para coleta de arquivos, e _pod_name_ e _container_name_ para coleta no Kubernetes.

      • Tag Value: Se o valor de tag de um log corresponder a este valor, o log será enviado ao Logstore de destino.

      • Discard this tag?: Se você ativar esta opção, o campo de tag será removido dos logs enviados.

Etapa 3: Configuração de consulta e análise

Após configurar o processamento de logs e os plugins, clique em Next para ir até a página Query and Analysis Configurations:

  • Índice de texto completo está habilitado por padrão, permitindo pesquisas por palavras-chave no conteúdo bruto do log.

  • Para consultas precisas por campo, aguarde o carregamento de Preview Data e clique em Automatic Index Generation. O SLS gera um índice de campo com base na primeira entrada dos dados de pré-visualização.

Após concluir a configuração, clique em Next para finalizar a configuração de todo o processo de coleta.

Etapa 4: Verificação e solução de problemas

Após salvar a configuração e aplicá-la ao grupo de máquinas, verifique a coleta de logs com o checklist a seguir.

Lista de verificação

  1. Confirme que o arquivo de log tem novo conteúdo: O LoongCollector coleta apenas logs incrementais. Execute tail -f /path/to/your/log/file e acione uma operação de negócio para garantir que novos logs estejam sendo gravados.

  2. Verifique o status do LoongCollector: sudo /etc/init.d/loongcollectord status.

  3. Verifique o heartbeat do grupo de máquinas: Acesse a página imageResources > Machine Groups. Clique no nome do grupo de máquinas desejado. Na seção Machine Group Configurations > Machine Group Status, verifique o status de Heartbeat.

  4. Consulte os logs: Acesse a página de consulta e análise do Logstore desejado. Clique em Search & Analyze (o intervalo de tempo padrão são os últimos 15 minutos) e verifique se novos logs estão chegando.

Solução de problemas comuns

O heartbeat do grupo de máquinas está como FAIL

  1. Verifique o ID do usuário: Se o servidor não for uma instância ECS, ou se a instância ECS e o projeto pertencerem a contas diferentes do Alibaba Cloud, verifique se o ID de usuário correto existe no diretório especificado. Se não existir, execute o comando a seguir para criá-lo manualmente.

    • Linux: Execute o comando cd /etc/ilogtail/users/ && touch <uid> para criar o arquivo de ID do usuário.

    • Windows: Acesse o diretório C:\LogtailData\users\ e crie um arquivo vazio com o nome <uid>.

  2. Verifique o ID do grupo de máquinas: Se você usou um ID personalizado ao criar o grupo de máquinas, verifique se o arquivo user_defined_id existe no diretório especificado. Se existir, confirme se o conteúdo do arquivo é consistente com o ID personalizado configurado para o grupo de máquinas.

    • Linux:

      # Configure a custom ID. If the directory does not exist, create it manually.
      echo "user-defined-1" > /etc/ilogtail/user_defined_id
    • Windows: No diretório C:\LogtailData, crie um novo arquivo com o nome user_defined_id e escreva o ID personalizado nele. (Se o diretório não existir, crie-o manualmente.)

  3. Se tanto o ID do usuário quanto o ID do grupo de máquinas estiverem configurados corretamente, consulte Solução de problemas de grupos de máquinas do LoongCollector (Logtail) para investigação adicional.


Nenhum dado é coletado

  1. Verifique a existência de logs incrementais: O LoongCollector (Logtail) coleta apenas logs incrementais. Se nenhum novo log for adicionado ao arquivo de destino, nenhum dado será coletado.

  2. Verifique o status do heartbeat do grupo de máquinas: Acesse a página imageResources > Machine Groups. Clique no nome do grupo de máquinas desejado. Na seção Machine Group Configurations > Machine Group Status, verifique o status de Heartbeat.

  3. Confirme que a configuração de coleta foi aplicada ao grupo de máquinas: Uma configuração de coleta que não foi aplicada a um grupo de máquinas não consegue coletar logs.

    1. Acesse a página imageResources > Machine Groups, clique no nome do grupo de máquinas desejado e acesse a página Machine Group Configurations.

    2. Na página, visualize Manage Configuration. O lado esquerdo exibe All Logtail Configurations e o lado direito exibe Applied Logtail Configs. Se a configuração de coleta do LoongCollector (Logtail) desejada já tiver sido movida para a área aplicada à direita, a configuração foi aplicada com êxito ao grupo de máquinas de destino.

    3. Se a configuração de coleta do LoongCollector (Logtail) desejada ainda não tiver sido movida para a área aplicada à direita, clique em Modify. Na lista All Logtail Configurations à esquerda, selecione o nome da configuração desejada do LoongCollector (Logtail), clique em image para movê-la para a área aplicada à direita e, em seguida, clique em Save.


Erros de coleta de log ou erros de formato

A rede e a configuração básica estão normais. O problema provavelmente é uma incompatibilidade entre o conteúdo do log e as regras de análise:

  1. Na página Logtail Configuration, clique no nome da configuração do LoongCollector (Logtail) que apresenta erro de coleta. Na aba Log Collection Error, clique em Select Time Range para definir o período de consulta.

  2. Na seção Collection Exception Monitoring > Complete Error Information, visualize a métrica de alarme do log de erro e encontre a solução correspondente em Erros comuns na coleta de dados.

Limitações

Item

Limitações

Tamanho de um único log

O limite padrão é 512 KB. Ajuste esse valor usando o parâmetro de inicialização max_read_buffer_size, com no máximo 8 MB. Para mais informações, consulte Tipos de rede, parâmetros de inicialização e configuração do Logtail.

Após um log multilinha ser dividido pela Regex para corresponder à primeira linha, o limite de tamanho de cada log ainda é 512 KB. Se um log exceder 512 KB, ele será dividido à força em várias entradas para coleta. Por exemplo, se um único log tiver 1.025 KB, os primeiros 512 KB serão processados, depois os próximos 512 KB e, por fim, o 1 KB restante. O resultado final são múltiplas entradas de log incompletas.

Codificação de arquivo

Suporta arquivos de log com codificação UTF-8 ou GBK. Use UTF-8 para melhor desempenho de processamento.

null

Se o arquivo de log usar outro formato de codificação, podem ocorrer problemas como caracteres corrompidos e perda de dados.

Rotação de arquivo de log

O tamanho padrão da fila de rotação de log é 20. Ajuste esse valor usando o parâmetro de inicialização logreader_max_rotate_queue_size. Para mais informações, consulte Tipos de rede, parâmetros de inicialização e configuração do Logtail.

Defina o caminho de coleta no formato xxx.log ou xxx.log*.

null

Não misture esses dois formatos na mesma instância do Logtail. Caso contrário, o mesmo arquivo pode corresponder a múltiplas configurações de coleta do Logtail, resultando em coleta duplicada.

Se mais de 20 arquivos ainda não tiverem sido processados, os logs recém-gerados serão perdidos. Nesses casos, verifique primeiro se a cota de gravação do shard do Logstore foi excedida e ajuste o nível de simultaneidade do Logtail. Para mais informações, consulte Tipos de rede, parâmetros de inicialização e configuração do Logtail.

Comportamento de coleta quando a análise de log está bloqueada

Quando a análise de log está bloqueada, o Logtail mantém o descritor do arquivo de log aberto para evitar que o arquivo seja excluído, o que causaria perda de dados.

Se ocorrerem múltiplas rotações de arquivo de log enquanto a análise estiver bloqueada, o Logtail coloca os arquivos na fila de rotação.

Expressão regular

Suporta expressões regulares compatíveis com Perl (PCRE).

JSON

Suporta completamente JSON padrão (RFC7159, ECMA-404). JSON não padronizado, como {"name": "\xE5\xAD\xA6"}, não é suportado.

Comportamento de abertura de arquivo

O Logtail mantém abertos o arquivo coletado e os arquivos na fila de rotação para garantir a integridade dos dados. O arquivo é fechado nas seguintes situações:

  • O arquivo não foi modificado por mais de 5 minutos.

  • A rotação ocorreu e a coleta foi concluída.

  • A configuração de coleta do Logtail foi alterada.

Para liberar o identificador do arquivo dentro de um tempo definido após a exclusão do arquivo, configure o parâmetro de inicialização force_release_deleted_file_fd_timeout. Para mais informações, consulte Tipos de rede, parâmetros de inicialização e configuração do Logtail.

Comportamento inicial de coleta de log

O Logtail coleta apenas logs incrementais. Quando um arquivo é detectado como modificado pela primeira vez, se exceder 1 MB (512 KB para saída padrão de contêiner), a coleta começa a partir do último 1 MB. Caso contrário, a coleta começa do início.

Ajuste o tamanho de coleta inicial para novos arquivos usando o parâmetro tail_size_kb na configuração de coleta do Logtail. Para mais informações, consulte Configuração do Logtail (legado).

Se o arquivo de log não for modificado após a aplicação da configuração de coleta do Logtail, o Logtail não coletará esse arquivo. Para coletar arquivos históricos, consulte Importar arquivos de log históricos.

Comportamento quando um arquivo é sobrescrito

O Logtail identifica arquivos usando o inode mais um hash dos primeiros 1.024 bytes. Se um arquivo for sobrescrito e qualquer um dos valores mudar, ele será tratado como um novo arquivo e coletado do início. Caso contrário, será ignorado.

Comportamento quando um arquivo é movido

Após um arquivo ser movido, se ele corresponder a uma configuração do Logtail que nunca correspondeu a esse arquivo antes, será tratado como um novo arquivo e coletado do início. Caso contrário, será ignorado.

Histórico de coleta de arquivos

O Logtail mantém o histórico de coleta de arquivos em memória para garantir que apenas dados incrementais sejam coletados. Se uma gravação atingir um log fora do intervalo de retenção, pode ocorrer coleta duplicada.

  • Por padrão, são retidos arquivos históricos do último mês.

  • Se houver mais de 5.000 arquivos históricos no mesmo diretório, apenas os registros da última semana serão mantidos.

  • Se houver mais de 10.000 arquivos históricos no mesmo diretório, apenas os registros do último dia serão mantidos.

Logs de texto não padronizados

Para linhas em logs que contêm \0, versões posteriores a 2.1.10 e 3.0.12 retêm apenas o \0 no meio do log. O prefixo e o sufixo \0 são descartados. Outras versões podem truncar no primeiro \0 ou retê-lo completamente. Atualize para a versão mais recente para evitar esse problema. Para outros caracteres de escape (como cores ASCII) ou caracteres invisíveis, o Logtail os reporta como estão.

Faturamento

  • A instalação do LoongCollector ou do Logtail é gratuita.

  • A ingestão, o armazenamento, a indexação, as consultas, a transformação e o envio de logs são cobrados com base no modo de faturamento do Logstore.

  • Se você ativar o Global Accelerator durante a instalação ou configuração, tarifas adicionais de tráfego serão aplicadas aos dados transmitidos pela rede acelerada.

Perguntas frequentes

Como gerenciar configurações de distribuição para múltiplos destinos?

As configurações de distribuição para múltiplos destinos estão associadas a vários Logstores. Gerencie-as a partir da página no nível do projeto:

  1. Faça login no console do Simple Log Service e clique no nome do projeto desejado.

  2. Na página do projeto, escolha image Resources > Configurations no painel de navegação à esquerda.

    null

    Esta página fornece gerenciamento centralizado de todas as configurações de coleta do projeto, incluindo as que permanecem após a exclusão de Logstores.

Como enviar logs de um servidor ECS para um projeto em outra conta do Alibaba Cloud?

Se você ainda não instalou o LoongCollector, consulte Instalar o LoongCollector e selecione o caso de uso de conta cruzada apropriado para a instalação.

Se o LoongCollector já estiver instalado, configure um ID de usuário para autorizar o proprietário do projeto SLS a acessar e coletar logs deste servidor.

Configure um ID de usuário apenas ao coletar logs de instâncias ECS de outras contas, servidores on-premises ou servidores de nuvem de terceiros.
  1. Copie o ID da conta do Alibaba Cloud proprietária do SLS: Passe o mouse sobre a foto de perfil no canto superior direito. Visualize e copie o ID da conta na aba que aparece.

  2. Faça login no servidor do qual deseja coletar logs e crie um arquivo de ID de conta do Alibaba Cloud para configurar o ID do usuário:

    touch /etc/ilogtail/users/{Alibaba_Cloud_account_ID} # If the /etc/ilogtail/users directory does not exist, create it manually. The user ID configuration file only needs a filename, not a file extension.

Como enviar logs de um servidor ECS para um projeto na mesma conta, mas em uma região diferente?

Se você ainda não instalou o LoongCollector, consulte Instalar o LoongCollector e selecione o caso de uso de região cruzada apropriado para a instalação.

Se o LoongCollector já estiver instalado, modifique sua configuração.

  1. Execute o comando sudo /etc/init.d/ilogtaild stop para parar o LoongCollector.

  2. Modifique o arquivo de configuração de inicialização do LoongCollector ilogtail_config.json. Escolha um dos dois métodos a seguir com base nos seus requisitos de rede:

    Caminho do arquivo de configuração: /usr/local/ilogtail/ilogtail_config.json

    • Método 1: Usar a Internet para transmissão

      Consulte RegionID e substitua a região no arquivo de configuração pela região onde o SLS está localizado. Os campos a modificar incluem:

      • primary_region

      • A parte da região em config_servers

      • O region e a parte da região de endpoint_list em data_servers

    • Método 2: Usar aceleração de transferência

      Substitua a linha de endpoint no parâmetro data_server_list por log-global.aliyuncs.com. Para o caminho do arquivo, consulte Tipos de rede, parâmetros de inicialização e configuração do Logtail.

    Exemplo de arquivo de configuração

    $cat 
    {
        "primary_region" : "cn-shanghai",
        "config_servers" :
        [
            "http://logtail.cn-shanghai.log.aliyuncs.com"
        ],
        "data_servers" :
        [
            {
                "region" : "cn-shanghai",
                "endpoint_list": [
                    "cn-shanghai.log.aliyuncs.com"
                ]
            }
        ],
        "cpu_usage_limit" : 0.4,
        "mem_usage_limit" : 384,
        "max_bytes_per_sec" : 20971520,
        "bytes_per_sec" : 1048576,
        "buffer_file_num" : 25,
        "buffer_file_size" : 20971520,
        "buffer_map_num" : 5
    }
  1. Execute o comando sudo /etc/init.d/ilogtaild start para iniciar o LoongCollector.

Como adicionar um servidor a um grupo de máquinas existente?

Para adicionar um novo servidor (como uma nova instância ECS ou servidor local) a um grupo de máquinas existente, de modo que ele herde a configuração de coleta, siga estas etapas.

Pré-requisitos:

Procedimento:

  1. Visualize o ID do grupo de máquinas de destino:

    1. Na página do projeto de destino, clique em imageResources > Machine Groups no painel de navegação à esquerda.

    2. Na página Machine Groups, clique no nome do grupo de máquinas de destino.

    3. Na página de configuração do grupo de máquinas, visualize o ID do grupo de máquinas.

  2. Execute a operação correspondente com base no tipo de ID:

    null

    Um único grupo de máquinas não pode conter servidores Linux e Windows ao mesmo tempo. Não configure o mesmo ID personalizado em servidores Linux e Windows. Um servidor pode ser configurado com vários IDs personalizados, separados por quebras de linha.

    • Tipo 1: O ID do grupo de máquinas é um endereço IP

      1. No servidor, execute o seguinte comando para abrir o arquivo app_info.json e visualizar o valor ip.

        cat /usr/local/ilogtail/app_info.json
      2. Na página de configuração do grupo de máquinas de destino, clique em Modify e insira o endereço IP do servidor. Separe vários endereços IP com quebras de linha.

      3. Após concluir a configuração, clique em Save e confirme o status do heartbeat. Quando o heartbeat estiver OK, o servidor aplicará automaticamente a configuração de coleta do grupo de máquinas.

        Se o status do heartbeat for FAIL, consulte as perguntas frequentes Machine group heartbeat is FAIL para solução de problemas.
    • Tipo 2: O ID do grupo de máquinas é um ID personalizado

      Dependendo do sistema operacional, grave a string de ID personalizado que corresponde ao grupo de máquinas de destino no arquivo especificado:

      Se o diretório não existir, você deverá criá-lo manualmente. O caminho e o nome do arquivo são fixos pelo SLS e não podem ser personalizados.
      • Linux: Grave a string personalizada no arquivo /etc/ilogtail/user_defined_id.

      • Windows: Grave a string personalizada em C:\LogtailData\user_defined_id.

Como importar uma configuração de coleta de outro projeto?

Após concluir as Preparações e a Configuração do Grupo de Máquinas, importe uma configuração de coleta de um projeto existente para o Logstore atual e evite configurações repetitivas.

Procedimento:

  1. Após concluir a configuração do grupo de máquinas, clique em Next para ir à página Logtail Configuration.

  2. Clique em Import Other Configuration no canto superior direito da página.

  3. Selecione o projeto do qual deseja importar e a configuração de coleta associada a esse projeto.

  4. Clique em OK. O sistema carrega automaticamente a configuração selecionada.

  5. Após verificar que as informações de configuração importadas estão corretas, clique em Next para ir à página Configurações de Consulta e Análise e concluir as configurações subsequentes.

Como obter o endereço IP de um servidor para usar como ID de grupo de máquinas?

Em um servidor onde o LoongCollector (Logtail) está instalado, abra o arquivo /usr/local/ilogtail/app_info.json e visualize o valor ip.

O endereço IP do servidor obtido automaticamente pelo Logtail é registrado no campo ip do arquivo app_info.json, conforme mostrado abaixo.IP address

null
  • Se houver vários servidores, insira os endereços IP correspondentes manualmente. Os endereços IP devem ser separados por quebras de linha.

  • Um único grupo de máquinas não pode conter servidores Linux e Windows ao mesmo tempo. Não adicione endereços IP de servidores Windows e Linux ao mesmo grupo de máquinas.

Como o mesmo arquivo de log pode ser coletado por várias configurações de coleta ao mesmo tempo?

Por padrão, cada arquivo de log de texto pode corresponder a apenas uma configuração do Logtail. Para permitir que várias configurações coletem o mesmo arquivo, habilite a coleta múltipla.

Procedimento:

null

Ao coletar várias cópias, o IO de leitura de arquivo, os recursos de computação e o IO de rede aumentam linearmente.

  1. Faça login no console do Simple Log Service e acesse o projeto de destino.

  2. No painel de navegação à esquerda, escolha imageLogstores e localize o Logstore de destino.

  3. Clique no ícone image antes do nome para expandir o Logstore.

  4. Clique em Logtail Configuration. Na lista de configurações, localize a configuração do Logtail de destino e clique em Manage Logtail Configuration na coluna Actions.

  5. Na página de configuração do Logtail, clique em Edit:

    • Em Input Configurations > Other Input Configurations, habilite Allow File to Be Collected for Multiple Times.

  6. Após concluir a configuração, clique em Save.

Por que a última entrada de log é reportada com um longo atraso? Por que às vezes ela é truncada?

Causa: Isso geralmente ocorre quando um arquivo de log não possui uma quebra de linha ao final, ou quando um log de múltiplas linhas (como uma pilha de exceções) não foi totalmente gravado. O agente não consegue determinar se o log foi encerrado, portanto, o último conteúdo pode ser dividido prematuramente ou atrasado. Versões diferentes do LoongCollector (Logtail) tratam isso de forma diferente:

  • Versões anteriores à 1.8:
    Se a última linha de um log não tiver uma quebra de linha (retorno de carro), ou se um parágrafo de log de múltiplas linhas não estiver concluído, o agente aguarda a próxima gravação para acionar a saída. Isso pode fazer com que a última entrada de log fique retida por muito tempo sem ser enviada, até que um novo log seja gravado.















  • Versão 1.8 e posteriores:
    Um mecanismo de atualização por timeout foi introduzido para evitar que os logs fiquem presos. Quando uma linha de log incompleta é detectada, o sistema inicia um temporizador. Após o timeout, o conteúdo atual é enviado automaticamente, garantindo que o log seja eventualmente coletado.















    • Timeout padrão: 60 segundos (para garantir a integridade na maioria dos casos de uso)

    • Ajuste esse valor conforme necessário, mas não o defina como 0, pois isso pode causar truncamento de log ou perda parcial de conteúdo.

Solução:

Aumente o tempo de espera para garantir que o log completo seja gravado antes de ser coletado:

  1. Faça login no console do Simple Log Service e acesse o projeto de destino.

  2. No painel de navegação à esquerda, escolha imageLogstores e localize o Logstore de destino.

  3. Clique no ícone image antes do nome para expandir o Logstore.

  4. Clique em Logtail Configuration. Na lista de configurações, localize a configuração do Logtail de destino e clique em Manage Logtail Configuration na coluna Actions.

  5. Na página de configuração do Logtail, clique em Edit:

    • Em Input Configurations > Other Input Configurations > Advanced Parameters, adicione a seguinte configuração JSON para personalizar o timeout:

      {
        "FlushTimeoutSecs": 1
      }
      • Valor padrão: Determinado pelo parâmetro de inicialização default_reader_flush_timeout (geralmente alguns segundos).

      • Unidade: Segundos.

      • Valor recomendado: ≥1 segundo. Não defina como 0, pois isso pode causar truncamento de log ou perda parcial de conteúdo.

  6. Após concluir a configuração, clique em Save.

Por que o LoongCollector (Logtail) muda de um endpoint interno para a Internet durante a operação? Ele pode voltar automaticamente?

Se o LoongCollector (Logtail) detectar uma falha de comunicação com o endpoint interno da mesma região (falha de rede ou timeout de conexão), ele alternará automaticamente para o endpoint público para manter a continuidade da coleta de logs.

  • LoongCollector: Volta automaticamente para a rede interna após a recuperação.

  • Logtail: Não volta automaticamente. É necessário reiniciá-lo manualmente para retomar a comunicação pela rede interna.

Apêndice: Detalhes dos processadores nativos

Na seção Processor Configurations da página Logtail Configuration, adicione processadores para estruturar logs brutos. Para adicionar um plugin de processamento a uma configuração existente:

  1. No painel de navegação à esquerda, escolha imageLogstores e localize o Logstore de destino.

  2. Clique no ícone image antes do nome para expandir o Logstore.

  3. Clique em Logtail Configuration. Na lista de configurações, localize a configuração do Logtail de destino e clique em Manage Logtail Configuration na coluna Actions.

  4. Na página de configuração do Logtail, clique em Edit.

Esta seção apresenta apenas os plugins de processamento mais utilizados, que cobrem os casos de uso mais comuns de processamento de logs. Para mais recursos, consulte Processadores estendidos.
null

Regras para combinar plugins (para LoongCollector / Logtail 2.0 e versões posteriores):

  • Processadores nativos e estendidos podem ser usados de forma independente ou combinados conforme necessário.

  • Priorize os processadores nativos, pois oferecem melhor desempenho e estabilidade.

  • Quando os recursos nativos não atenderem às suas necessidades de negócio, adicione processadores estendidos após os nativos já configurados para processamento suplementar.

Restrição de ordem:

Os plugins são executados sequencialmente na ordem configurada, formando uma cadeia de processamento. Todos os processadores nativos devem preceder qualquer processador estendido. Após adicionar um processador estendido, não é possível adicionar mais processadores nativos.

Análise por expressão regular

Extraia campos de log usando uma expressão regular e analise o log em pares chave-valor. Cada campo pode ser consultado e analisado de forma independente.

Exemplo:

Log bruto sem nenhum processamento

Usando o plugin de análise por expressão regular

127.0.0.1 - - [16/Aug/2024:14:37:52 +0800] "GET /wp-admin/admin-ajax.php?action=rest-nonce HTTP/1.1" 200 41 "http://www.example.com/wp-admin/post-new.php?post_type=page" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0"
body_bytes_sent: 41
http_referer: http://www.example.com/wp-admin/post-new.php?post_type=page
http_user_agent: Mozilla/5.0 (Windows NT 10.0; Win64; ×64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0
remote_addr: 127.0.0.1
remote_user: -
request_method: GET
request_protocol: HTTP/1.1
request_uri: /wp-admin/admin-ajax.php?action=rest-nonce
status: 200
time_local: 16/Aug/2024:14:37:52 +0800

Procedimento: Na seção Processor Configurations da página Logtail Configuration, clique em Add Processor e selecione Native Processor > Data Parsing (Regex Mode):

  • Regular Expression: A expressão usada para corresponder logs. Gere automaticamente ou insira manualmente:

    • Geração automática:

      • Clique em Generate.

      • Em Log Sample, selecione o conteúdo do log a ser extraído.

      • Clique em Generate Regular Expression.

        image

    • Entrada manual: Manually Enter Regular Expression com base no formato do log.

    Após a configuração, clique em Validate para testar se a expressão regular consegue analisar corretamente o conteúdo do log.

  • Extracted Field: O nome do campo (Key) que corresponde ao conteúdo do log extraído (Value).

  • Para outros parâmetros, consulte a descrição dos parâmetros de configuração comuns em Caso de uso 2: Logs estruturados.


Análise por separador

Estruture o conteúdo do log usando um separador para analisá-lo em múltiplos pares chave-valor. Separadores de um único caractere e de múltiplos caracteres são suportados.

Exemplo:

Log bruto sem nenhum processamento

Campos divididos pelo caractere especificado ,

05/May/2025:13:30:28,10.10.*.*,"POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1",200,18204,aliyun-sdk-java
ip:10.10.*.*
request:POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=****************&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=******************************** HTTP/1.1
size:18204
status:200
time:05/May/2025:13:30:28
user_agent:aliyun-sdk-java

Procedimento: Na seção Processor Configurations da página Logtail Configuration, clique em Add Processor e selecione Native Processor > Data Parsing (Delimiter Mode):

  • Delimiter: Especifica o caractere usado para dividir o conteúdo do log.

    Exemplo: Para um arquivo CSV, selecione Custom e insira uma vírgula (,).

  • Quote: Se o valor de um campo contiver o separador, você deve colocar o valor do campo entre aspas para evitar divisões incorretas.

  • Extracted Field: Especifique o nome do campo (Key) para cada coluna na ordem em que aparecem. As regras são as seguintes:

    • Os nomes de campo podem conter apenas letras, dígitos e underscores (_).

    • Deve começar com uma letra ou um underscore (_).

    • Comprimento máximo: 128 bytes.

  • Para outros parâmetros, consulte a descrição dos parâmetros de configuração comuns em Caso de uso 2: Logs estruturados.


Análise de JSON padrão

Estruture um log JSON do tipo Object analisando-o em pares de chave-valor.

Exemplo:

Log bruto sem nenhum processamento

Extração automática de pares de chave-valor JSON padrão

{"url": "POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek********&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1", "ip": "10.200.98.220", "user-agent": "aliyun-sdk-java", "request": {"status": "200", "latency": "18204"}, "time": "05/Jan/2025:13:30:28"}
ip: 10.200.98.220
request: {"status": "200", "latency" : "18204" }
time: 05/Jan/2025:13:30:28
url: POST /PutData?Category=YunOsAccountOpLog&AccessKeyId=U0Ujpek******&Date=Fri%2C%2028%20Jun%202013%2006%3A53%3A30%20GMT&Topic=raw&Signature=pD12XYLmGxKQ%2Bmkd6x7hAgQ7b1c%3D HTTP/1.1
user-agent:aliyun-sdk-java

Procedimento: Na seção Processor Configurations da página Logtail Configuration, clique em Add Processor e selecione Native Processor > Data Parsing (JSON Mode):

  • Original Field: O campo que contém o log bruto a ser analisado. O valor padrão é content.

  • Para outros parâmetros, consulte a descrição dos parâmetros de configuração comuns em Caso de uso 2: Logs estruturados.


Análise de JSON aninhado

Analise um log JSON aninhado em pares de chave-valor especificando a profundidade de expansão.

Exemplo:

Log bruto sem nenhum processamento

Profundidade de expansão: 0, usando a profundidade de expansão como prefixo

Profundidade de expansão: 1, usando a profundidade de expansão como prefixo

{"s_key":{"k1":{"k2":{"k3":{"k4":{"k51":"51","k52":"52"},"k41":"41"}}}}}
0_s_key_k1_k2_k3_k41:41
0_s_key_k1_k2_k3_k4_k51:51
0_s_key_k1_k2_k3_k4_k52:52
1_s_key:{"k1":{"k2":{"k3":{"k4":{"k51":"51","k52":"52"},"k41":"41"}}}}

Procedimento: Na seção Processor Configurations da página Logtail Configuration, clique em Add Processor e selecione Extended Processor > Expand JSON Field:

  • Original Field: Especifica o nome do campo de origem a ser expandido, como content.

  • JSON Expansion Depth: A profundidade de expansão do objeto JSON, onde 0 (padrão) indica expansão completa, 1 indica expansão do nível atual e assim por diante.

  • Character to Concatenate Expanded Keys: O separador para nomes de campo quando um objeto JSON é expandido. O valor padrão é um underscore (_).

  • Name Prefix of Expanded Keys: O prefixo para nomes de campo após a expansão do JSON.

  • Expand Array: Expande um array em pares de chave-valor com índices.

    Exemplo: {"k":["a","b"]} é expandido para {"k[0]":"a","k[1]":"b"}.

    Para renomear os campos expandidos (por exemplo, de prefix_s_key_k1 para new_field_name), adicione um plugin de renomeação de campos em seguida para concluir o mapeamento.
  • Para outros parâmetros, consulte a descrição dos parâmetros de configuração comuns em Caso de uso 2: Logs estruturados.


Análise de array JSON

Use a função json_extract para extrair objetos JSON de um array JSON.

Exemplo:

Log bruto sem nenhum processamento

Extrair estrutura de array JSON

[{"key1":"value1"},{"key2":"value2"}]
json1:{"key1":"value1"}
json2:{"key2":"value2"}

Procedimento: Na seção Processor Configurations da página Logtail Configuration, alterne o Processing Mode para SPL, configure o SPL Statement e use a função json_extract para extrair objetos JSON do array JSON.

Exemplo: Extraia elementos do array JSON no campo de log content e armazene os resultados nos novos campos json1 e json2.

* | extend json1 = json_extract(content, '$[0]'), json2 = json_extract(content, '$[1]')

Análise de log Apache

Estruture o conteúdo do log em múltiplos pares de chave-valor com base na definição presente no arquivo de configuração de log do Apache.

Exemplo:

Log bruto sem nenhum processamento

Análise do Apache Common Log Format combined

1 192.168.1.10 - - [08/May/2024:15:30:28 +0800] "GET /index.html HTTP/1.1" 200 1234 "https://www.example.com/referrer" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.X.X Safari/537.36"
http_referer:https://www.example.com/referrer
http_user_agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.X.X Safari/537.36
remote_addr:192.168.1.10
remote_ident:-
remote_user:-
request_method:GET
request_protocol:HTTP/1.1
request_uri:/index.html
response_size_bytes:1234
status:200
time_local:[08/May/2024:15:30:28 +0800]

Procedimento: Na seção Processor Configurations da página Logtail Configuration, clique em Add Processor e selecione Native Processor > Data Parsing (Apache Mode):

  • O Log Format é combined.

  • O APACHE LogFormat Configuration é preenchido automaticamente com base no Log Format.

    null

    Certifique-se de verificar o conteúdo preenchido automaticamente para garantir que seja exatamente igual ao LogFormat definido no arquivo de configuração do Apache do seu servidor (normalmente localizado em /etc/apache2/apache2.conf).

  • Para outros parâmetros, consulte a descrição dos parâmetros de configuração comuns em Caso de uso 2: Logs estruturados.


Análise de log IIS

Estruture o conteúdo do log em múltiplos pares de chave-valor com base na definição do formato de log IIS.

Exemplo de comparação:

Log bruto

Adaptação para o formato específico do servidor Microsoft IIS

#Fields: date time s-sitename s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken
c-ip: cs-username
cs-bytes: sc-substatus
cs-method: cs-method
cs-uri-query: cs-uri-query
cs-uri-stem: cs-uri-stem
cs-username: s-port
date: #Fields:
s-computername: s-sitename
s-ip: s-ip
s-sitename: time
sc-bytes: sc-status
sc-status: c-ip
sc-win32-status: cs (User-Agent)
time: date
time-taken: sc-win32-status

Procedimento: Na seção Processor Configurations da página Logtail Configuration, clique em Add Processor e selecione Native Processor > Data Parsing (IIS Mode):

  • Log Format: Selecione o formato de log do seu servidor IIS.

    • IIS: O formato de arquivo de log para o Microsoft Internet Information Services.

    • NCSA: Common Log Format.

    • W3C refere-se ao W3C Extended Log File Format.

  • IIS Configuration Fields: Quando você seleciona IIS ou NCSA, o SLS usa os campos de configuração IIS padrão. Quando você seleciona W3C, é necessário definir os campos com o valor do parâmetro logExtFileFlags no seu arquivo de configuração IIS. Por exemplo:

    logExtFileFlags="Date, Time, ClientIP, UserName, SiteName, ComputerName, ServerIP, Method, UriStem, UriQuery, HttpStatus, Win32Status, BytesSent, BytesRecv, TimeTaken, ServerPort, UserAgent, Cookie, Referer, ProtocolVersion, Host, HttpSubStatus"
  • Para outros parâmetros, consulte a descrição dos parâmetros de configuração comuns em Caso de uso 2: Logs estruturados.


Mascaramento de dados

Mascare dados sensíveis em logs.

Exemplo:

Log bruto sem nenhum processamento

Resultado do mascaramento

[{'account':'1812213231432969','password':'04a23f38'}, {'account':'1812213685634','password':'123a'}]
[{'account':'1812213231432969','password':'********'}, {'account':'1812213685634','password':'********'}]

Procedimento: Na seção Processor Configurations da página Logtail Configuration, clique em Add Processor e selecione Native Processor > Data Masking:

  • Original Field: O campo que contém o conteúdo do log antes da análise.

  • Data Masking Method:

    • const: Substitui o conteúdo sensível por uma string constante.

    • md5: Substitui o conteúdo sensível pelo seu hash MD5.

  • Replacement String: Se Data Masking Method estiver definido como const, insira uma string para substituir o conteúdo sensível.

  • Content Expression that Precedes Replaced Content: A expressão usada para localizar o conteúdo sensível, configurada com a sintaxe RE2.

  • Content Expression to Match Replaced Content: A expressão regular usada para corresponder ao conteúdo sensível. A expressão deve ser escrita na sintaxe RE2.


Análise de tempo

Analise o campo de tempo no log e defina o resultado da análise como o campo __time__ do log.

Exemplo:

Log bruto sem nenhum processamento

Análise de tempo

{"level":"INFO","timestamp":"2025-09-23T19:11:47+0800","cluster":"yilu-cluster-0728","message":"User logged in successfully","userId":"user-123"}

image

Procedimento: Na seção Processor Configurations da página Logtail Configuration, clique em Add Processor e selecione Native Processor > Time Parsing:

  • Original Field: O campo que contém o conteúdo do log antes da análise.

  • Time Format: Defina o formato de tempo que corresponde aos timestamps no log.

  • Time Zone: Selecione o fuso horário para o campo de tempo do log. Por padrão, este é o fuso horário do ambiente onde o processo LoongCollector (Logtail) está em execução.

Apêndice: Referência de política de permissões

Login com conta Alibaba Cloud: tem permissões completas por padrão.

Login de usuário RAM: a conta Alibaba Cloud deve conceder as políticas de acesso necessárias ao usuário RAM.

Políticas de permissões personalizadas (controle refinado)

Se as políticas de sistema não atenderem ao princípio do menor privilégio, crie políticas personalizadas para autorização refinada. Exemplo de política com as seguintes permissões:

  • Visualizar projetos: Visualize a lista de projetos e os detalhes de um projeto específico.

  • Gerenciar Logstores: Crie, modifique ou exclua Logstores em um projeto.

  • Gerenciar configuração de coleta: Crie, exclua e modifique configurações de coleta.

  • Visualizar logs: Consulte e analise dados em um Logstore específico sob um projeto específico.

Substitua ${regionName}, ${uid}, ${projectName} e ${logstoreName} pelo nome real da região, ID da conta Alibaba Cloud, projeto de destino e Logstore.

Exemplo de política

{
  "Version": "1",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "log:ListProject",
        "log:GetAcceleration",
        "log:ListDomains",
        "log:GetLogging",
        "log:ListTagResources"
      ],
      "Resource": "acs:log:${regionName}:${uid}:project/*"
    },
    {
      "Effect": "Allow",
      "Action": "log:GetProject",
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}"
    },
    {
      "Effect": "Allow",
      "Action": [
        "log:ListLogStores",
        "log:*LogStore",
        "log:*Index",
        "log:ListShards",
        "log:GetCursorOrData",
        "log:GetLogStoreHistogram",
        "log:GetLogStoreContextLogs",
        "log:PostLogStoreLogs"
      ],
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}/*"
    },
    {
      "Effect": "Allow",
      "Action": "log:*",
      "Resource": [
        "acs:log:${regionName}:${uid}:project/${projectName}/logtailconfig/*",
        "acs:log:${regionName}:${uid}:project/${projectName}/machinegroup/*"
      ]
    },
    {
      "Effect": "Allow",
      "Action": "log:ListSavedSearch",
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}/savedsearch/*"
    },
    {
      "Effect": "Allow",
      "Action": "log:ListDashboard",
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}/dashboard/*"
    },
    {
      "Effect": "Allow",
      "Action": "log:GetLogStoreLogs",
      "Resource": "acs:log:${regionName}:${uid}:project/${projectName}/logstore/${logstoreName}"
    },
    {
      "Effect": "Allow",
      "Action": [
        "ecs:DescribeTagKeys",
        "ecs:DescribeTags",
        "ecs:DescribeInstances",
        "ecs:DescribeInvocationResults",
        "ecs:RunCommand",
        "ecs:DescribeInvocations",
        "ecs:InvokeCommand"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "oos:ListTemplates",
        "oos:StartExecution",
        "oos:ListExecutions",
        "oos:GetExecutionTemplate",
        "oos:ListExecutionLogs",
        "oos:ListTaskExecutions"
      ],
      "Resource": "*"
    }
  ]
}

Permissão

Action

Resource

Projeto somente leitura

  • GetAcceleration

  • GetLogging

  • ListProject

  • ListDomains

  • ListTagResources

acs:log:${regionName}:${uid}:project/*

Obter um projeto específico

GetProject

acs:log:${regionName}:${uid}:project/${projectName}

Gerenciar Logstores

  • ListLogStores

  • *LogStore

  • *Index

  • ListShards

  • GetCursorOrData

  • GetLogStoreHistogram

  • GetLogStoreContextLogs

  • PostLogStoreLogs

acs:log:${regionName}:${uid}:project/${projectName}/*

Gerenciar importação de dados do LoongCollector (Logtail)

*

  • acs:log:${regionName}:${uid}:project/${projectName}/logtailconfig/*

  • acs:log:${regionName}:${uid}:project/${projectName}/machinegroup/*

Consultar pesquisas salvas

ListSavedSearch

acs:log:${regionName}:${uid}:project/${projectName}/savedsearch/*

Consultar painéis

ListDashboard

acs:log:${regionName}:${uid}:project/${projectName}/dashboard/*

Consultar logs em um Logstore específico

GetLogStoreLogs

acs:log:${regionName}:${uid}:project/${projectName}/logstore/${logstoreName}

Permissões para operar ECS

  • DescribeTagKeys

  • DescribeTags

  • DescribeInstances

  • DescribeInvocationResults

  • RunCommand

  • DescribeInvocations

  • InvokeCommand

*

Permissões para operar OOS (Opcional)

Necessário somente quando o LoongCollector (Logtail) é instalado automaticamente via OOS na mesma conta e região que a instância SLS e ECS.

  • ListTemplates

  • StartExecution

  • ListExecutions

  • GetExecutionTemplate

  • ListExecutionLogs

  • ListTaskExecutions

*

Políticas de permissões de sistema

Se você usar políticas definidas pelo sistema, adicione as seguintes permissões:

  • AliyunLogFullAccess: Permissão para gerenciar SLS.

  • AliyunECSFullAccess: Permissão para gerenciar ECS.

  • (Opcional) AliyunOOSFullAccess: Necessário quando o LoongCollector (Logtail) é instalado com um clique usando OOS.

Mais informações

Global Configurations

Parâmetro

Descrição

Nome da Configuração

O nome da configuração do LoongCollector (Logtail). Deve ser único dentro do seu projeto. O nome não pode ser alterado após a criação.

Tipo de Tópico de Log

Selecione o método para gerar o tópico. As opções são Machine Group Topic, File Path Extraction e Custom.

Parâmetros Avançados

Parâmetros avançados opcionais para a configuração global. Consulte CreateLogtailPipelineConfig.

Input Configurations

Parâmetro

Descrição

Caminho do Arquivo

Defina o diretório de log e o nome do arquivo com base na localização do log no host (como uma instância ECS):

Tanto o diretório quanto os nomes de arquivo suportam modos completo e curinga. Para regras de nomes de arquivo, consulte Correspondência por curinga. Os únicos caracteres curinga suportados para caminhos de log são o asterisco (*) e o ponto de interrogação (?).

A pesquisa de arquivos de log usa correspondência de diretório em múltiplas camadas — todos os arquivos que atendem aos critérios no diretório especificado e seus subdiretórios são correspondidos. Por exemplo:

  • /apsara/nuwa/**/*.log indica arquivos com a extensão .log no diretório /apsara/nuwa e seus subdiretórios.

  • /var/logs/app_*/**/*.log indica arquivos com a extensão .log em todos os diretórios que correspondem ao formato app_* sob o diretório /var/logs e seus subdiretórios.

  • /var/log/nginx/**/access* indica arquivos que começam com access no diretório /var/log/nginx e seus subdiretórios.

Profundidade Máxima de Monitoramento de Diretório

Defina a profundidade máxima em que os diretórios de log são monitorados. Esta é a profundidade máxima de diretório que o caractere curinga ** no File Path pode corresponder. Um valor de 0 significa que apenas o diretório atual é monitorado.

Codificação do Arquivo

Selecione o formato de codificação do arquivo de log.

Tamanho da Primeira Coleta

Quando a configuração entra em vigor pela primeira vez, define a posição inicial de coleta em relação ao final do arquivo correspondente. O tamanho inicial de coleta é definido como 1.024 KB.

  • Durante a coleta inicial, se o arquivo for menor que 1.024 KB, a coleta começa do início do conteúdo do arquivo.

  • Durante a coleta inicial, se o arquivo for maior que 1.024 KB, a coleta começa 1.024 KB antes do final do arquivo.

O valor pode variar de 0 a 10.485.760 KB.

Lista de Exclusão de Coleta

Após ativar o botão Collection Blacklist, configure uma lista de exclusão para ignorar diretórios ou arquivos especificados durante a coleta. Correspondência completa e por curinga para diretórios e nomes de arquivo são suportadas. Os únicos caracteres curinga suportados são o asterisco (*) e o ponto de interrogação (?).

null
  • Se você usar um caractere curinga ao configurar o File Path, mas precisar filtrar alguns desses caminhos, deverá inserir o caminho completo correspondente na Collection Blacklist para garantir que a configuração da lista de exclusão entre em vigor.

    Por exemplo, se você definir o File Path como /home/admin/app*/log/*.log, mas quiser filtrar todos os subdiretórios sob o diretório /home/admin/app1*, você deve selecionar Directory Blacklist e configurar o diretório como /home/admin/app1*/**. Se você configurar como /home/admin/app1*, a lista de exclusão não terá efeito.

  • A correspondência com uma lista de exclusão tem um custo computacional. Mantenha o número de entradas na lista de exclusão abaixo de 10.

  • O caminho do diretório não pode terminar com uma barra (/). Por exemplo, se você definir o caminho como /home/admin/dir1/, a lista de exclusão de diretórios não terá efeito.

Configure uma lista de exclusão de caminho de arquivo, lista de exclusão de arquivo ou lista de exclusão de diretório conforme necessário. Os detalhes são os seguintes:

File Path Blacklist

  • Selecione File Path Blacklist e configure o caminho como /home/admin/private*.log. Isso ignora todos os arquivos no diretório /home/admin/ que começam com private e terminam com .log.

  • Selecione File Path Blacklist e configure o caminho como /home/admin/private*/*_inner.log. Isso ignora arquivos que terminam com _inner.log dentro de diretórios que começam com private sob o diretório /home/admin/. Por exemplo, o arquivo /home/admin/private/app_inner.log é ignorado, enquanto o arquivo /home/admin/private/app.log é coletado.

Lista de Bloqueio de Arquivos

Selecione File Blacklist e configure o nome do arquivo como app_inner.log. Isso ignora todos os arquivos com o nome app_inner.log durante a coleta.

Lista de Bloqueio de Diretórios

  • Selecione Directory Blacklist e configure o diretório como /home/admin/dir1. Isso ignora todos os arquivos no diretório /home/admin/dir1 durante a coleta.

  • Selecione Directory Blacklist e configure o diretório como /home/admin/dir*. Isso ignora arquivos em todos os subdiretórios que começam com dir sob o diretório /home/admin/.

  • Selecione Directory Blacklist e configure o diretório como /home/admin/*/dir. Isso ignora todos os arquivos em subdiretórios com o nome dir no segundo nível do diretório /home/admin/. Por exemplo, os arquivos no diretório /home/admin/a/dir são ignorados, mas os arquivos no diretório /home/admin/a/b/dir são coletados.

Permitir que o Arquivo Seja Coletado Múltiplas Vezes

Por padrão, um arquivo de log só pode corresponder a uma configuração do LoongCollector (Logtail). Se os logs de um arquivo precisarem ser coletados múltiplas vezes, você deve habilitar o switch Allow File to Be Collected for Multiple Times.

Parâmetros Avançados

Parâmetros avançados opcionais para o plugin de entrada de arquivo. Consulte CreateLogtailPipelineConfig.

Configurações do Processador

Parâmetro

Descrição

Amostra de Log

Uma amostra do log a ser coletado. Certifique-se de usar um log do seu caso de uso real. A amostra de log ajuda a configurar os parâmetros de processamento de log e simplifica a configuração. Múltiplas amostras podem ser adicionadas, com um comprimento total não superior a 1.500 caracteres.

[2023-10-01T10:30:01,000] [INFO] java.lang.Exception: exception happened
    at TestPrintStackTrace.f(TestPrintStackTrace.java:3)
    at TestPrintStackTrace.g(TestPrintStackTrace.java:7)
    at TestPrintStackTrace.main(TestPrintStackTrace.java:16)

Modo Multilinha

  • Tipo de log multilinha: um log multilinha abrange linhas consecutivas. Você deve distinguir cada entrada de log do conteúdo.

    • Custom: Distingue cada log usando uma Regex to Match First Line.

    • Multi-line JSON: Cada objeto JSON é expandido em múltiplas linhas, por exemplo:

      {
        "name": "John Doe",
        "age": 30,
        "address": {
          "city": "New York",
          "country": "USA"
        }
      }
  • Método de Processamento em Caso de Falha na Divisão:

    Exception in thread "main" java.lang.NullPointerException
        at com.example.MyClass.methodA(MyClass.java:12)
        at com.example.MyClass.methodB(MyClass.java:34)
        at com.example.MyClass.main(MyClass.java:½0)

    Para o conteúdo de log acima, se o SLS falhar ao dividi-lo:

    • Discard: Descarta este segmento de log diretamente.

    • Retain Single Line: Mantém cada linha do texto de log como um log separado, resultando em quatro logs no total.

Método de Processamento

Processors, que inclui Native Processor e Extended Processor. Consulte Notas de uso para processadores nativos e estendidos.

null

Os limites do plugin de processamento são exibidos na página do console.

  • Logtail 2.0:

    • Os processadores nativos podem ser combinados de qualquer forma.

    • Processadores nativos e estendidos podem ser usados ao mesmo tempo, mas os processadores estendidos só podem aparecer após todos os processadores nativos.

  • Versões do Logtail anteriores à 2.0:

    • Não é possível adicionar processadores nativos e estendidos ao mesmo tempo.

    • Os processadores nativos só podem ser usados para coletar logs de texto. Ao usar processadores nativos, os seguintes requisitos devem ser atendidos:

      • O primeiro plugin de processamento deve ser um plugin de análise por expressão regular, plugin de análise por modo separador, plugin de análise JSON, plugin de Análise de Dados (Modo NGINX), plugin de análise por padrão Apache ou plugin de análise por padrão IIS.

      • Do segundo ao último plugin de processamento, você pode incluir no máximo um plugin de análise de tempo, um plugin de Filtragem de Dados e múltiplos plugins de mascaramento.

    • Para os parâmetros Retain Original Field if Parsing Fails e Retain Original Field if Parsing Succeeds, apenas as seguintes combinações são válidas. Outras combinações são inválidas.

      • Enviar apenas os logs analisados com sucesso:

        image

      • Enviar logs analisados em caso de sucesso e logs brutos em caso de falha:

        image

      • Em caso de análise bem-sucedida, enviar o log analisado e também acrescentar o campo de log bruto. Em caso de falha, enviar o log bruto.

        Por exemplo, se o log bruto "content": "{"request_method":"GET", "request_time":"200"}" for analisado com sucesso, acrescentar o campo bruto adiciona outro campo ao log analisado. O nome do campo é New Name of Original Field (se não preenchido, o padrão é o nome do campo de origem), e o valor do campo é o log bruto {"request_method":"GET", "request_time":"200"}.

        image