Todos os produtos
Search
Central de documentação

Container Compute Service:Collect application logs with AliyunLogConfig

Última atualização: Sep 20, 2026

O Container Compute Service (ACS) é integrado ao Simple Log Service (SLS). Ao criar um cluster, você pode ativar o SLS para coletar rapidamente logs de contêineres no cluster ACS, incluindo stdout e arquivos de texto. Este tópico descreve como coletar logs de aplicação em um cluster ACS usando um recurso personalizado AliyunLogConfig.

Etapa 1: Ative o complemento do Log Service

Ao criar um cluster ACS, você pode selecionar 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. 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 sobrescreve esses parâmetros, sendo necessário reconfigurá-los.

Etapa 2: Crie um recurso personalizado AliyunLogConfig

O recurso personalizado AliyunLogConfig permite coletar logs de stdout e de arquivos de aplicações específicas. Para criar esse recurso, navegue até Custom Resources > CRDs> Create from YAML no painel de navegação à esquerda. A tabela a seguir descreve os principais parâmetros do recurso personalizado AliyunLogConfig.

Parâmetro

Descrição

Exemplo

.metadata.name

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

test-stdout

.spec.project

Opcional. Nome do Project. Recomenda-se usar o 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 cria automaticamente.

test-stdout

.spec.logtailConfig.inputType

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

plugin

.spec.logtailConfig.configName

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

test-stdout

.spec.logtailConfig.inputDetail

Configuração detalhada do Logtail, incluindo as definições para coleta de logs de stdout e de arquivos.

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

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 definições de k8s incluem:

  • K8sNamespaceRegex: filtra pods por namespace. Expressões regulares são suportadas.

  • K8sContainerRegex: filtra contêineres pelo nome. Expressões regulares são suportadas.

  • K8sPodRegex: filtra pods pelo nome do pod. Expressões regulares são suportadas.

  • IncludeK8sLabel: corresponde por rótulos de pod.

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

O Logtail coleta logs de contêineres somente quando todas as condições a seguir 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 Logtail configurations (legacy).

Exemplo 1: Coletar logs de stdout específicos

Para coletar logs de stdout (incluindo stderr) e filtrá-los por pods ou contêineres específicos, adicione regras de correspondência na seção detail da configuração de input. Aplique a configuração a seguir 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 de inputDetail. Aplique a configuração a seguir 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 em Step 4: View logs in the SLS console para verificar se os Logstores correspondentes foram criados. Caso contrário, revise e ajuste suas configurações com base em Logtail configurations (legacy).

Etapa 3: Crie uma aplicação de exemplo

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

  1. O exemplo abaixo mostra uma aplicação implantada como Deployment. Após o contêiner iniciar, ele executa comandos que imprimem 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 de 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 configuração de coleta de logs para visualizar os logs em uma nova aba.

    Neste exemplo, é possível visualizar 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 do 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 Troubleshoot Logtail log collection failures.