Tous les produits
Search
Centre de documentation

Container Compute Service:Collect application logs with AliyunLogConfig

Dernière mise à jour :Aug 12, 2026

Container Compute Service (ACS) s'intègre à Simple Log Service (SLS). Activez SLS lors de la création d'un cluster pour collecter rapidement les journaux des conteneurs d'un cluster ACS, y compris la sortie standard (stdout) et les fichiers texte. Cette rubrique explique comment collecter les journaux d'application dans un cluster ACS à l'aide d'une ressource personnalisée AliyunLogConfig.

Étape 1 : Activer le composant Log Service

Lors de la création d'un cluster ACS, sélectionnez Enable Log Service pour activer automatiquement le composant Log Service. Si vous n'avez pas choisi cette option durant la création du cluster, suivez les étapes ci-dessous pour activer le composant sur un cluster existant.

  1. Connectez-vous à la console ACS. Dans le volet de navigation de gauche, cliquez sur Clusters.

  2. Sur la page Clusters, cliquez sur le nom du cluster cible. Dans le volet de navigation de gauche, cliquez sur Add-ons.

  3. Dans la section Logs and Monitoring, localisez alibaba-log-controller. Cliquez sur . Dans la boîte de dialogue Install, cliquez sur .

Important

Si vous avez personnalisé la configuration et les variables d'environnement d'alibaba-log-controller, la mise à niveau écrase ces paramètres. Vous devrez alors les reconfigurer.

Étape 2 : Créer une ressource personnalisée AliyunLogConfig

Une ressource personnalisée AliyunLogConfig permet de collecter la sortie standard et les journaux de fichiers d'applications spécifiques. Pour créer une ressource personnalisée, choisissez Custom Resources > CRDs> Create from YAML dans le volet de navigation de gauche. Le tableau suivant décrit les principaux paramètres d'une ressource personnalisée AliyunLogConfig.

Paramètre

Description

Exemple

.metadata.name

Nom de la ressource de configuration de collecte des journaux. Ce nom doit être unique au sein du cluster ACS.

test-stdout

.spec.project

Facultatif. Nom du Project. Nous recommandons d'utiliser le format k8s-log-{ACS_cluster_ID}.

k8s-log-c326bc86****

.spec.logstore

Obligatoire. Nom du Logstore. Si le Logstore n'existe pas, Simple Log Service le crée automatiquement.

test-stdout

.spec.logtailConfig.inputType

Type de source de données. file correspond aux journaux de fichiers, tandis que plugin désigne la sortie standard.

plugin

.spec.logtailConfig.configName

Nom de la configuration Logtail. Il doit être identique au nom de ressource spécifié dans metadata.name.

test-stdout

.spec.logtailConfig.inputDetail

Configuration détaillée de Logtail. Elle inclut les paramètres de collecte des journaux stdout et des journaux de fichiers.

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

Cela permet de collecter la sortie standard (Stdout) et l'erreur standard (Stderr) du conteneur.

.spec.logtailConfig.inputDetail.advanced

Fonctionnalités étendues de configuration Logtail. Les paramètres k8s comprennent :

  • K8sNamespaceRegex : filtre les pods par namespace. Expressions régulières prises en charge.

  • K8sContainerRegex : filtre les conteneurs par nom. Expressions régulières prises en charge.

  • K8sPodRegex : filtre les pods par nom. Expressions régulières prises en charge.

  • IncludeK8sLabel : établit une correspondance selon les libellés des pods.

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

Logtail collecte les journaux du conteneur uniquement si toutes les conditions suivantes sont remplies :

  • Le namespace est default.

  • Le nom du Pod commence par backend.

  • Le nom du conteneur est busybox.

  • Le pod possède les libellés app: backend et application: prod.

Pour plus d'informations sur les paramètres de configuration, consultez Configurations Logtail (héritées).

Exemple 1 : Collecter des journaux stdout spécifiques

Pour collecter les journaux stdout (y compris stderr) et les filtrer par pods ou conteneurs spécifiques, ajoutez des règles de correspondance dans la section detail de la configuration input. Appliquez la configuration suivante à votre 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

Exemple 2 : Collecter des journaux de fichiers spécifiques

Pour collecter les journaux de fichiers de pods ou conteneurs spécifiques, ajoutez des règles de correspondance dans un bloc advanced au sein de la configuration inputDetail. Appliquez la configuration suivante à votre 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
Remarque

Après avoir créé les ressources personnalisées AliyunLogConfig test-stdout et test-file, suivez les instructions de l'Étape 4 : Consulter les journaux dans la console SLS pour vérifier si les Logstores correspondants ont bien été créés. Dans le cas contraire, revoyez et modifiez vos configurations en vous référant aux Configurations Logtail (héritées).

Étape 3 : Créer une application exemple

Une fois la ressource personnalisée AliyunLogConfig créée, Simple Log Service (SLS) collecte automatiquement les journaux des nouveaux pods correspondant à la configuration. Déployez l'application exemple suivante pour tester la collecte des journaux.

  1. L'exemple ci-dessous présente une application déployée sous forme de Deployment. Au démarrage du conteneur, des commandes s'exécutent pour écrire en continu des journaux vers la sortie standard et vers un fichier journal.

    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

Étape 4 : Consulter les journaux dans la console SLS

Après application de la configuration, Simple Log Service (SLS) collecte et stocke les journaux de l'application exemple. Consultez les journaux des conteneurs directement depuis la console SLS.

  1. Connectez-vous à la console SLS.

  2. Dans la section Projects, cliquez sur le Project associé à votre cluster ACS (par défaut : k8s-log-{ACS_cluster_ID}) pour ouvrir la liste des Logstores.

  3. Dans la liste, cliquez sur le nom du Logstore spécifié dans votre configuration de collecte des journaux pour afficher les journaux dans un nouvel onglet.

    Dans cet exemple, la page de requête de journaux permet de consulter les journaux stdout (dans le Logstore test-stdout) ainsi que les journaux de fichiers du conteneur (dans le Logstore test-file).

    Sur la page de requête du Logstore test-stdout, vous constatez que SLS a collecté 582 journaux. Les journaux bruts contiennent des champs tels que _container_name_, _image_name_, _namespace_, _pod_name_, _source_ (avec la valeur stdout) et content. Cela confirme la bonne collecte des journaux stdout du conteneur busybox.

    Les résultats de requête pour le Logstore test-file indiquent que les journaux de fichiers du conteneur busybox ont été collectés avec succès. Le chemin source est /log/busybox.log et le contenu du journal est content: hello sls.

Informations complémentaires

Pour obtenir de l'aide sur le dépannage, consultez Dépanner les échecs de collecte des journaux Logtail.