Tous les produits
Search
Centre de documentation

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

Dernière mise à jour :Sep 21, 2026

Simple Log Service (SLS) est un service tout-en-un pour les données de journal qui vous permet de collecter, consommer, acheminer et analyser les journaux sans développement. Un cluster ACK Serverless fournit des fonctionnalités SLS gérées. Utilisez les variables d'environnement des pods dans un cluster ACK Serverless pour collecter la sortie standard 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 et configurez la collecte des journaux. Consultez Qu'est-ce que 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 Namespace et cliquez sur Create from Image. Dans l'onglet Basic Information, définissez le Application Name, le nombre de Replicas: et le Type, puis cliquez sur Next. Dans l'onglet Container, configurez la section Log Service. Seuls les paramètres de collecte des journaux sont abordés ici. Consultez Créer un déploiement sans état pour les autres paramètres. Avant la configuration, assurez-vous que le plug-in de journalisation est installé sur le cluster.

Paramètre

Description

Configuration de la collecte

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

Cliquez sur Collection Configuration et configurez le Logstore et le 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 stdout et stderr du conteneur.

Chaque configuration de collecte crée 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 la Tag Key et la Tag Value.

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

Cliquez sur Next. Consultez Créer un déploiement sans état pour les étapes suivantes. #### 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 Namespace et cliquez sur Create from YAML. Sur la page Create, sélectionnez un exemple de modèle, modifiez le Template dans l'éditeur YAML et cliquez sur Create. Le modèle YAML utilise la syntaxe Kubernetes standard. Pour configurer la collecte des journaux, utilisez env pour ajouter des configurations de collecte et des tags personnalisés, et créez les volumeMounts et volumes correspondants. 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 en utilisant aliyun_logs_{key}, où {key} est 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 la sortie 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 de /var/log/*.log sont envoyés au 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 un volumeMounts correspondant. 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 la sortie 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 en utilisant des CRD.

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

aliyun_logs_{key}_tags

Facultatif. Cette variable sert à 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

S.O.

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

S.O.

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'

S.O.

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'

S.O.

aliyun_logs_{key}_machinegroup

Facultatif. La variable spécifie le groupe de nœuds 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

S.O.

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 sont 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 est longue ou l'analyse des journaux n'est pas requise. 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 la sortie 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, effectuez les étapes suivantes : 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 que vous avez 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 et sélectionnez un Logstore pour consulter les journaux des conteneurs.