O Logtail impõe limites para ambientes de execução, coleta de arquivos, coleta de contêineres, gerenciamento de checkpoints, configurações, grupos de máquinas, desempenho e tratamento de erros.
Ambiente de execução
|
Limites |
Restrições |
|
Arquitetura |
|
|
Recursos de computação |
O uso real depende da taxa de coleta, do diretório monitorado, da quantidade de arquivos e de bloqueios no envio. Mantenha o uso abaixo de 80% do limite. |
|
Ambiente do sistema |
Os sistemas operacionais compatíveis estão listados em Tipos de sistema. |
|
Kubernetes |
Importante
Todos os componentes do Logtail executam com prioridade system-cluster-critical e podem remover pods existentes. Não faça a implantação quando os recursos do cluster forem insuficientes. |
|
docker |
Limites para coleta de saída padrão de contêineres:
|
|
Meio de armazenamento |
Evite armazenamento de rede compartilhado (NAS, OSS), pois isso pode causar truncamento de dados, inconsistência de conteúdo ou suspensão da coleta. Utilize o Elastic Block Storage (EBS). |
Coleta de arquivos
|
Limites |
Restrições |
|
Tamanho de um único log |
Padrão: 512 KB, ajustável até 8 MB com o parâmetro de inicialização max_read_buffer_size. Definir parâmetros de inicialização do Logtail. Logs multilinha divididos por uma regex da primeira linha ainda estão sujeitos ao limite de 512 KB por log. Logs que excedem 512 KB são divididos forçosamente. Por exemplo, um log de 1.025 KB é dividido em 512 KB + 512 KB + 1 KB, resultando em múltiplos logs incompletos. |
|
Codificação de arquivo |
As codificações UTF-8 e GBK são compatíveis. Recomenda-se UTF-8 para obter o melhor desempenho. Aviso
Se os arquivos de log usarem outros formatos de codificação, problemas como caracteres corrompidos ou perda de dados poderão ocorrer. |
|
Tamanho do arquivo de log |
Ilimitado. |
|
Rotação de arquivo de log |
Tamanho padrão da fila de rotação: 20, ajustável com o parâmetro de inicialização logreader_max_rotate_queue_size. Definir parâmetros de inicialização do Logtail. Especifique o caminho do log no formato Importante
Não misture esses dois formatos na mesma instância do Logtail. Um único arquivo correspondente a múltiplas configurações causa coleta duplicada. Se houver mais de 20 arquivos não processados, novos logs serão perdidos. Verifique se a cota de gravação do shard do Logstore foi excedida e ajuste a concorrência do Logtail. Valores de parâmetros recomendados. |
|
Comportamento de coleta quando a análise de logs está bloqueada |
Quando a análise de logs é bloqueada, o Logtail mantém o descritor de arquivo de log aberto para evitar exclusão de arquivos e perda de dados. Caso o arquivo sofra rotação múltiplas vezes enquanto a análise estiver bloqueada, o Logtail colocará o arquivo na fila de rotação. |
|
Expressão regular |
Expressões regulares compatíveis com Perl são suportadas. |
|
JSON |
O JSON padrão, conforme definido em RFC 7159 e ECMA-404, é totalmente compatível. JSON não padrão, como |
|
Múltiplas configurações do Logtail para um arquivo |
Por padrão, um arquivo corresponde a apenas uma configuração do Logtail. Como coletar várias cópias de logs de um único arquivo. Importante
Ao coletar múltiplas cópias, a E/S de leitura de arquivo, os recursos de computação e a E/S de rede aumentam linearmente. |
|
Comportamento de abertura de arquivo |
O Logtail mantém abertos os arquivos coletados e pendentes para garantir a integridade dos dados. Um arquivo é fechado quando:
Para liberar identificadores de arquivo periodicamente após a exclusão, defina o parâmetro de inicialização force_release_deleted_file_fd_timeout. Definir parâmetros de inicialização do Logtail. |
|
Comportamento inicial de coleta de logs |
O Logtail coleta apenas dados incrementais. Ao detectar pela primeira vez a modificação de um arquivo, se ele exceder 1 MB (512 KB para stdout de contêiner), a coleta começa a partir do último 1 MB. Caso contrário, a coleta inicia do começo. Ajuste esse comportamento com o parâmetro tail_size_kb. Configurações do Logtail (Legado). O Logtail ignora arquivos não modificados após a aplicação da configuração. Importar arquivos de log históricos. |
|
Comportamento de sobrescrita de arquivo |
O Logtail identifica arquivos pelo inode e pelo hash dos primeiros 1.024 bytes. Se qualquer um desses mudar após uma sobrescrita, o arquivo será tratado como novo e coletado desde o início. Caso contrário, ele será ignorado. |
|
Comportamento de movimentação de arquivo |
Um arquivo movido que corresponda a uma configuração do Logtail anteriormente não correspondida é tratado como novo e coletado desde o início. Caso contrário, ele será ignorado. |
|
Histórico de coleta de arquivos |
O Logtail rastreia o histórico de coleta de arquivos na memória para coletar apenas dados incrementais. Gravações fora do escopo de retenção causam coleta duplicada.
|
|
Logs de texto não padrão |
Para linhas de log contendo |
Coleta de contêineres
Estes limites se aplicam adicionalmente aos limites de coleta de arquivos.
|
Limites |
Restrições |
|
Comportamento inicial de coleta de logs |
Para stdout de contêiner, quando uma modificação de arquivo é detectada pela primeira vez, a coleta começa a partir dos últimos 512 KB se o arquivo exceder 512 KB, ou do início caso contrário. Ajuste com o parâmetro StartLogMaxOffset. Coletar saída padrão de contêiner no modo DaemonSet usando o console. |
|
Link simbólico |
Links simbólicos para diretórios e arquivos não são compatíveis com a coleta de arquivos de contêiner. |
|
Ciclo de vida do contêiner |
Ciclo de vida mínimo do contêiner: 10 segundos. Para coleta de arquivos de contêiner, o Logtail limita as atualizações do contêiner a 10 vezes a cada 3 minutos. Ajuste com os parâmetros de inicialização docker_config_update_interval e max_docker_config_update_times. Definir parâmetros de inicialização do Logtail. |
|
Rotação de log de saída padrão |
O docker ou kubelet rotaciona os arquivos de stdout do contêiner. Tamanho padrão de rotação: 10 MB para kubelet (100 MB para docker no ACK). Se o stdout exceder 10 MB/s, os arquivos rotacionarão rapidamente. Para evitar perda de dados, colete a partir de arquivos do contêiner ou aumente o parâmetro containerLogMaxSize do kubelet. |
|
Driver de log de saída padrão |
Se você usar docker como runtime de contêiner, adicione |
Gerenciamento de checkpoints
|
Limites |
Restrições |
|
Tempo limite do checkpoint |
Os checkpoints são excluídos após 30 dias de inatividade do arquivo. Com |
|
Política de armazenamento de checkpoint |
Os checkpoints são salvos a cada 15 minutos e na saída do programa. Ajuste com o parâmetro de inicialização check_point_dump_interval. Definir parâmetros de inicialização do Logtail. |
|
Local de armazenamento do checkpoint |
Caminho padrão: |
|
Tratamento durante indisponibilidade |
A recuperação após indisponibilidade começa a partir do último checkpoint salvo, o que pode causar coleta duplicada. Ajuste a política de salvamento de checkpoints para minimizar duplicatas. |
Configurações de coleta do Logtail
|
Limites |
Restrições |
|
Latência de atualização de configuração |
Atualizações de configuração via console ou API levam cerca de 30 segundos para chegar ao cliente Logtail. |
|
Carregamento dinâmico de configurações |
Compatível. A atualização de uma configuração não afeta as demais. |
|
Número total de configurações carregáveis para uma única instância do Logtail |
Sem limite rígido. Máximo recomendado: 100 configurações por servidor. |
|
Saída de flusher de terceiros |
Configurações via console ou API estão vinculadas a um Logstore. Ao usar um flusher de terceiros, o Logtail também envia uma cópia para o Logstore associado por padrão. |
|
Multicontas e contas cruzadas |
Compatível. Configurar um identificador de usuário e Usar o Logtail para coletar logs de contêiner entre contas Alibaba Cloud. |
|
Múltiplas regiões |
Não compatível por padrão. Para ativar, envie um ticket. |
|
Global Accelerator |
Compatível. Ative no lado do servidor e configure no cliente. Ativar Global Accelerator. |
Grupos de máquinas
|
Limites |
Restrições |
|
Número de máquinas |
Sem limite rígido. Máximo recomendado: 100.000. Exceder esse valor causa detecção incorreta de heartbeat. |
|
Número de configurações aplicadas |
Sem limite rígido. Máximo recomendado: 1.000. |
Desempenho
|
Limites |
Restrições |
|
Throughput de processamento de logs |
Limite padrão de tráfego de logs brutos: 20 MB/s (taxa de compressão típica: 5-10x). Exceder esse limite pode causar perda de dados. Ajuste com o parâmetro de inicialização max_bytes_per_sec. Definir parâmetros de inicialização do Logtail. |
|
Desempenho máximo |
Throughput de núcleo único:
Múltiplas threads de processamento via parâmetro process_thread_count podem aumentar o throughput em 1,5 a 3 vezes. |
|
Número máximo de diretórios e arquivos monitorados |
Depende do parâmetro mem_usage_limit (padrão: 384 MB para hosts, 2.048 MB para contêineres). Quatro níveis se aplicam:
Quando qualquer nível é atingido, o Logtail para de monitorar entradas adicionais. Aumente os limites restringindo os diretórios monitorados ou elevando o mem_usage_limit. Configure o parâmetro mem_usage_limit em Definir parâmetros de inicialização do Logtail. No Linux, o Logtail usa inotify para reduzir a latência de coleta. Número máximo de diretórios monitorados por inotify (incluindo subdiretórios): 3.000. |
|
Política de tratamento de limite de recursos |
Se o uso de recursos do Logtail exceder o limite máximo por 5 minutos, o Logtail reinicia forçosamente. Isso pode causar perda ou duplicação de dados. |
|
Isolamento de dados multilocatário |
O Logtail fornece isolamento no nível de configuração. Uma exceção em uma configuração de coleta do Logtail não afeta as outras. |
|
Latência de coleta de logs |
Em condições normais, a latência entre a gravação do log e a coleta pelo Logtail é inferior a 1 segundo. |
|
Política de upload de logs |
O Logtail agrega e faz upload de logs por arquivo. O upload é acionado quando a contagem de logs excede 4.000, o tamanho total excede 512 KB ou 3 segundos se passam, o que ocorrer primeiro. |
Tratamento de erros
|
Limites |
Restrições |
|
Tratamento de erros de rede |
Em caso de erros de rede, o Logtail tenta novamente com ajuste automático de intervalo. Casos extremos podem causar coleta duplicada ou perda de dados:
|
|
Cota de recursos excedida |
Se a taxa de envio exceder a cota do Logstore, o Logtail bloqueia e tenta novamente. Aumente o número de shards do Logstore para resolver. |
|
Exceção de tempo do cliente |
Se a diferença de tempo entre cliente e servidor exceder 15 minutos, as novas tentativas falharão após 5 vezes e os dados serão descartados. Corrija a hora da máquina cliente. |
|
Projeto ou Logstore inexistente |
Os dados são descartados após 5 tentativas falhas. Isso pode ocorrer se o Logstore tiver sido excluído via API. Exclua a configuração correspondente do Logtail para resolver. |
|
Falha na autenticação |
Os dados são descartados após 5 tentativas falhas. Causas comuns:
|
|
Outros erros desconhecidos |
Após 5 tentativas malsucedidas, os dados são descartados. |
|
Tempo máximo de nova tentativa antes do tempo limite |
Se o envio de dados falhar continuamente por mais de 6 horas, os dados serão descartados. |
|
Autoverificação de status |
O Logtail reinicia automaticamente em saídas anormais ou quando o uso de recursos excede os limites configurados. |
|
Excesso do número máximo de diretórios e arquivos monitorados |
O Logtail não consegue localizar os caminhos de coleta prontamente, o que pode causar perda de dados. |
|
Atraso significativo na coleta |
O progresso da coleta de logs fica atrasado em relação à geração de logs. Se mais de 20 arquivos de log não processados sofrerem rotação, ocorrerá perda de dados. |