Todos os produtos
Search
Central de documentação

Container Compute Service:Coletar logs de aplicação com AliyunLogConfig

Última atualização: Jun 29, 2026

Container Compute Service (ACS) integra-se ao Simple Log Service (SLS). Ao criar um cluster, ative o SLS para coletar rapidamente os logs de contêineres de um cluster ACS, incluindo stdout e arquivos de texto. Este tópico descreve como coletar logs de aplicação em um cluster ACS utilizando um recurso personalizado AliyunLogConfig.

Etapa 1: Ativar o complemento do Log Service

Ao criar um cluster ACS, selecione Enable Log Service para ativar automaticamente o complemento do Log Service. Caso não tenha selecionado essa opção durante a criação do cluster, siga as etapas abaixo para ativar o complemento em um cluster existente.

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

  2. Na página Clusters, clique no nome do cluster desejado. Em seguida, no painel de navegação à esquerda, clique em Add-ons.

  3. Na seção Logs and Monitoring, localize alibaba-log-controller. Clique em Install. Na caixa de diálogo Install, clique em OK.

Importante

Se você personalizou a configuração e as variáveis de ambiente do alibaba-log-controller, a atualização substituirá esses parâmetros e será necessário reconfigurá-los.

Etapa 2: Criar um recurso personalizado AliyunLogConfig

Utilize um recurso personalizado AliyunLogConfig para coletar logs de stdout e de arquivo de aplicações específicas. Para criar esse recurso, escolha Custom Resources > CRDs> Create from YAML no painel de navegação à esquerda. A tabela a seguir descreve os principais parâmetros de um recurso personalizado AliyunLogConfig.

Parâmetro

Descrição

Exemplo

.metadata.name

Nome do recurso de configuração de coleta de logs. Deve ser único dentro do cluster ACS.

test-stdout

.spec.project

Opcional. Nome do Project. Recomendamos o uso do formato k8s-log-{ACS_cluster_ID}.

k8s-log-c326bc86****

.spec.logstore

Obrigatório. Nome do Logstore. Se o Logstore não existir, o Simple Log Service o criará automaticamente.

test-stdout

.spec.logtailConfig.inputType

Tipo de fonte de dados. file indica logs de arquivo e plugin indica stdout.

plugin

.spec.logtailConfig.configName

Nome da configuração do Logtail. Deve ser idêntico ao nome do recurso especificado em metadata.name.

test-stdout

.spec.logtailConfig.inputDetail

Configuração detalhada do Logtail. Inclui definições para coleta de logs de stdout e de arquivo.

plugin:
  inputs:
    - type: service_docker_stdout
      detail:
        Stdout: true
        Stderr: true

Esta configuração coleta a saída padrão (Stdout) e o erro padrão (Stderr) do contêiner.

.spec.logtailConfig.inputDetail.advanced

Recursos estendidos de configuração do Logtail. As configurações de k8s incluem:

  • K8sNamespaceRegex: Filtra pods por namespace. Suporta expressões regulares.

  • K8sContainerRegex: Filtra contêineres pelo nome. Suporta expressões regulares.

  • K8sPodRegex: Filtra pods pelo nome. Suporta expressões regulares.

  • IncludeK8sLabel: Corresponde aos rótulos dos pods.

k8s:
  K8sNamespaceRegex: ^(default)$
  K8sContainerRegex: ^(busybox)$
  K8sPodRegex: ^backend.+$
  IncludeK8sLabel:
    app: backend
    application: prod

O Logtail coleta os logs do contêiner apenas quando todas as condições abaixo são atendidas:

  • O namespace é default.

  • O nome do Pod começa com backend.

  • O nome do contêiner é busybox.

  • O pod possui os rótulos app: backend e application: prod.

Para mais informações sobre os parâmetros de configuração, consulte Configurações do Logtail (legado).

Exemplo 1: Coletar logs específicos de stdout

Para coletar logs de stdout (incluindo stderr) e filtrá-los por pods ou contêineres específicos, adicione regras de correspondência à seção detail da configuração de input. Aplique a seguinte configuração ao seu cluster ACS.

apiVersion: log.alibabacloud.com/v1alpha1      
kind: AliyunLogConfig                         
metadata:
  name: test-stdout               
spec:
  project: k8s-log-c326bc86****    # Replace this with the actual name of your Project.
  logstore: test-stdout                           
  shardCount: 2                                           
  lifeCycle: 90                    
  logtailConfig:                   
    inputType: plugin                                             
    configName: test-stdout        
    inputDetail:                   
      plugin:
        inputs:
          - type: service_docker_stdout
            detail:
              Stdout: true
              Stderr: true
              K8sNamespaceRegex: ^(default)$    
              K8sContainerRegex: ^(busybox)$    
              K8sPodRegex: ^backend.+$          
              IncludeK8sLabel:                  
                app: backend
                application: prod

Exemplo 2: Coletar logs de arquivo específicos

Para coletar logs de arquivo de pods ou contêineres específicos, adicione regras de correspondência dentro de um bloco advanced na configuração inputDetail. Aplique a seguinte configuração ao seu cluster ACS.

apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
  name: test-file                  
spec:
  project: k8s-log-c326bc86****    # Replace this with the actual name of your Project.
  logstore: test-file                 
  logtailConfig:                   
    inputType: file                
    configName: test-file           
    inputDetail:                  
      logType: common_reg_log      
      logPath: /log/               
      filePattern: "*.log"         
      dockerFile: true             
      advanced:
        k8s:
          K8sNamespaceRegex: ^(default)$    
          K8sContainerRegex: ^(busybox)$    
          K8sPodRegex: ^backend.+$          
          IncludeK8sLabel:                  
            app: backend
            application: prod
Nota

Após criar os recursos personalizados AliyunLogConfig test-stdout e test-file, siga as instruções na Etapa 4: Visualize logs no console do SLS para verificar se os Logstores correspondentes foram criados. Caso contrário, revise e modifique suas configurações com base nas Configurações do Logtail (legado).

Etapa 3: Criar uma aplicação de exemplo

Depois de criar o recurso personalizado AliyunLogConfig, o Simple Log Service (SLS) coleta automaticamente os logs de novos pods que correspondem à configuração. Crie a seguinte aplicação de exemplo para testar a coleta de logs.

  1. O exemplo abaixo mostra uma aplicação implantada como um Deployment. Após o início do contêiner, ele executa comandos para imprimir logs continuamente no stdout e em um arquivo de log.

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: backend-busybox
      labels:
        app: backend
        application: prod
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: backend
          application: prod
      template:
        metadata:
          name: backend-busybox
          labels:
            app: backend
            application: prod
        spec:
          containers:
          - args:
            - -c
            - mkdir -p /log; while true; do echo hello world; date; echo hello sls >> /log/busybox.log; sleep 1; done
            command:
            - /bin/sh
            image: registry-cn-hangzhou.ack.aliyuncs.com/ack-demo/busybox:1.28
            imagePullPolicy: Always
            name: busybox

Etapa 4: Visualize logs no console do SLS

Após aplicar a configuração, o Simple Log Service (SLS) coleta e armazena os logs da aplicação de exemplo. Visualize os logs do contêiner no console do SLS.

  1. Faça login no console do SLS.

  2. Na seção Projects, clique no Project do seu cluster ACS (padrão: k8s-log-{ACS_cluster_ID}) para abrir a lista de Logstores.

  3. Na lista, clique no nome do Logstore especificado na sua configuração de coleta de logs para visualizar os logs em uma nova aba.

    Neste exemplo, visualize os logs de stdout (no Logstore test-stdout) e os logs de arquivo do contêiner (no Logstore test-file) na página de consulta de logs.

    Na página de consulta do Logstore test-stdout, observe que o SLS coletou 582 logs. Os logs brutos contêm campos como _container_name_, _image_name_, _namespace_, _pod_name_, _source_ (com o valor stdout) e content. Isso confirma que os logs de stdout do contêiner busybox foram coletados com sucesso.

    Os resultados da consulta para o Logstore test-file mostram que os logs de arquivo do contêiner busybox foram coletados com sucesso. O caminho de origem é /log/busybox.log e o conteúdo do log é content: hello sls.

Mais informações

Para orientações sobre solução de problemas, consulte Solucionar falhas na coleta de logs do Logtail.