Todos os produtos
Search
Central de documentação

Container Service for Kubernetes:Coletar logs de contêineres de clusters ACK no modo DaemonSet

Última atualização: Jul 04, 2026

O ACK integra-se ao Simple Log Service (SLS) para coletar, consultar e analisar logs de contêineres dos seus clusters Kubernetes. Este tópico aborda a instalação de um componente de coleta de logs no modo DaemonSet, a criação de uma configuração de coleta para logs de texto ou stdout e a consulta dos logs coletados.

O modo DaemonSet executa um agente de coleta de logs por nó. Essa abordagem é ideal para clusters com tipos de log consistentes ou cargas de trabalho dedicadas. Para clusters de grande escala ou com cargas mistas, utilize o modo Sidecar. Para comparar os dois modos, consulte Método de coleta.

Para informações sobre preços do SLS, consulte Visão geral do faturamento.

Pré-requisitos

Antes de começar, verifique se você possui:

  • Um cluster ACK (gerenciado ou dedicado)

  • Permissões suficientes para instalar complementos no console do ACK

Visão geral

Etapa

Ação

Etapa 1: Instalar um componente de coleta de logs

Instale o LoongCollector (recomendado) ou o Logtail no seu cluster

Etapa 2: Criar uma configuração de coleta

Configure a coleta de logs de texto ou stdout usando uma Custom Resource Definition (CRD), o console do SLS ou variáveis de ambiente

Etapa 3: Consultar e analisar logs

Pesquise e analise os logs coletados no console do SLS

Etapa 1: Instalar um componente de coleta de logs

O ACK oferece suporte a dois componentes de coleta de logs:

  • LoongCollector (recomendado): Agente de coleta de logs de última geração do Simple Log Service. O LoongCollector substitui o Logtail e foi projetado para incorporar capacidades dos agentes do Application Real-Time Monitoring Service (ARMS), incluindo coleta baseada no Managed Service for Prometheus e coleta não intrusiva baseada em Extended Berkeley Packet Filter (eBPF).

  • Logtail: Agente da geração anterior. O Logtail coleta logs de várias source de dados — incluindo instâncias do Elastic Compute Service (ECS), servidores locais e servidores de nuvem de terceiros — sem exigir alterações no código da aplicação.

Importante

O LoongCollector e o logtail-ds não podem coexistir no mesmo cluster. Se o logtail-ds já estiver instalado, atualize para o LoongCollector primeiro e depois desinstale o logtail-ds. A atualização antes da desinstalação garante que a coleta de logs continue sem interrupções durante a migração. Consulte Atualizar do Logtail para o LoongCollector.

Instalar o LoongCollector (recomendado)

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no cluster que deseja gerenciar. No painel de navegação à esquerda, escolha Operations > Add-ons.

  3. Na aba Logs and Monitoring, localize o componente loongcollector e clique em Install.

Após a conclusão da instalação, o SLS cria automaticamente um projeto chamado k8s-log-${your_k8s_cluster_id} e os seguintes recursos:

Tipo de recurso

Nome do recurso

Finalidade

Machine group

k8s-group-${your_k8s_cluster_id}

Usado pelo loongcollector-ds para coleta de logs. Exemplo: k8s-group-my-cluster-123

Machine group

k8s-group-${your_k8s_cluster_id}-cluster

Usado pelo loongcollector-cluster para coleta de métricas. Exemplo: k8s-group-my-cluster-123-cluster

Machine group

k8s-group-${your_k8s_cluster_id}-singleton

Usado para criar configurações do LoongCollector por instância. Exemplo: k8s-group-my-cluster-123-singleton

Logstore

config-operation-log

Armazena logs do loongcollector-operator. Não exclua este Logstore.

Verificar a instalação

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

  2. Na seção Projects, confirme se o projeto k8s-log-${your_k8s_cluster_id} está listado.

  3. No projeto, acesse Machine Groups e verifique se o grupo de máquinas k8s-group-${your_k8s_cluster_id} exibe status de heartbeat Running. Um heartbeat Running confirma que o loongcollector-ds está ativo nos nós e pronto para coletar logs. Caso o status ainda não seja Running, atualize a página — o agente pode levar algum tempo para se registrar após a instalação.

Instalar o Logtail

Instalar o Logtail em um cluster existente

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no cluster que deseja gerenciar. No painel de navegação à esquerda, clique em Add-ons.

  3. Na aba Logs and Monitoring, localize o componente logtail-ds e clique em Install.

Instalar o Logtail durante a criação de um cluster

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique em Create Kubernetes Cluster. Na etapa Component Configurations, selecione Enable Log Service. O assistente solicitará que você associe um projeto do SLS. Escolha uma das opções abaixo:

    • Select Project: Use um projeto existente para gerenciar os logs coletados.

    • Create Project: O SLS cria automaticamente um projeto usando ClusterID como identificador.

Importante

Na etapa Component Configurations, a opção Control Plane Component Logs vem ativada por padrão. Quando ativada, o sistema coleta automaticamente logs dos componentes do plano de controle e cobra taxas conforme o modelo de pagamento conforme o uso. Desative essa opção se não precisar dos logs do plano de controle para evitar cobranças inesperadas. Para mais detalhes, consulte Coletar logs de componentes do plano de controle em clusters ACK gerenciados. Control plane component logs setting

Install Logtail — select project Install Logtail — create project

Após a instalação, o SLS cria automaticamente um projeto chamado k8s-log-<YOUR_CLUSTER_ID> e os seguintes recursos:

Tipo de recurso

Nome do recurso

Finalidade

Machine group

k8s-group-<YOUR_CLUSTER_ID>

Usado pelo logtail-daemonset para coleta de logs. Exemplo: k8s-group-my-cluster-123

Machine group

k8s-group-<YOUR_CLUSTER_ID>-statefulset

Usado pelo logtail-statefulset para coleta de métricas. Exemplo: k8s-group-my-cluster-123-statefulset

Machine group

k8s-group-<YOUR_CLUSTER_ID>-singleton

Usado para criar configurações do Logtail por instância. Exemplo: k8s-group-my-cluster-123-singleton

Logstore

config-operation-log

Armazena logs do componente alibaba-log-controller. Não crie uma configuração do Logtail para este Logstore. Você pode excluí-lo — após a exclusão, o sistema interrompe a coleta de logs operacionais do alibaba-log-controller. Cobrado à tarifa padrão de Logstore. Consulte Itens faturáveis para o modo de pagamento por dados ingeridos.

Etapa 2: Criar uma configuração de coleta

Escolha um dos quatro métodos para criar uma configuração de coleta. Use apenas um método por configuração para evitar conflitos.

Importante

Para configurações criadas por meio de um Custom Resource (CR), sempre atualize o CR para modificar a configuração. Alterações feitas diretamente no console do SLS não são sincronizadas de volta para o CR.

Escolher um método de configuração

Método

Mais indicado para

Limitações

CRD - AliyunPipelineConfig (recomendado)

Coleta e processamento complexos; consistência de versão entre a configuração e o contêiner do LoongCollector

Requer versão do logtail-ds > 1.8.10 quando usado com Logtail. Sem requisito de versão para LoongCollector.

CRD - AliyunLogConfig

Clusters que já utilizam esta CRD. Migre para AliyunPipelineConfig para melhor extensibilidade — consulte CRDs para diferenças.

Versão antiga da CRD; extensibilidade limitada

Console do Simple Log Service

Configuração rápida sem acesso ao cluster Kubernetes

Impossível criar configurações em lote; recursos avançados indisponíveis

Variáveis de ambiente

Coleta simples de logs de linha única configurada diretamente nas especificações do pod

Apenas logs de linha única; inadequado para cenários de edge computing

Ao usar CRD - AliyunPipelineConfig com logtail-ds, a versão instalada deve ser superior a 1.8.10. Consulte Atualizar para a versão mais recente do Logtail para etapas de atualização. O LoongCollector não possui requisito de versão.

Coletar logs de texto

As aplicações gravam logs de texto em arquivos dentro de diretórios especificados nos contêineres. Esses logs são adequados para análises de longo prazo e solução de problemas.

CRD - AliyunPipelineConfig (recomendado)

Criar um CR a partir da CRD AliyunPipelineConfig ativa automaticamente a configuração do LoongCollector.

  1. Faça login no console do ACK.

  2. Na página Clusters, clique no cluster de destino. No painel de navegação à esquerda, escolha Workloads > Custom Resources.

  3. Na página Custom Resources, clique na aba CRDs e, em seguida, clique em Create from YAML.

  4. Modifique o YAML abaixo e clique em Create. O exemplo a seguir coleta logs de texto multilinha de test.LOG em /data/logs/app_1/ para pods rotulados com app: ^(.*app.*)$ no namespace default, e os envia para o Logstore k8s-file em k8s-log-<YOUR_CLUSTER_ID>. Substitua os placeholders a seguir antes de aplicar: Para a lista completa de parâmetros de config (inputs, outputs, plug-ins de processamento e filtros de contêiner), consulte PipelineConfig e Parâmetros de CR.

    • project.name: Nome do seu projeto, por exemplo, k8s-log-<YOUR_CLUSTER_ID>. Encontre o nome do projeto no console do SLS após a instalação.

    • IncludeK8sLabel: Filtro de rótulo de pod. app: ^(.*app.*)$ coleta pods cujo rótulo app contém app. Para coletar todos os pods cujos nomes contenham test, substitua IncludeK8sLabel por K8sContainerRegex: ^(.*test.*)$.

    • FilePaths: Caminho do arquivo de log dentro do contêiner. Consulte Mapeamento de caminho de arquivo para contêineres.

    • Endpoint e Region: Endpoint e ID da sua região, por exemplo, cn-hangzhou.log.aliyuncs.com e cn-hangzhou.

    apiVersion: telemetry.alibabacloud.com/v1alpha1
    kind: ClusterAliyunPipelineConfig
    metadata:
      # The resource name must be unique in the cluster. It becomes the LoongCollector configuration name.
      name: example-k8s-file
    spec:
      project:
        name: k8s-log-<YOUR_CLUSTER_ID>
      logstores:
        - name: k8s-file
      config:
        # Sample log (optional)
        sample: |
          2024-06-19 16:35:00 INFO test log
          line-1
          line-2
          end
        inputs:
          # input_file collects multi-line text logs from containers.
          - Type: input_file
            FilePaths:
              - /data/logs/app_1/**/test.LOG
            EnableContainerDiscovery: true
            CollectingContainersMeta: true
            ContainerFilters:
              # Filter by namespace (supports regular expressions)
              K8sNamespaceRegex: default
              # Filter by pod label (supports regular expressions)
              IncludeK8sLabel:
                app: ^(.*app.*)$
            # Remove the Multiline block to collect single-line logs.
            Multiline:
              Mode: custom
              # Regular expression matching the first line of each log entry
              StartPattern: '\d+-\d+-\d+\s\d+:\d+:\d+'
        processors:
          # Parse logs using a regular expression.
          - Type: processor_parse_regex_native
            SourceKey: content
            Regex: (\d+-\d+-\d+\s\S+)(.*)
            Keys: ["time", "detail"]
        flushers:
          # Send logs to the specified Logstore.
          - Type: flusher_sls
            Logstore: k8s-file
            Endpoint: cn-beijing.log.aliyuncs.com
            Region: cn-beijing
            TelemetryType: logs

CRD - AliyunLogConfig

Criar um CR a partir da CRD AliyunLogConfig ativa automaticamente a configuração do LoongCollector.

  1. Faça login no console do ACK.

  2. Na página Clusters, clique no cluster de destino. No painel de navegação à esquerda, escolha Workloads > Custom Resources.

  3. Na página Custom Resources, clique na aba CRDs e, em seguida, clique em Create from YAML.

  4. Modifique o YAML abaixo e clique em Create. O exemplo a seguir cria uma configuração chamada example-k8s-file que coleta test.LOG de /data/logs/app_1/ para todos os contêineres cujos nomes começam com app, e envia os dados para o Logstore k8s-file em k8s-log-<YOUR_CLUSTER_ID>. Substitua os seguintes placeholders: Para a lista completa de parâmetros de logtailConfig, consulte AliyunLogConfigDetail e Parâmetros de CR.

    • logPath: Diretório do arquivo de log, por exemplo, /data/logs/app_1.

    • filePattern: Nome do arquivo de log. Caracteres curinga (*, ?) são suportados, por exemplo, log_*.log.

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      # The resource name must be unique in the cluster.
      name: example-k8s-file
      namespace: kube-system
    spec:
      # If left blank, the project k8s-log-<your_cluster_id> is used.
      # project: k8s-log-test
      # Logstore name. Created automatically if it doesn't exist.
      logstore: k8s-file
      logtailConfig:
        # Set to "file" to collect text logs.
        inputType: file
        configName: example-k8s-file
        inputDetail:
          logType: common_reg_log
          logPath: /data/logs/app_1
          filePattern: test.LOG
          # Set to true to collect from containers.
          dockerFile: true
          # Remove logBeginRegex to collect single-line logs.
          logBeginRegex: \d+-\d+-\d+.*
          advanced:
            k8s:
              K8sPodRegex: '^(app.*)$'

Console do Simple Log Service

Este método não requer acesso ao cluster Kubernetes, mas não permite criar configurações em lote.
  1. Faça login no console do Simple Log Service.

  2. Na seção Projects, clique no seu projeto (por exemplo, k8s-log-<YOUR_CLUSTER_ID>). Clique no Logstore de destino, depois clique em Logtail Configurations > Add Logtail Configuration. Na caixa de diálogo Quick Data Import, localize o cartão Kubernetes - File e clique em Integrate Now.

    Quick Data Import — Kubernetes File

  3. Na etapa Machine Group Configurations, defina Scenario como Kubernetes Clusters e Deployment Method como ACK Daemonset. Selecione k8s-group-${your_k8s_cluster_id} em Source Machine Group e clique em > para movê-lo para Applied Server Groups. Clique em Next.

    Machine group configuration

  4. Na etapa Logtail Configuration, configure os parâmetros necessários e clique em Next. A configuração leva cerca de um minuto para entrar em vigor. Para a lista completa de parâmetros, consulte Criar uma configuração do Logtail.

    • Global Configurations: Insira o nome da configuração. Global configuration

    • Input Configurations: File path configuration

      • Logtail Deployment Mode: Selecione Daemonset.

      • File Path Type: Selecione Path in Container para caminhos de arquivo padrão de contêiner. Selecione Host Path apenas se um volume hostPath estiver montado e você desejar coletar usando o caminho do lado do host.

      • File Path: Diretório contendo os arquivos de log. Deve começar com /. Por exemplo, /data/wwwlogs/main/**/*.Log coleta arquivos com o sufixo .Log em /data/wwwlogs/main/. Use Maximum Directory Monitoring Depth para controlar quantos níveis de subdiretório ** corresponde. Defina como 0 para monitorar apenas o diretório especificado.

  5. Crie índices e visualize dados. Por padrão, o SLS ativa a indexação de texto completo para que todos os campos de log sejam consultáveis. Alternativamente, clique em Automatic Index Generation para criar índices de campo para consultas mais direcionadas e com menor custo. Para detalhes, consulte Criar índices.

    Index configuration

Variáveis de ambiente

Este método suporta apenas logs de texto de linha única. Para logs multilinha ou outros formatos, use um dos métodos de CRD ou console acima. Variáveis de ambiente não podem ser usadas em cenários de edge computing.

Configurar via console do ACK

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no cluster de destino. No painel de navegação à esquerda, escolha Workloads > Deployments.

  3. Na página Deployments, clique em Create From Image.

  4. Na aba Application Basic Information, defina o nome da aplicação e clique em Next. Na página Container Configuration, defina o nome da imagem. Para configurações não relacionadas ao SLS, consulte Criar uma carga de trabalho sem estado (Deployment).

  5. Na seção Log:

    • Clique em Collection Configuration para criar uma configuração do Logtail. Cada configuração requer: Collection configuration

      • Logstore: O Logstore onde os logs coletados são armazenados. Se o Logstore não existir, o ACK o cria automaticamente no projeto associado ao seu cluster. > Note: O período padrão de retenção de logs é de 90 dias.

      • Log Path in Container: O caminho de onde coletar logs, por exemplo, /usr/local/tomcat/logs/catalina.*.log.

    • (Opcional) Clique em Custom Tag para adicionar tags de chave-valor aos logs coletados, por exemplo, um número de versão. Custom tag

Configurar via YAML

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no cluster de destino. No painel de navegação à esquerda, escolha Workloads > Deployments.

  3. Na página Deployments, selecione um namespace e clique em Create From YAML no canto superior direito.

  4. Configure o YAML. Use o campo env para adicionar configurações de coleta e tags personalizadas, e então adicione volumeMounts e volumes correspondentes. Todas as variáveis de ambiente relacionadas à coleta usam o prefixo aliyun_logs_.

    • Formato da Collection configuration: aliyun_logs_{key}, onde {key} usa apenas letras minúsculas, dígitos e hifens. O valor é o caminho do arquivo de log dentro do contêiner. Se aliyun_logs_{key}_logstore não estiver definido, um Logstore chamado {key} será criado automaticamente.

    • Formato da Custom tag: aliyun_logs_{key}_tags com valor {tag-key}={tag-value}. O nome da tag {key} não deve conter underscores.

    • Se o caminho de coleta não for stdout, adicione uma entrada volumeMounts correspondente.

    apiVersion: v1
    kind: Pod
    metadata:
      name: my-demo
    spec:
      containers:
      - name: my-demo-app
        image: 'registry.cn-hangzhou.aliyuncs.com/log-service/docker-log-test:latest'
        env:
        # Collection configuration: collect /var/log/*.log to the log-varlog Logstore
        - name: aliyun_logs_log-varlog
          value: /var/log/*.log
        # Custom tag: append tag1=v1 to all collected logs
        - name: aliyun_logs_mytag1_tags
          value: tag1=v1
        volumeMounts:
        - name: volumn-sls-mydemo
          mountPath: /var/log
        command: ["sh", "-c"]
        args: ["sleep 3600"]
      volumes:
      - name: volumn-sls-mydemo
        emptyDir: {}
  5. Clique em Create para aplicar a configuração.

Parâmetros avançados de variáveis de ambiente

Variável

Obrigatório

Padrão

Descrição

aliyun_logs_{key}

Sim

—

Caminho do log dentro do contêiner, ou stdout para coletar saída padrão. {key} usa apenas letras minúsculas, dígitos e hifens.

aliyun_logs_{key}_tags

Não

—

Tags personalizadas no formato {tag-key}={tag-value}.

aliyun_logs_{key}_project

Não

Projeto selecionado na instalação

Um projeto diferente do SLS. Deve estar na mesma região que o LoongCollector.

aliyun_logs_{key}_logstore

Não

{key}

Nome do Logstore.

aliyun_logs_{key}_shard

Não

2

Número de shards (1–10). Sem efeito se o Logstore já existir.

aliyun_logs_{key}_ttl

Não

90 dias

Período de retenção de logs em dias (1–3650). Defina como 3650 para retenção permanente. Sem efeito se o Logstore já existir.

aliyun_logs_{key}_machinegroup

Não

Grupo de máquinas padrão do LoongCollector

Nome do grupo de máquinas. Consulte Coletar logs de contêineres de clusters ACK.

aliyun_logs_{key}_logstoremode

Não

standard

Tipo de Logstore: standard ou query. Requer versão da imagem logtail-ds >= 1.3.1. Sem efeito se o Logstore já existir.

Tipos de Logstore

Tipo

Análise SQL

Mais indicado para

standard

Sim

Monitoramento em tempo real, análise interativa e observabilidade abrangente

query

Não

Grandes volumes de dados, longos períodos de retenção (semanas ou meses), sem necessidade de análise de logs. A taxa de tráfego de índice é cerca de metade da taxa do tipo standard.

Cenários personalizados

Coletar de múltiplas aplicações para o mesmo Logstore

Defina aliyun_logs_{key}_logstore com o mesmo nome de Logstore para todas as aplicações. Cada aplicação usa uma {key} exclusiva.

Aplicação 1:

- name: aliyun_logs_app1-stdout
  value: stdout
- name: aliyun_logs_app1-stdout_logstore
  value: stdout-logstore

Aplicação 2:

- name: aliyun_logs_app2-stdout
  value: stdout
- name: aliyun_logs_app2-stdout_logstore
  value: stdout-logstore

Coletar de diferentes aplicações para diferentes projetos

  1. Em cada projeto de destino, crie um grupo de máquinas com o identificador personalizado k8s-group-{cluster-id}, onde {cluster-id} é o ID do seu cluster.

  2. Para cada aplicação, defina as variáveis de ambiente de projeto, Logstore e grupo de máquinas.

Aplicação 1:

- name: aliyun_logs_app1-stdout
  value: stdout
- name: aliyun_logs_app1-stdout_project
  value: app1-project
- name: aliyun_logs_app1-stdout_logstore
  value: app1-logstore
- name: aliyun_logs_app1-stdout_machinegroup
  value: app1-machine-group

Aplicação 2:

- name: aliyun_logs_app2-stdout
  value: stdout
- name: aliyun_logs_app2-stdout_project
  value: app2-project
- name: aliyun_logs_app2-stdout_logstore
  value: app2-logstore
- name: aliyun_logs_app2-stdout_machinegroup
  value: app1-machine-group

Coletar stdout

stdout é a saída em tempo real gravada por aplicações executadas dentro de contêineres, incluindo tanto stdout quanto stderr. É mais adequado para depuração de programas e solução rápida de problemas.

Os mesmos quatro métodos de configuração se aplicam. Consulte as instruções específicas de cada método abaixo.

CRD - AliyunPipelineConfig (recomendado)

  1. Faça login no console do ACK.

  2. Na página Clusters, clique no cluster de destino. No painel de navegação à esquerda, escolha Workloads > Custom Resources.

  3. Na página Custom Resources, clique na aba CRDs e, em seguida, clique em Create from YAML.

  4. Modifique o YAML abaixo e clique em Create. O exemplo a seguir captura stdout e stderr de pods rotulados com app: ^(.*test.*)$ no namespace default usando modo multilinha, e os envia para o Logstore k8s-stdout em k8s-log-<YOUR_CLUSTER_ID>. Substitua os seguintes placeholders: Para uma lista completa de parâmetros, consulte PipelineConfig e Parâmetros de CR. Use o Gerador de configuração do Logtail para gerar um modelo YAML para o seu cenário.

    • project.name: Nome do seu projeto, por exemplo, k8s-log-<YOUR_CLUSTER_ID>.

    • IncludeK8sLabel: Filtro de rótulo de pod. app: ^(.*test.*)$ coleta pods cujo rótulo app contém test.

    • Endpoint e Region: Por exemplo, ap-southeast-1.log.aliyuncs.com e ap-southeast-1.

    apiVersion: telemetry.alibabacloud.com/v1alpha1
    kind: ClusterAliyunPipelineConfig
    metadata:
      # The resource name must be unique in the cluster. It becomes the LoongCollector configuration name.
      name: example-k8s-stdout
    spec:
      project:
        name: k8s-log-<YOUR_CLUSTER_ID>
      logstores:
        - name: k8s-stdout
      config:
        # Sample log (optional)
        sample: |
          2024-06-19 16:35:00 INFO test log
          line-1
          line-2
          end
        inputs:
          # service_docker_stdout collects stdout and stderr from containers.
          - Type: service_docker_stdout
            Stdout: true
            Stderr: true
            # Filter by namespace (supports regular expressions)
            K8sNamespaceRegex: "^(default)$"
            CollectContainersFlag: true
            # Filter by pod label (supports regular expressions)
            IncludeK8sLabel:
              app: ^(.*test.*)$
            # Regular expression for the first line of a multi-line log entry.
            # Remove this line to collect single-line logs.
            BeginLineRegex: \d+-\d+-\d+.*
        flushers:
          - Type: flusher_sls
            Logstore: k8s-stdout
            Endpoint: ap-southeast-1.log.aliyuncs.com
            Region: ap-southeast-1
            TelemetryType: logs

CRD - AliyunLogConfig

  1. Faça login no console do ACK.

  2. Na página Clusters, clique no cluster de destino. No painel de navegação à esquerda, escolha Workloads > Custom Resources.

  3. Na página Custom Resources, clique na aba CRDs e, em seguida, clique em Create from YAML.

  4. Modifique o YAML abaixo e clique em Create. O exemplo a seguir cria uma configuração chamada simple-stdout-example que coleta stdout e stderr de todos os contêineres cujos nomes começam com app usando modo multilinha, e envia os dados para o Logstore k8s-stdout em k8s-log-<YOUR_CLUSTER_ID>. Para a lista completa de parâmetros de logtailConfig, consulte AliyunLogConfigDetail e Parâmetros de CR.

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      # The resource name must be unique in the cluster.
      name: simple-stdout-example
    spec:
      # Optional. Defaults to k8s-log-<your_cluster_id>.
      # project: k8s-log-test
      logstore: k8s-stdout
      logtailConfig:
        # Set to "plugin" to collect stdout.
        inputType: plugin
        configName: simple-stdout-example
        inputDetail:
          plugin:
            inputs:
              - type: service_docker_stdout
                detail:
                  Stdout: true
                  Stderr: true
                  # Filter by namespace (supports regular expressions)
                  K8sNamespaceRegex: "^(default)$"
                  # Filter by container name (supports regular expressions)
                  K8sContainerRegex: "^(app.*)$"
                  # Regular expression for the first line of a multi-line log entry.
                  BeginLineRegex: \d+-\d+-\d+.*

Console do Simple Log Service

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

  2. Na seção Projects, clique no seu projeto (por exemplo, k8s-log-<YOUR_CLUSTER_ID>). Clique no Logstore de destino, depois clique em Logtail Configurations > Add Logtail Configuration. Clique em Integrate Now sob K8s - Stdout and Stderr - Old Version.

    K8s stdout integration

  3. Selecione Use Existing Machine Groups.

    Use existing machine groups

  4. Na página Machine Group Configurations, selecione k8s-group-${your_k8s_cluster_id} sob ACK Daemonset no cenário Kubernetes Clusters, adicione-o ao grupo de máquinas aplicado e clique em Next.

    Select machine group

  5. Na etapa Logtail Configuration, configure os parâmetros necessários e clique em Next. A configuração leva cerca de um minuto para entrar em vigor. Em Global Configuration, insira o nome da configuração. Para a lista completa de parâmetros, consulte Global Configurations.

    Global configuration

  6. Crie índices e visualize dados. A indexação de texto completo é ativada por padrão. Clique em Automatic Index Generation para criar índices de campo para consultas direcionadas com menor custo. Para detalhes, consulte Criar índices.

    Index configuration

Variáveis de ambiente

Este método suporta apenas logs de linha única. Para logs multilinha, use um dos métodos de CRD acima.

Configurar via console do ACK

  1. Faça login no console do ACK e clique em Clusters no painel de navegação à esquerda.

  2. Na página Clusters, clique no cluster de destino. No painel de navegação à esquerda, escolha Workloads > Deployments.

  3. Na página Deployments, selecione um namespace e clique em Create from Image.

  4. Na página Basic Information, defina o nome da aplicação e clique em Next. Para configurações não relacionadas ao SLS, consulte Criar uma carga de trabalho sem estado (Deployment).

  5. Na seção Log:

    • Clique em Collection Configuration. Para Log Path in Container, defina o valor como stdout para coletar saída padrão e saída de erro. > Note: O período padrão de retenção de logs para novos Logstores é de 90 dias. Collection configuration for stdout

    • (Opcional) Clique em Custom Tag para adicionar tags de chave-valor aos logs coletados. Custom tag

  6. Após configurar todas as definições, clique em Next para continuar. Consulte Criar uma carga de trabalho sem estado (Deployment) para as etapas subsequentes.

Configurar via YAML

  1. Faça login no console do ACK. No painel de navegação à esquerda, clique em Clusters.

  2. Na página Clusters, clique no cluster de destino. No painel de navegação à esquerda, escolha Workloads > Deployments.

  3. Na página Deployments, selecione um namespace e clique em Create from YAML.

  4. Configure o YAML. Defina aliyun_logs_{key} como stdout para coletar saída padrão.

    • Defina o valor como stdout para coletar saída padrão. Outros valores especificam caminhos de arquivos de log dentro do contêiner.

    • Tags personalizadas seguem o mesmo formato aliyun_logs_{key}_tags usado para logs de texto.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: deployment-stdout
      name: deployment-stdout
      namespace: default
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: deployment-stdout
      template:
        metadata:
          labels:
            app: deployment-stdout
        spec:
          containers:
            - args:
                - >-
                  while true; do date '+%Y-%m-%d %H:%M:%S'; echo 1; echo 2; echo 3;
                  sleep 10; done
              command:
                - /bin/sh
                - '-c'
                - '--'
              env:
                # Collect stdout to the log-stdout Logstore
                - name: aliyun_logs_log-stdout
                  value: stdout
              image: 'mirrors-ssl.aliyuncs.com/busybox:latest'
              name: timestamp-test
  5. Clique em Create para aplicar a configuração.

Para parâmetros avançados de variáveis de ambiente, consulte a tabela Parâmetros avançados de variáveis de ambiente na seção de logs de texto acima. Os parâmetros são os mesmos para coleta de stdout.

Etapa 3: Consultar e analisar logs

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

  2. Na seção Projects, clique no projeto para abrir sua página de detalhes.

    Projects section

  3. No painel de navegação à esquerda, clique no ícone Logstore icon do Logstore de destino e selecione Search & Analysis para visualizar os logs coletados do seu cluster Kubernetes.

    Search and analysis

Campos de log padrão

Cada registro de log coletado inclui campos padrão. Utilize esses campos no editor de consultas do SLS para filtrar logs por pod, contêiner, namespace ou caminho de arquivo.

Campos de log de texto

Campo

Descrição

Usos comuns em consultas

__tag__:__hostname__

Nome do host do contêiner

Filtrar logs de um nó específico

__tag__:__path__

Caminho do arquivo de log dentro do contêiner

Distinguir logs de diferentes caminhos de arquivo no mesmo pod

__tag__:_container_ip_

Endereço IP do contêiner

Correlacionar logs com tráfego de rede

__tag__:_image_name_

Nome da imagem usada pelo contêiner. Se várias imagens compartilharem o mesmo hash, um nome é selecionado com base no hash e pode diferir do nome no seu YAML.

Filtrar por versão da imagem

__tag__:_pod_name_

Nome do pod

Isolar logs de uma instância específica de pod

__tag__:_namespace_

Namespace do pod

Limitar consultas a um namespace

__tag__:_pod_uid_

Identificador exclusivo (UID) do pod

Rastrear logs entre reinicializações de pod

Campos de stdout

Campo

Descrição

Usos comuns em consultas

_time_

Hora em que o log foi coletado

Filtragem por intervalo de tempo

_source_

Tipo de source do log: stdout ou stderr

Filtrar erros consultando _source_: stderr

_image_name_

Nome da imagem

Filtrar por versão da imagem

_container_name_

Nome do contêiner

Isolar um contêiner específico em um pod com múltiplos contêineres

_pod_name_

Nome do pod

Isolar logs de uma instância específica de pod

_namespace_

Namespace do pod

Limitar consultas a um namespace

_pod_uid_

Identificador exclusivo do pod

Rastrear logs entre reinicializações de pod

Próximos passos