Defina configurações de coleta de log como CRDs do Kubernetes para garantir controle de versão, implantações específicas por ambiente e releases automatizados com kubectl ou pipelines de CI/CD em clusters ACK e autogerenciados. O LoongCollector recarrega automaticamente as alterações de configuração sem necessidade de reinicialização.
O CRD legado AliyunLogConfig foi descontinuado. Utilize o AliyunPipelineConfig em seu lugar. Consulte a CRD types para ver uma comparação.
As configurações de coleta baseadas em CRD só podem ser modificadas mediante atualização do próprio CRD. Alterações realizadas no console do SLS não são sincronizadas e não entram em vigor.
Aplicabilidade
-
Ambiente operacional
Clusters ACK (edições gerenciada e dedicada) e clusters Kubernetes autogerenciados.
A versão do Kubernetes deve ser 1.16.0 ou posterior e suportar
Mount propagation: HostToContainer.-
Runtime de contêiner (apenas Docker e Containerd)
-
Docker:
Requer acesso ao arquivo docker.sock.
A coleta de saída padrão suporta apenas o driver de log JSON-file.
Somente os drivers de armazenamento overlay e overlay2 são suportados. Para outros tipos de drivers de armazenamento, é necessário montar manualmente os diretórios de log.
Containerd: Requer acesso ao arquivo containerd.sock.
-
-
Requisitos de recursos: O LoongCollector (Logtail) executa com a classe de prioridade 'system-cluster-critical'. Não realize a implantação se o cluster tiver recursos insuficientes, pois isso pode causar a evicção de Pods nos nós.
CPU: Reserve pelo menos 0,1 núcleo.
Memória: Reserve pelo menos 150 MB para o componente de coleta e 100 MB para o componente controlador.
O uso real varia conforme a taxa de coleta, os diretórios e arquivos monitorados e o congestionamento de envio. Mantenha a utilização abaixo de 80% dos limites configurados.
-
Requisitos de permissão: Para realizar a implantação, a conta Alibaba Cloud ou o usuário RAM deve possuir a permissão AliyunLogFullAccess.
Para criar uma política personalizada, consulte a política de sistema AliyunCSManagedLogRolePolicy . Copie as permissões dessa política e conceda-as ao usuário ou função RAM de destino para configurar permissões granulares.
Fluxo de configuração de coleta
Install LoongCollector: Implante o LoongCollector como um DaemonSet para executar um contêiner de coleta em cada nó do cluster. Essa configuração centraliza a coleta de logs de todos os contêineres no nó.
Create a LogStore: Um LogStore é uma unidade de armazenamento para dados de log. É possível criar vários LogStores dentro de um Project.
-
Crie um arquivo YAML de configuração de coleta: Use kubectl to connect to the cluster. Há duas formas de criar o arquivo de configuração de coleta:
-
Método 1: Use o gerador de configuração de coleta
Utilize o gerador de configuração de coleta no console do Log Service para configurar parâmetros visualmente e gerar automaticamente um arquivo YAML padrão.
-
Método 2: Escreva manualmente o arquivo YAML
Escreva manualmente um arquivo YAML com base nos exemplos deste documento. Construa a configuração progressivamente: comece com uma configuração mínima, adicione lógica de processamento e, em seguida, ative recursos avançados.
Para cenários complexos não abordados neste documento ou campos que exigem personalização profunda, consulte a AliyunPipelineConfig parameter reference para obter uma lista completa de campos, regras de valores e detalhes sobre as capacidades dos plugins.
Uma configuração de coleta completa geralmente inclui as seguintes partes:
-
Configuração mínima (Obrigatória): Esta configuração estabelece o pipeline de dados do cluster para o Log Service e consiste em duas partes:
-
Entradas (
inputs): Define a origem do log. Para logs de contêiner, as origens incluem os dois tipos a seguir. Para coletar outros tipos de logs, como resultados de consultas MySQL, consulte Input plugins.-
Saída padrão do contêiner (stdout e stderr): Logs que a aplicação do contêiner imprime no console.
-
Arquivos de log de texto: Arquivos de log gravados em um caminho especificado dentro do contêiner.
-
-
Saídas (
flushers): Define o destino do log. Os logs coletados são enviados para o LogStore especificado.Se o Project ou LogStore de destino não existir, o sistema o criará automaticamente. Você também pode criar manualmente um Project e um LogStore antecipadamente.
-
-
Configurações comuns de processamento (Opcional): Defina o campo
processorspara realizar análise estruturada (como expressão regular ou delimitador), mascaramento de dados ou filtragem nos logs brutos.Este documento descreve apenas plugins de processamento nativos que cobrem cenários comuns de processamento de logs. Para mais recursos, consulte Extended processing plugins.
-
Outras configurações avançadas (Opcional): Ativa recursos avançados, como coleta de logs multilinha e enriquecimento de tags de log, para atender a requisitos de coleta mais específicos.
Exemplo de estrutura:
apiVersion: telemetry.alibabacloud.com/v1alpha1 # Use the default value. Do not modify. kind: ClusterAliyunPipelineConfig # Use the default value. Do not modify. metadata: name: test-config # Set the resource name, which must be unique within the current Kubernetes cluster. spec: project: # Set the name of the target Project. name: k8s-your-project config: # Set the Logtail collection configuration. inputs: # Set the input plugins for the Logtail collection configuration. ... processors: # Set the processing plugins for the Logtail collection configuration. ... flushers: # Set the output plugins for the Logtail collection configuration. ... -
-
Aplique a configuração
kubectl apply -f <your_yaml>
Instale o LoongCollector (Logtail)
O LoongCollector é o agente de coleta de logs de nova geração do SLS, uma versão atualizada do Logtail. Ambos não podem coexistir. Para instalar o Logtail, consulte Install and configure Logtail .
Siga estas etapas para a instalação básica do LoongCollector. Para parâmetros detalhados, consulte Installation and configuration. Se o LoongCollector ou Logtail já estiver instalado, pule para a criação da logstore.
ACK cluster
É possível instalar o LoongCollector pelo console do Container Service for Kubernetes (ACK). Por padrão, os logs são enviados para um Project do Simple Log Service na conta Alibaba Cloud atual.
Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.
Na página Clusters, clique no nome do cluster de destino para abrir sua página de detalhes.
No painel de navegação à esquerda, clique em Add-ons.
-
Na aba, localize loongcollector e clique em Install.
NotaAo criar um cluster, na página Component Configurations, marque a caixa de seleção Enable Log Service. Em seguida, você pode optar por Create Project ou Select Project.
Após a conclusão da instalação, o Simple Log Service cria automaticamente os recursos relacionados na região do seu cluster ACK. Visualize esses recursos no console do Simple Log Service.
Tipo de recurso
Nome do recurso
Descrição
Project
k8s-log-${cluster_id}Isola logs de diferentes serviços.
Para criar um Project visando um gerenciamento mais flexível dos recursos de log, consulte Create a Project.
machine group
k8s-group-${cluster_id}Um grupo de nós de coleta de logs.
ImportanteO LoongCollector não cria um logstore chamado config-operation-log. Caso já exista um logstore com esse nome, o LoongCollector interrompe a gravação de logs nele.
Self-managed cluster
-
Conecte-se ao seu cluster Kubernetes. Em seguida, execute o comando apropriado para sua região a fim de baixar o LoongCollector e suas dependências:
Para regiões na China continental:
wget https://aliyun-observability-release-cn-shanghai.oss-cn-shanghai.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.shPara regiões fora da China continental:
wget https://aliyun-observability-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.sh -
Acesse o diretório
loongcollector-custom-k8s-packagee modifique o arquivo de configuração./loongcollector/values.yaml.# ===================== Required parameters ===================== # The Project where logs are sent. Example: k8s-log-custom-sd89ehdq. projectName: "" # The Project's region. Example: cn-shanghai. region: "" # The UID of the Alibaba Cloud account that owns the Project. Enclose the value in quotation marks. Example: "123456789" aliUid: "" # The network type. Valid values: Internet (public network) and Intranet (internal network). Default: Internet. net: Internet # The AccessKey ID and secret for an Alibaba Cloud account or RAM user that has the AliyunLogFullAccess policy. accessKeyID: "" accessKeySecret: "" # The custom cluster ID. The ID can contain only uppercase letters, lowercase letters, digits, and hyphens (-). clusterID: "" -
No diretório
loongcollector-custom-k8s-package, execute o seguinte comando para instalar o LoongCollector e suas dependências:bash k8s-custom-install.sh install -
Após a conclusão da instalação, verifique o status dos componentes.
Se os pods falharem ao iniciar, verifique a configuração do values.yaml e garanta que as imagens necessárias foram baixadas.
# Check pod status kubectl get po -n kube-system | grep loongcollector-dsO Simple Log Service também cria automaticamente os seguintes recursos. Visualize-os no console do Simple Log Service.
Tipo de recurso
Nome do recurso
Descrição
Project
O valor de
projectNameespecificado no arquivo values.yamlIsola logs de diferentes serviços.
machine group
k8s-group-${cluster_id}Um grupo de nós de coleta de logs.
ImportanteO LoongCollector não cria um logstore chamado config-operation-log. Caso já exista um logstore com esse nome, o LoongCollector interrompe a gravação de logs nele.
Crie um Logstore
Se você já criou um logstore, pule esta etapa e vá para collection configuration.
Faça login no console do Log Service e clique no projeto de destino.
No painel de navegação à esquerda, escolha
e clique em +.-
Na página Create Logstore, configure os seguintes parâmetros principais:
Logstore Name: Insira um nome exclusivo dentro do projeto. Este nome não pode ser alterado após a criação.
Logstore Type: Escolha Standard ou Query com base em suas especificações.
-
Billing Mode:
Pay-by-feature: A cobrança é feita separadamente para cada recurso, como armazenamento, indexação e operações de leitura/gravação. Adequado para casos de uso em pequena escala ou quando o uso dos recursos é incerto.
Pay-by-ingested-data: A cobrança ocorre apenas pela quantidade de dados brutos ingeridos. Este modo oferece um período gratuito de armazenamento de 30 dias e recursos gratuitos, como transformação e entrega de dados. Esse modelo de custo simplificado é ideal para casos em que o período de retenção é próximo de 30 dias ou o pipeline de processamento de dados é complexo.
Data Retention Period: Defina o número de dias para reter os logs. O valor varia de 1 a 3650 dias. Um valor de 3650 indica armazenamento permanente. O padrão é 30 dias.
Mantenha as demais configurações com seus valores padrão e clique em OK. Manage logstores.
Configuração mínima
Em spec.config, você configura plugins de entrada e saída para definir a origem e o destino dos logs.
Container standard output (old version)
Finalidade: Coleta logs de saída padrão do contêiner (stdout/stderr) impressos diretamente no console.
|
Define a origem do log. Atualmente, é possível configurar apenas um plugin de entrada.
|
Exemplo
|
|
O plugin
|
Container text files
Finalidade: Coleta logs gravados em um caminho de arquivo específico dentro de um contêiner, como access.log ou app.log.
|
Define a origem do log. Atualmente, é possível configurar apenas um plugin de entrada.
|
Exemplo
|
|
O plugin
|
Configuração comum
Após concluir o minimal configuration, adicione plugins de processor para analisar, mascarar ou filtrar logs brutos.
Configuração principal: Para configurar plugins de processamento, adicione processors ao spec.config. Isso permite ativar vários plugins simultaneamente.
Este tópico aborda apenas plugins de processamento nativos que lidam com casos de uso comuns de processamento de log. Para mais recursos, consulte extended processing plugins .
Para Logtail 2.0+ e LoongCollector, siga estas diretrizes de ordenação de plugins:
Priorize plugins nativos.
Caso os plugins nativos não atendam às suas necessidades, configure plugins de extensão para executar após eles.
Plugins nativos só podem executar antes dos plugins de extensão.
Configuração estruturada
Regex parsing
Extrai campos de log usando uma expressão regular e analisa os logs em pares chave-valor.
|
Parâmetro |
Exemplo |
|
Type Fixo como |
|
|
SourceKey Nome do campo de origem. |
|
|
Regex Expressão regular para analisar o log. |
|
|
Keys Lista de chaves para os campos extraídos. |
|
|
KeepingSourceWhenParseFail Indica se o campo de origem deve ser mantido quando a análise falhar. Padrão: |
|
|
KeepingSourceWhenParseSucceed Indica se o campo de origem deve ser mantido quando a análise for bem-sucedida. Padrão: |
|
|
RenamedSourceKey Novo nome para o campo de origem, caso ele seja mantido. Se omitido, o campo de origem não será renomeado. |
Delimiter parsing
Analisa logs em pares chave-valor usando um delimitador de caractere único ou múltiplo.
|
Parâmetro |
Exemplo |
|
Type Fixo como |
|
|
SourceKey Nome do campo de origem. |
|
|
Separator Delimitador de campo. Por exemplo, arquivos CSV usam vírgula (,). |
|
|
Keys Lista de chaves para os campos extraídos. |
|
|
Quote Caractere de aspas usado para envolver campos que contêm caracteres especiais, como o próprio delimitador. |
|
|
AllowingShortenedFields Define se é permitido ter menos campos extraídos do que o definido em Keys. Padrão: |
|
|
OverflowedFieldsTreatment Comportamento adotado quando mais campos são extraídos do que o definido em Keys. Padrão:
|
|
|
KeepingSourceWhenParseFail Indica se o campo de origem deve ser mantido se a análise falhar. Padrão: |
|
|
KeepingSourceWhenParseSucceed Indica se o campo de origem deve ser mantido em caso de análise bem-sucedida. Padrão: |
|
|
RenamedSourceKey Novo nome para o campo de origem, caso ele seja mantido. Se omitido, o campo de origem não será renomeado. |
Standard JSON parsing
Analisa um objeto JSON de um campo de log em pares chave-valor.
|
Parâmetro |
Exemplo |
|
Type Fixo como |
|
|
SourceKey Nome do campo de origem. |
|
|
KeepingSourceWhenParseFail Indica se o campo de origem deve ser mantido quando a análise falhar. Padrão: |
|
|
KeepingSourceWhenParseSucceed Indica se o campo de origem deve ser mantido em caso de análise bem-sucedida. Padrão: |
|
|
RenamedSourceKey Novo nome para o campo de origem, caso ele seja mantido. Se omitido, o campo de origem não será renomeado. |
Os nomes de parâmetros no YAML do CRD usam camelCase, como RenamedSourceKey. Nomes em snake_case, como renamed_source_key, não são válidos.
Nested JSON parsing
Achata um objeto JSON aninhado em pares chave-valor e permite especificar a profundidade de expansão.
|
Parâmetro |
Exemplo |
|
Type Fixo como |
|
|
SourceKey Nome do campo de origem. |
|
|
ExpandDepth Profundidade máxima de expansão para o objeto JSON aninhado. Padrão: 0.
|
|
|
ExpandConnector Conector usado entre as chaves ao achatar um objeto JSON aninhado. Padrão: sublinhado (_). |
|
|
Prefix Prefixo a ser adicionado a todos os nomes de campos expandidos. |
|
|
IgnoreFirstConnector Define se o conector antes do campo de nível superior deve ser omitido. Padrão: |
|
|
ExpandArray Define se tipos de array devem ser expandidos. Padrão:
Nota
Este parâmetro é suportado no Logtail 1.8.0 e versões posteriores. |
|
|
KeepSource Define se o campo original deve ser mantido no log analisado. Padrão:
|
|
|
NoKeyError Define se um erro deve ser relatado caso o campo de origem especificado não seja encontrado. Padrão:
|
|
|
UseSourceKeyAsPrefix Se definido como true, usa o nome do campo de origem como prefixo para todos os nomes de campos expandidos. |
|
|
KeepSourceIfParseError Define se os logs brutos devem ser mantidos quando a análise falhar. Padrão:
|
JSON array parsing
Utilize a função json_extract para extrair um objeto JSON de um array JSON. JSON Functions.
|
Parâmetro |
Exemplo |
|
Type Tipo do plugin. O tipo do plugin SPL é |
|
|
Script Script SPL usado para extrair elementos de um array JSON no campo content. |
|
|
TimeoutMilliSeconds Tempo limite de execução do script em milissegundos. O valor deve estar entre 0 e 10.000. Valor padrão: 1.000. |
NGINX log parsing
Analisa logs do NGINX em pares chave-valor com base na sua definição de log_format. Caso o formato padrão não atenda aos seus requisitos, utilize um formato personalizado.
|
Parâmetro |
Exemplo |
|
Type Fixo como |
|
|
SourceKey Nome do campo de origem. |
|
|
Regex Expressão regular para analisar o log do NGINX. |
|
|
Keys Lista de chaves para os campos extraídos. |
|
|
Extra
|
|
|
KeepingSourceWhenParseFail Define se o campo original deve ser mantido se a análise falhar. Padrão: |
|
|
KeepingSourceWhenParseSucceed Define se o campo original deve ser mantido em caso de análise bem-sucedida. Padrão: |
|
|
RenamedSourceKey Novo nome para o campo de origem, caso ele seja mantido. Se omitido, o campo de origem não será renomeado. |
Apache log parsing
Analisa logs do Apache em pares chave-valor com base no formato definido no seu arquivo de configuração do Apache.
|
Parâmetro |
Exemplo |
|
Type Fixo como |
|
|
SourceKey Nome do campo de origem. |
|
|
Regex Expressão regular para analisar o log do Apache. |
|
|
Keys Lista de chaves para os campos extraídos. |
|
|
Extra
|
|
|
KeepingSourceWhenParseFail Define se o campo original deve ser mantido se a análise falhar. Padrão: |
|
|
KeepingSourceWhenParseSucceed Define se o campo original deve ser mantido em caso de análise bem-sucedida. Padrão: |
|
|
RenamedSourceKey Novo nome para o campo de origem, caso ele seja mantido. Se omitido, o campo de origem não será renomeado. |
Mascaramento de dados
Utilize o plugin processor_desensitize_native para mascarar dados sensíveis nos seus logs.
|
Parâmetros |
Exemplo |
|
Type Defina como |
|
|
SourceKey Nome do campo de origem. |
|
|
Method Método de mascaramento. Valores suportados:
|
|
|
ReplacingString String constante que substitui os dados sensíveis. Este parâmetro é obrigatório quando |
|
|
ContentPatternBeforeReplacedString Expressão regular para o conteúdo que precede os dados sensíveis. |
|
|
ReplacedContentPattern Expressão regular que corresponde aos dados sensíveis. |
|
|
ReplacingAll Define se todas as correspondências devem ser substituídas. Padrão: |
Filtragem de conteúdo
Configure o plugin processor_filter_regex_native para comparar valores de campos de log com uma expressão regular e manter apenas os logs correspondentes.
|
Parâmetros |
Exemplo |
|
Type Tipo do plugin. Este valor deve ser |
|
|
FilterRegex Lista de expressões regulares para corresponder aos valores dos campos de log. |
|
|
FilterKey Lista de nomes de campos de log aos quais os padrões FilterRegex serão aplicados. |
Análise de tempo
Analise o campo de tempo em um log e utilize o resultado como o campo __time__ do log.
|
Campos principais |
Exemplo |
|
Type Tipo do plugin. Defina como |
|
|
SourceKey Nome do campo de origem. |
|
|
SourceFormat O formato de tempo, que deve corresponder exatamente ao formato de tempo no log. |
|
|
SourceTimezone Fuso horário do carimbo de data/hora de origem. Padrão: fuso horário da máquina que executa o LoongCollector. Formato:
|
Configurações avançadas
Após concluir o minimal configuration, utilize estas configurações avançadas para obter uma coleta mais granular:
Configurar coleta de logs multilinha: Ative o modo multilinha com uma expressão regular de padrão inicial para coletar entradas que abrangem várias linhas (como stack traces) como registros únicos de log.
Configurar tipos de tópicos de log: Atribua tópicos aos fluxos de log para facilitar a organização e a recuperação.
Especificar contêineres para coleta (filtragem e lista de bloqueios): Utilize listas de permissões e listas de bloqueios para coletar logs apenas de contêineres e caminhos específicos.
Enriquecer logs com tags: Adicione metadados de variáveis de ambiente e rótulos de pod aos seus logs na forma de tags.
Configurar coleta de logs multilinha
Por padrão, o SLS divide os logs linha por linha, separando entradas multilinha, como stack traces, em registros distintos.
Ative o modo multilinha e configure uma expressão regular de padrão inicial para agrupar entradas multilinha em registros únicos de log.
Configuração principal: Adicione o parâmetro Multiline à configuração spec.config.inputs.
|
Detalhes dos campos |
Exemplo |
|
Multiline Habilita a coleta de logs multilinha.
|
|
Tipos de tópicos de log
Configuração principal: Adicione o parâmetro global ao spec.config para definir o tópico do log.
|
Detalhes dos campos |
Exemplo |
|
TopicType Tipo de tópico. Valores válidos:
|
Machine group topic
File path extraction
Custom
|
|
TopicFormat Formato do tópico. Este parâmetro é obrigatório quando |
Filtragem e lista de bloqueios de contêineres
Filtragem
Colete logs apenas de contêineres que correspondam às condições especificadas. Múltiplas condições são combinadas com o operador lógico AND. Condições vazias são ignoradas. Todas as condições aceitam expressões regulares.
Configuração principal: Configure os parâmetros de filtragem de contêineres em ContainerFilters na seção spec.config.inputs.
|
Detalhes dos campos |
Exemplo |
|
ContainerFilters Configurações de filtragem de contêineres.
Toda correspondência de expressão regular baseia-se no mecanismo RE2 da linguagem Go, que possui certas limitações em comparação com mecanismos como PCRE. Escreva suas expressões regulares seguindo as diretrizes em Appendix: Regular expression limits for container filtering. |
|
Lista de bloqueios
Exclua arquivos que correspondam aos critérios especificados. Para isso, adicione os seguintes parâmetros em config.inputs na sua configuração YAML conforme necessário:
|
Detalhes dos campos |
Example
|
|
ExcludeFilePaths Lista de bloqueios de caminhos de arquivo. Exclui arquivos que correspondem aos caminhos absolutos especificados. Os caminhos podem incluir o caractere curinga |
|
|
ExcludeFiles Lista de bloqueios de nomes de arquivo. Exclui arquivos com nomes correspondentes. Os nomes podem incluir o caractere curinga |
|
|
ExcludeDirs Lista de bloqueios de diretórios. Exclui diretórios com base nos caminhos especificados. Os caminhos devem ser absolutos e podem incluir o caractere curinga |
Enriquecimento de logs com tags
Configuração principal: No spec.config.inputs, configure ExternalEnvTag e ExternalK8sLabelTag para mapear variáveis de ambiente do contêiner e rótulos de pod para tags de log.
|
Detalhes dos campos |
Exemplo |
|
ExternalEnvTag Mapeia o valor de uma variável de ambiente especificada para uma tag de log. O formato é |
|
|
ExternalK8sLabelTag Mapeia o valor de um rótulo de pod Kubernetes para uma tag de log. O formato é |
Exemplos de configuração
Caso de uso 1: Analisar logs de acesso Nginx
Esta configuração analisa um log do Nginx e estrutura o conteúdo em múltiplos pares chave-valor com base na definição log_format.
Caso de uso 2: Processar logs multilinha
Por padrão, o SLS trata cada linha como uma entrada de log separada, dividindo logs multilinha, como stack traces, em vários registros.
Ative o modo multilinha com uma expressão regular de padrão inicial para agrupar todas as linhas de um log multilinha em uma única entrada.
FAQ
Gerenciamento de distribuição para múltiplos destinos
As configurações de distribuição para múltiplos destinos estão associadas a vários Logstores e devem ser gerenciadas na página de gerenciamento no nível do projeto:
Faça login no console do Simple Log Service e clique no nome do projeto desejado.
-
Na página do projeto, no painel de navegação à esquerda, clique em
.NotaEsta página lista todas as configurações de coleta no projeto, incluindo configurações residuais de Logstores excluídos acidentalmente.
Enviar logs do ACK para um projeto entre contas
Instale o LoongCollector (Logtail) manualmente em um cluster ACK e configure-o com as credenciais da conta de destino para enviar logs a um projeto em outra conta Alibaba Cloud.
Caso de uso: Coletar logs de um cluster ACK em um projeto sob uma conta separada para fins de estrutura organizacional, isolamento de permissões ou monitoramento unificado.
Procedimento: Este procedimento mostra como instalar o LoongCollector manualmente. Para saber como instalar o Logtail, consulte Install and configure Logtail.
-
Conecte-se ao cluster Kubernetes e execute o comando correspondente à sua região para baixar o LoongCollector e suas dependências:
Regiões na China:
wget https://aliyun-observability-release-cn-shanghai.oss-cn-shanghai.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.shRegiões fora da China:
wget https://aliyun-observability-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/loongcollector/k8s-custom-pkg/3.0.12/loongcollector-custom-k8s-package.tgz; tar xvf loongcollector-custom-k8s-package.tgz; chmod 744 ./loongcollector-custom-k8s-package/k8s-custom-install.sh -
Acesse o diretório
loongcollector-custom-k8s-packagee modifique o arquivo de configuração./loongcollector/values.yaml.# ===================== Required Information ===================== # The name of the Project to which logs from this cluster are sent. Example: k8s-log-custom-sd89ehdq projectName: "" # The region where the Project is located. Example: cn-shanghai region: "" # The UID of the Alibaba Cloud account that owns the Project. Enclose the UID in quotation marks (""). Example: "123456789" aliUid: "" # The network type. Valid values: Internet and Intranet. Default value: Internet. net: Internet # The AccessKey ID and AccessKey secret of the Alibaba Cloud account or RAM user. The account or RAM user must have the AliyunLogFullAccess system policy permission. accessKeyID: "" accessKeySecret: "" # A custom cluster ID. The ID can contain only uppercase letters, lowercase letters, digits, and hyphens (-). clusterID: "" -
No diretório
loongcollector-custom-k8s-package, execute o seguinte comando para instalar o LoongCollector e suas dependências:bash k8s-custom-install.sh install -
Após a conclusão da instalação, verifique se os componentes estão em execução.
Se um pod falhar ao iniciar, verifique as configurações no arquivo values.yaml e garanta que as imagens necessárias foram baixadas.
# Check the pod status kubectl get po -n kube-system | grep loongcollector-dsO Simple Log Service também cria automaticamente os seguintes recursos. Você pode visualizá-los no console do Simple Log Service.
Tipo de recurso
Nome do recurso
Descrição
Projeto
O valor de
projectNameespecificado no arquivo values.yamlUnidade de gerenciamento de recursos que isola logs de diferentes serviços.
Grupo de máquinas
k8s-group-${cluster_id}Conjunto de nós de coleta de logs.
ImportanteO componente LoongCollector não cria um logstore chamado config-operation-log. Se este logstore já existir, o LoongCollector não gravará logs nele.
Múltiplas coletas para uma única fonte
Por padrão, o SLS restringe cada fonte de log a uma única configuração de coleta para evitar duplicação:
Um arquivo de log de texto pode corresponder a apenas uma configuração de coleta do Logtail.
A saída padrão (stdout) de um contêiner pode corresponder a apenas uma configuração de coleta de saída padrão.
Faça login no console do Simple Log Service e acesse o projeto desejado.
No painel de navegação à esquerda, selecione
Logstores e localize o logstore desejado.Clique no ícone
ao lado do nome para expandir o logstore.Clique em Logtail Configuration. Na lista de configurações, localize a configuração do Logtail desejada e clique em Manage Logtail Configuration na coluna Actions.
-
Na página Logtail Configurations, clique em Edit e role para baixo até a seção Input Configurations:
Para coletar logs de arquivos de texto, ative Allow File to Be Collected for Multiple Times.
Para coletar a saída padrão de contêineres, ative Allow Collection by Different Logtail Configurations.
Apêndice: Limites de regex (filtragem de contêineres)
As expressões regulares para filtragem de contêineres utilizam o mecanismo Go RE2, que apresenta limitações de sintaxe em comparação ao PCRE:
1. Diferenças na sintaxe de grupos nomeados
O Go utiliza a sintaxe (?P<name>...) para grupos nomeados. Ele não oferece suporte à sintaxe (?<name>...) usada no PCRE.
Exemplo correto:
(?P<year>\d{4})Sintaxe incorreta:
(?<year>\d{4})
2. Recursos de expressão regular não suportados
O RE2 não oferece suporte aos seguintes recursos comuns, porém complexos, de expressões regulares. Evite usá-los:
Asserções:
(?=...),(?!...),(?<=...),(?<!...)Expressões condicionais:
(?(condition)true|false)Correspondência recursiva:
(?R),(?0)Referências de subprograma:
(?&name),(?P>name)Grupos atômicos:
(?>...)
3. Recomendações
Ao depurar regex com uma ferramenta como o Regex101, selecione o modo Golang (RE2). Sintaxes não suportadas impedem que o plugin analise ou faça a correspondência corretamente.