Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Collect application logs with pod environment variables

Dernière mise à jour :Aug 11, 2026

Simple Log Service (SLS) est une solution tout-en-un pour la gestion des données de journal qui permet de collecter, consommer, exporter et analyser les journaux sans développement. Un cluster ACK Serverless fournit des fonctionnalités SLS gérées. Utilisez les variables d'environnement de pod dans un cluster ACK Serverless pour collecter les flux stdout des conteneurs et les fichiers journaux vers SLS. Privilégiez la méthode CRD SLS pour la collecte des journaux. Consultez Collecter les journaux d'application à l'aide de CRD. N'utilisez pas simultanément les méthodes CRD et variable d'environnement. Cela pourrait entraîner l'échec de la collecte des journaux. ## Étape 1 : Créer une application et configurer la collecte des journaux Créez une application à partir d'une image ou d'un modèle YAML, puis configurez la collecte des journaux. Pour en savoir plus, consultez Présentation de Simple Log Service. #### Créer à partir d'une image Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Workloads > Deployments. Sur la page Deployments, sélectionnez un namespace dans la liste déroulante Namespace et cliquez sur Create from Image. Dans l'onglet Basic Information, définissez les champs Application Name, nombre de Replicas: et Type, puis cliquez sur Next. Dans l'onglet Container, configurez la section Log Service. Cette rubrique couvre uniquement les paramètres de collecte des journaux. Pour les autres paramètres, consultez Créer un déploiement sans état. Avant la configuration, assurez-vous que le plug-in de journalisation est installé sur le cluster.

Paramètre

Description

Configuration de collecte

Lorsque la configuration de collecte change, supprimez manuellement la configuration précédente pour éviter la duplication des journaux collectés.

Cliquez sur Collection Configuration et configurez les champs Logstore et Log Path in Container (Can be set to stdout).

  • Nom du Logstore. Il ne peut contenir que des lettres minuscules, des chiffres et des traits d'union (-).

    Si le Logstore spécifié n'existe pas, ACK Serverless le crée dans le projet SLS associé au cluster.

  • Chemin du journal dans le conteneur : chemin à collecter. Exemple : /usr/local/tomcat/logs/catalina.*.log pour les journaux texte Tomcat.

    Remarque

    La définition du chemin sur stdout permet de collecter à la fois les flux stdout et stderr du conteneur.

Chaque configuration de collecte génère une configuration Logtail pour le Logstore correspondant. Par défaut, les journaux sont collectés en mode simple (ligne par ligne). Pour les méthodes de collecte avancées, connectez-vous à la console Simple Log Service et modifiez la configuration dans le projet correspondant (préfixé par k8s-log par défaut) et le Logstore.

Tag personnalisé

Cliquez sur Custom Tag et configurez les champs Tag Key et Tag Value.

Paire clé-valeur ajoutée aux entrées de journal collectées. Utilisez les tags personnalisés pour étiqueter les données de journal des conteneurs, comme un numéro de version.

Cliquez sur Next. Pour les étapes suivantes, consultez Créer un déploiement sans état. #### Créer à partir d'un fichier YAML Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Workloads > Deployments. Sur la page Deployments, sélectionnez un namespace dans la liste déroulante Namespace et cliquez sur Create from YAML. Sur la page Create, sélectionnez un modèle exemple, modifiez le champ Template dans l'éditeur YAML, puis cliquez sur Create. Le modèle YAML utilise la syntaxe Kubernetes standard. Pour configurer la collecte des journaux, utilisez env pour ajouter les configurations de collecte et les tags personnalisés, et créez les sections volumeMounts et volumes correspondantes. Exemple de YAML de pod : ``yaml 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' args: - -c - mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /var/log/test.log; sleep 1;done command: - /bin/sh env: ######### Configure environment variables ########### - name: aliyun_logs_log-stdout value: stdout - name: aliyun_logs_log-varlog value: /var/log/*.log - name: aliyun_logs_mytag1_tags value: tag1=v1 ######### Configure Volume Mounts ########### volumeMounts: - name: volumn-sls-mydemo mountPath: /var/log volumes: - name: volumn-sls-mydemo emptyDir: {} `` Ajoutez ces configurations au YAML du pod selon vos besoins : Consultez Étape 2 : Paramètres avancés des variables d'environnement pour les exigences avancées. Créez des configurations de collecte et des tags personnalisés avec des variables d'environnement. Toutes utilisent le préfixe aliyun_logs_. Pour créer une configuration de collecte : ``yaml - name: aliyun_logs_log-stdout value: stdout - name: aliyun_logs_log-varlog value: /var/log/*.log `` Cet exemple crée deux configurations de collecte à l'aide de aliyun_logs_{key}, où {key} vaut log-stdout et log-varlog. aliyun_logs_log-stdout : Cette variable env définit une configuration de collecte log-stdout, crée un Logstore log-stdout et collecte le flux stdout du conteneur dans le Logstore log-stdout. aliyun_logs_log-varlog : Cette variable env crée un Logstore (log-varlog) et une configuration de collecte (log-varlog) pour le chemin /var/log/*.log. Les fichiers issus de /var/log/*.log sont envoyés vers le Logstore log-varlog. Pour créer un tag personnalisé : ``yaml - name: aliyun_logs_mytag1_tags value: tag1=v1 `` Le tag est ajouté aux journaux collectés depuis ce conteneur. La clé du tag (mytag1 dans ce cas) ne peut contenir que des lettres minuscules, des chiffres et des traits d'union (-). Si le chemin de collecte n'est pas stdout, créez une section volumeMounts correspondante. Dans cet exemple, la collecte de /var/log/*.log nécessite un volumeMounts pour /var/log. ## Étape 2 : Paramètres avancés des variables d'environnement La configuration LoongCollector basée sur les variables d'environnement prend en charge divers paramètres. Vous pouvez utiliser des variables d'environnement pour configurer des paramètres avancés afin de répondre à vos exigences de collecte de journaux. Vous ne pouvez pas utiliser de variables d'environnement pour configurer la collecte des journaux dans les scénarios de edge computing.

Variable

Description

Exemple

Remarque d'utilisation

aliyun_logs_{key}

  • Cette variable est obligatoire. {key} ne peut contenir que des lettres minuscules, des chiffres et des traits d'union (-).

  • Si le aliyun_logs_{key}_logstore spécifié n'existe pas, un logstore nommé {key} est créé.

  • Pour collecter le stdout d'un conteneur, définissez la valeur sur stdout. Vous pouvez également définir la valeur sur un chemin à l'intérieur du conteneur pour collecter les fichiers journaux.

  • - name: aliyun_logs_catalina value: stdout
  • - name: aliyun_logs_access-log value: /var/log/nginx/access.log
  • Par défaut, les journaux sont collectés en mode simple. Si vous souhaitez analyser les journaux collectés, nous vous recommandons de configurer les paramètres associés dans la console Simple Log Service ou à l'aide de CRD.

  • {key} spécifie le nom de la configuration Logtail. Le nom de la configuration doit être unique dans le cluster Kubernetes.

aliyun_logs_{key}_tags

Facultatif. Cette variable permet d'ajouter des tags aux données de journal. La valeur doit être au format {tag-key}={tag-value}.

- name: aliyun_logs_catalina_tags value: app=catalina

Sans objet.

aliyun_logs_{key}_project

Facultatif. La variable spécifie un projet Simple Log Service. Le projet par défaut est celui que vous avez spécifié lors de la création du cluster.

- name: aliyun_logs_catalina_project value: my-k8s-project

Le projet doit être déployé dans la même région que Logtail.

aliyun_logs_{key}_logstore

Facultatif. La variable spécifie un logstore Simple Log Service. Valeur par défaut : {key}.

- name: aliyun_logs_catalina_logstore value: my-logstore

Sans objet.

aliyun_logs_{key}_shard

Facultatif. La variable spécifie le nombre de shards du logstore. Valeurs valides : 1 à 10. Valeur par défaut : 2.

Remarque

Si le logstore que vous spécifiez existe déjà, cette variable ne prend pas effet.

- name: aliyun_logs_catalina_shard value: '4'

Sans objet.

aliyun_logs_{key}_ttl

Facultatif. La variable spécifie la période de rétention des journaux. Valeurs valides : 1 à 3650.

  • Pour conserver les données de journal de manière permanente, définissez la valeur sur 3650.

  • La période de rétention par défaut est de 90 jours.

Remarque

Si le logstore que vous spécifiez existe déjà, cette variable ne prend pas effet.

- name: aliyun_logs_catalina_ttl value: '3650'

Sans objet.

aliyun_logs_{key}_machinegroup

Facultatif. La variable spécifie le groupe de machines dans lequel l'application est déployée. Le groupe de machines par défaut est celui dans lequel Logtail est déployé. Pour plus d'informations sur l'utilisation de cette variable, consultez Collecter les journaux de conteneur depuis un cluster ACK.

- name: aliyun_logs_catalina_machinegroup value: my-machine-group

Sans objet.

aliyun_logs_{key}_logstoremode

Facultatif. La variable spécifie le type de logstore. Valeur par défaut : standard. Valeurs valides : standard et query.

Remarque

Si le logstore que vous spécifiez existe déjà, cette variable ne prend pas effet.

  • standard : Logstore standard. Ce type de logstore prend en charge la fonctionnalité d'analyse des journaux et convient aux scénarios tels que la surveillance en temps réel et l'analyse interactive. Vous pouvez utiliser ce type de logstore pour construire un système d'observabilité complet.

  • query : Logstore de requête. Ce type de logstore prend en charge les requêtes haute performance. Les frais de trafic d'indexation d'un logstore Query représentent environ la moitié de ceux d'un logstore standard. Les logstores Query ne prennent pas en charge l'analyse SQL. Les logstores Query conviennent aux scénarios où le volume de données est important, la période de rétention des journaux longue ou l'analyse des journaux inutile. Si les journaux sont stockés pendant des semaines ou des mois, la période de rétention est considérée comme longue.

  • - name: aliyun_logs_catalina_logstoremode value: standard 
  • - name: aliyun_logs_catalina_logstoremode value: query 

Pour utiliser cette variable, assurez-vous que la version de l'image logtail-ds est 1.3.1 ou ultérieure.

Custom Requirement 1: Collect Data From Multiple Applications To The Same Logstore Dans ce scénario, configurez le paramètre aliyun_logs_{key}_logstore. L'exemple suivant montre comment collecter le stdout de deux applications vers le stdout-logstore. Le {key} de l'Application 1 est défini sur app1-stdout, et le {key} de l'Application 2 est défini sur app2-stdout. Configurez les variables d'environnement suivantes pour l'Application 1 : ``yaml # Configure environment variables - name: aliyun_logs_app1-stdout value: stdout - name: aliyun_logs_app1-stdout_logstore value: stdout-logstore `` Configurez les variables d'environnement suivantes pour l'Application 2 : ``yaml # Configure environment variables - name: aliyun_logs_app2-stdout value: stdout - name: aliyun_logs_app2-stdout_logstore value: stdout-logstore `` Custom Requirement 2: Collect Data From Multiple Applications To Different Projects Dans ce scénario, procédez comme suit : Créez un groupe de machines dans chaque projet et définissez l'identifiant personnalisé du groupe de machines au format suivant : k8s-group-{cluster-id}, où {cluster-id} est l'ID du cluster. Vous pouvez spécifier un nom de groupe de machines personnalisé. Spécifiez le projet, le logstore et le groupe de machines dans les variables d'environnement pour chaque application. Le nom du groupe de machines est identique à celui créé à l'étape précédente. Dans l'exemple suivant, le {key} de l'Application 1 est défini sur app1-stdout, et le {key} de l'Application 2 est défini sur app2-stdout. Si les deux applications sont déployées dans le même cluster ACK, vous pouvez utiliser le même groupe de machines pour les applications. Configurez les variables d'environnement suivantes pour l'Application 1 : ``yaml # Configure environment variables - 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 `` Configurez les variables d'environnement suivantes pour l'Application 2 : ``yaml # Configure environment variables - 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 `` ## Étape 3 : Consulter les journaux Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Operations > Log Center. Sur la page Log Center, cliquez sur l'onglet Application Logs, puis sélectionnez un Logstore pour afficher les journaux du conteneur.