Um plugin de filtragem de dados determina quais registros de log coletar com base em condições especificadas.
Visão geral do plugin de filtragem de dados
O Log Service oferece diversos plugins de filtragem de dados. Escolha o mais adequado às suas necessidades.
|
Nome do plugin |
Tipo |
Descrição |
|
Processador de filtragem |
nativo |
Coleta apenas logs cujo valor do campo corresponde exatamente a um padrão de lista de permissões especificado. |
|
filter_regex |
personalizado |
Suporta os seguintes modos de filtragem:
|
Ponto de entrada
Para usar um plugin do Logtail no processamento de logs, adicione-o ao criar ou modificar uma configuração do Logtail. Para mais informações, consulte Visão geral.
Diferenças entre plugins nativos e personalizados
Plugins nativos: Implementados em C++ para garantir alto desempenho.
Plugins personalizados: Implementados em Go para oferecer flexibilidade e um ecossistema rico. Se os logs do seu serviço forem complexos demais para os plugins nativos, considere usar um plugin personalizado.
-
Limitações de desempenho dos plugins personalizados
Usar um plugin personalizado para processar logs consome mais recursos do LoongCollector, principalmente CPU. Se necessário, use o gerenciamento de configurações para ajustar as definições de parâmetros do LoongCollector.
Se a taxa de geração de dados brutos ultrapassar 5 MB/s, evite combinações complexas de plugins. Em vez disso, use um plugin personalizado para processamento simples, seguido pela transformação de dados para processamentos avançados.
-
Limitações na coleta de logs
Plugins personalizados processam logs de texto no modo de linha e armazenam metadados no nível de arquivo, como
__tag__:__path__e__topic__, em cada entrada de log.-
Adicionar um plugin personalizado afeta funcionalidades relacionadas a tags:
Os recursos de consulta de contexto e LiveTail ficam indisponíveis. Para usá-los, adicione uma configuração de agregadores (aggregators).
O campo
__topic__é renomeado para__log_topic__. Ao adicionar uma configuração de agregadores, tanto o campo__topic__quanto o__log_topic__estarão presentes nos logs. Caso não precise do campo__log_topic__, use o plugin processor_drop para excluí-lo.Campos como
__tag__:__path__deixam de ter um índice de campo nativo. Crie um índice de campo para eles.
Plugin de filtro nativo
O plugin de filtro nativo filtra logs pelos valores de seus campos.
Configuração
|
Parâmetro |
Descrição |
|
Whitelist |
Defina uma lista de permissões para coletar apenas logs que atendam a condições específicas. Especifique o nome do campo alvo e uma expressão regular para filtragem. A expressão regular deve corresponder à string inteira. Não há suporte para correspondências parciais. Para detalhes sobre como escrever expressões regulares, consulte Tutorial de Expressões Regulares. Múltiplas condições na lista de permissões são unidas por um operador lógico AND. Veja os exemplos abaixo:
|
Plugins de filtragem de logs (avançado)
Use o plugin processor_filter_regex ou o plugin processor_filter_key_regex para filtrar logs. Este tópico descreve os parâmetros e fornece exemplos de configuração para cada plugin.
Limitações
A configuração baseada em formulário está disponível apenas para logs de texto e saída padrão de contêineres. Para todas as outras fontes, use a configuração baseada em JSON.
-
O mecanismo de expressões regulares Go baseia-se no RE2 e apresenta as seguintes limitações em comparação ao mecanismo PCRE:
-
Diferenças de sintaxe em grupos de captura nomeados
O Go usa a sintaxe
(?P<name>...), enquanto o PCRE usa(?<name>...). -
Padrões de expressão regular sem suporte
Lookaround:
(?=...),(?!...),(?<=...)e(?<!...).Expressões condicionais:
(?(condition)true|false).Correspondência recursiva:
(?R)e(?0).Referências de sub-rotina:
(?&name)e(?P>name).Grupos atômicos:
(?>...).
Ao depurar expressões regulares com ferramentas como Regex101, evite usar os padrões sem suporte listados acima para prevenir falhas no processamento.
-
processor_filter_regex (Filtrar por valor)
processor_filter_key_regex (Filtrar por chave)
Referências
-
Configure um pipeline do Logtail usando a API:
-
Configure um plugin de processador no console:
Coletar logs de contêiner (stdout/arquivo) de um cluster usando um CRD do Kubernetes