Tous les produits
Search
Centre de documentation

Container Service for Kubernetes:Collect container logs from ACK clusters (DaemonSet)

Dernière mise à jour :Aug 11, 2026

ACK s'intègre étroitement à Simple Log Service en proposant un composant de collecte de journaux qui simplifie la collecte et la gestion des journaux de conteneurs. Cette rubrique explique comment installer ce composant et configurer la collecte pour automatiser l'ingestion, la requête et l'analyse de vos journaux. Ces fonctionnalités améliorent l'efficacité opérationnelle et réduisent les coûts de gestion.

Cas d'utilisation

Le composant de collecte de journaux propose deux méthodes de collecte :

  • DaemonSet : cette méthode convient aux clusters dont les charges de travail sont mono-objectif et dont les journaux sont clairement catégorisés. Pour plus d'informations, consultez cette rubrique.

  • Sidecar : cette méthode est adaptée aux clusters hétérogènes et à grande échelle. Pour plus d'informations, consultez Collecter les journaux texte d'un cluster Kubernetes à l'aide d'un sidecar.

Pour comparer ces deux méthodes de collecte, consultez Méthodes de collecte. Pour connaître les détails de la facturation de Simple Log Service, consultez Présentation de la facturation.

Sommaire

Étapes

Détails

Étape 1 : Installer un composant de collecte de journaux

Installez l'un des composants de collecte de journaux suivants.

  • Installer LoongCollector (recommandé)

    LoongCollector est l'agent de collecte nouvelle génération de SLS et constitue une évolution de Logtail.
  • Installer Logtail

    Logtail est un agent conçu pour collecter les journaux Kubernetes. Il prend en charge divers types de journaux issus de conteneurs standard et de clusters Kubernetes.

Étape 2 : Créer une configuration de collecte

Collectez des journaux texte ou la sortie standard selon vos besoins.

  • Collecter les journaux texte

    Les journaux texte correspondent aux fichiers générés par les programmes exécutés dans un conteneur et enregistrés dans un répertoire spécifique. Cette méthode est idéale pour l'analyse à long terme ou le dépannage.
  • Collecter la sortie standard

    La sortie standard (stdout) fournit en temps réel les journaux d'une application s'exécutant dans un conteneur. Cette approche facilite le débogage des programmes et l'identification rapide des problèmes.

Étape 3 : Requêter et analyser les journaux

Requétez et analysez les journaux depuis la console.

Étape 1 : Installer un composant de collecte de journaux

LoongCollector (recommandé)

LoongCollector (anciennement Logtail) : agent de collecte de journaux nouvelle génération de Simple Log Service. Déployez-le sur des serveurs, des nœuds Kubernetes ou des hôtes Docker pour collecter les journaux depuis des fichiers sans modifier le code applicatif. Il assure la rétrocompatibilité avec Logtail tout en offrant des performances améliorées.

Cluster ACK existant

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

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

  3. Sous l'onglet Logs and Monitoring, repérez loongcollector puis cliquez sur Install.

  4. Une fois l'installation terminée, Simple Log Service (SLS) crée automatiquement les ressources suivantes dans la région du cluster ACK. Vous pouvez les consulter depuis la console Simple Log Service (SLS).

    Type de ressource

    Nom de la ressource

    Objectif

    Projet

    k8s-log-${cluster_id}

    Isoler les journaux provenant de différents services.

    Groupe de machines

    k8s-group-${cluster_id}

    Groupe de machines pour loongcollector-ds, utilisé pour la collecte des journaux.

    k8s-group-${cluster_id}-cluster

    Groupe de machines pour loongcollector-cluster, utilisé pour la collecte des métriques.

    k8s-group-${cluster_id}-singleton

    Groupe de machines dédié à des configurations de collecte mono-instance spécifiques.

    Important

    Le composant LoongCollector ne crée pas de logstore nommé config-operation-log. Si ce logstore existe déjà, LoongCollector n'y écrira aucun journal.

Logtail

Collecte de données basée sur Logtail : Logtail est un agent de collecte de journaux fourni par Simple Log Service. Utilisez Logtail pour ingérer des journaux depuis plusieurs sources de données, telles que des instances Elastic Compute Service (ECS), des serveurs hébergés dans des centres de données ou des serveurs proposés par des fournisseurs de cloud tiers. Logtail assure une collecte non intrusive basée sur des fichiers de journaux : aucune modification du code applicatif n'est requise et la collecte n'affecte pas le fonctionnement de vos applications.

Installer les composants Logtail dans un cluster ACK existant

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

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

  3. Sous l'onglet Logs and Monitoring de la page Add-ons, localisez le composant logtail-ds puis cliquez sur Install.

Installer les composants Logtail lors de la création d'un cluster ACK

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

  2. Sur la page Clusters, cliquez sur Create Kubernetes Cluster. À l'étape Component Configurations de l'assistant, sélectionnez Enable Log Service.

    Cette rubrique se limite aux paramètres liés à Simple Log Service. Pour obtenir des informations sur les autres paramètres, consultez Créer un cluster ACK managé.

    Lorsque vous sélectionnez Enable Log Service, le système vous invite à créer un projet Simple Log Service. Vous pouvez créer ce projet selon l'une des méthodes suivantes :

    • Select Project

      Sélectionnez un projet existant pour gérer les journaux de conteneurs collectés.

      Install Logtail components

    • Create Project

      Simple Log Service crée automatiquement un projet afin de gérer les journaux de conteneurs collectés. ClusterID représente l'identifiant unique du cluster Kubernetes créé.

      Install Logtail components

Important

À l'étape Component Configurations de l'assistant, le paramètre Control Plane Component Logs est défini sur Enable par défaut. Lorsque cette option est activée, le système configure automatiquement les paramètres de collecte, ingère les journaux des composants du plan de contrôle du cluster et applique la facturation pay-as-you-go pour ces journaux. Activez ou désactivez cette option en fonction de vos besoins métier. Pour plus d'informations, consultez Collecter les journaux des composants du plan de contrôle dans des clusters ACK managés.image

Une fois les composants Logtail installés, Simple Log Service génère automatiquement un projet nommé k8s-log-<YOUR_CLUSTER_ID> ainsi que les ressources associées au sein de ce projet. Connectez-vous à la console Simple Log Service pour visualiser ces ressources.

Type de ressource

Nom de la ressource

Description

Exemple

Groupe de machines

k8s-group-<YOUR_CLUSTER_ID>

Groupe de machines pour logtail-daemonset, utilisé dans les scénarios de collecte de journaux.

k8s-group-my-cluster-123

k8s-group-<YOUR_CLUSTER_ID>-statefulset

Groupe de machines pour logtail-statefulset, utilisé dans les scénarios de collecte de métriques.

k8s-group-my-cluster-123-statefulset

k8s-group-<YOUR_CLUSTER_ID>-singleton

Groupe de machines mono-instance, utilisé pour créer une configuration Logtail dédiée à une instance unique.

k8s-group-my-cluster-123-singleton

Logstore

config-operation-log

Ce logstore stocke les journaux du composant alibaba-log-controller. Nous vous recommandons de ne pas créer de configuration Logtail pour ce logstore. Vous pouvez le supprimer ; une fois supprimé, le système cesse de collecter les journaux opérationnels du composant alibaba-log-controller. La facturation de ce logstore suit les mêmes règles que celle des logstores standards. Pour plus d'informations, consultez Éléments facturables pour le modèle de facturation basé sur les données ingérées.

Aucun

Étape 2 : Créer la configuration de collecte

Collecter des journaux textuels

Vous pouvez créer une configuration LoongCollector à l'aide des quatre méthodes suivantes. Nous vous recommandons d'utiliser une seule méthode pour gérer vos configurations.

Méthode de configuration

Description de la configuration

Scénario

CRD - AliyunPipelineConfig (recommandé)

Utilisez la définition de ressource personnalisée (CRD) AliyunPipelineConfig, qui est une CRD Kubernetes, pour gérer une configuration LoongCollector.

Cette méthode convient aux scénarios nécessitant une collecte et un traitement complexes, ainsi qu'une cohérence des versions entre la configuration LoongCollector et le conteneur LoongCollector dans un cluster ACK.

CRD - AliyunLogConfig

La CRD AliyunLogConfig, une version antérieure, permet de gérer une configuration LoongCollector.

Privilégiez cette approche pour les cas connus où la gestion des configurations LoongCollector repose encore sur l'ancienne CRD.

Remplacez progressivement la CRD AliyunLogConfig par la CRD AliyunPipelineConfig afin de bénéficier d'une meilleure extensibilité et stabilité. Pour plus d'informations sur les différences entre les méthodes CRD - AliyunPipelineConfig et CRD - AliyunLogConfig, consultez CRDs.

Console Simple Log Service

Gérez une configuration LoongCollector via l'interface graphique grâce au déploiement et à la configuration rapides.

Idéale lorsque des paramètres simples suffisent pour gérer une configuration LoongCollector. Notez que certaines fonctionnalités avancées et personnalisations ne sont pas disponibles avec cette méthode.

Variable d'environnement

Les variables d'environnement permettent de configurer efficacement les paramètres de gestion d'une configuration LoongCollector.

Les variables d'environnement se limitent aux réglages simples. Elles ne prennent pas en charge les logiques de traitement complexes ni les journaux textuels multilignes. Utilisez-les pour créer une configuration LoongCollector répondant aux besoins suivants :

  • Collecter les données de plusieurs applications vers le même logstore.

  • Collecter les données de plusieurs applications vers différents projets.

Remarque

Lorsque vous utilisez la méthode (Recommandé) CRD-AliyunPipelineConfig, la version du composant logtail-ds doit être 1.8.10 ou ultérieure. Pour les détails de mise à niveau, consultez Mettre à niveau Logtail vers la dernière version. Cette exigence de version ne s'applique pas au composant LoongCollector.

CRD - AliyunPipelineConfig (recommandé)

Pour créer une configuration LoongCollector, il vous suffit de créer une ressource personnalisée (CR) à partir du CRD AliyunPipelineConfig. Une fois la CR créée, la configuration LoongCollector prend effet.

Important

Si vous créez une configuration LoongCollector via une CR et que vous souhaitez la modifier, vous devez uniquement modifier la CR. Toute modification apportée à la configuration LoongCollector dans la console Simple Log Service ne sera pas synchronisée avec la CR.

  1. Connectez-vous à la console ACK.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Workloads > Custom Resources.

  3. Sur la page Custom Resources, cliquez sur l'onglet CRDs, puis sur Create from YAML.

  4. Modifiez les paramètres de l'exemple YAML ci-dessous selon vos besoins, copiez-le et collez-le dans le modèle, puis cliquez sur Create.

    Le fichier YAML permet de collecter les journaux du fichier test.LOG situé dans le répertoire /data/logs/app_1 des pods portant le libellé app: ^(.*test.*)$ vers le logstore k8s-file créé automatiquement dans le projet k8s-log-<YOUR_CLUSTER_ID>. Modifiez les paramètres suivants dans le fichier YAML selon vos besoins :

    • project : Par exemple, k8s-log-<YOUR_CLUSTER_ID>.

      Connectez-vous à la console Simple Log Service. Vérifiez le nom du projet généré après l'installation de LoongCollector.

    • IncludeK8sLabel : Le libellé utilisé pour filtrer les pods. Par exemple, app: ^(.*test.*)$. Dans cet exemple, les pods dont la clé de libellé est « app » et dont la valeur contient « test » sont collectés.

      Remarque

      Si vous souhaitez collecter tous les pods dont le nom contient « test » dans votre cluster, vous pouvez remplacer le paramètre IncludeK8sLabel par le paramètre K8sContainerRegex et utiliser des caractères génériques pour spécifier une valeur pour ce dernier. Exemple : K8sContainerRegex: ^(. test.) $.

    • FilePaths : Par exemple, /data/logs/app_1/**/test.LOG. Pour plus d'informations, consultez la rubrique Mappage des chemins de fichiers pour les conteneurs.

    • Endpoint et Region (ID de région) : Exemple pour le paramètre Endpoint : cn-hangzhou.log.aliyuncs.com. Exemple pour le paramètre Region : cn-hangzhou.

    La valeur du paramètre config inclut les types de plug-ins d'entrée, de sortie et de traitement, ainsi que les méthodes de filtrage des conteneurs. Pour plus d'informations, consultez la rubrique PipelineConfig. Pour plus d'informations sur l'ensemble des paramètres du fichier YAML, consultez la rubrique Paramètres CR.

    apiVersion: telemetry.alibabacloud.com/v1alpha1
    kind: ClusterAliyunPipelineConfig
    metadata:
      # Specify the name of the resource. The name must be unique in the current Kubernetes cluster. The name is the same as the name of the created LoongCollector configuration. If the resource name already exists, the name does not take effect. 
      name: example-k8s-file
    spec:
      # Specify the name of the project.
      project:
        name: k8s-log-<YOUR_CLUSTER_ID>
      logstores:
        # Create a Logstore named k8s-file.
        - name: k8s-file
      # Create a LoongCollector configuration.
      config:
        # Enter a sample log. You can leave this parameter empty.
        sample: |
          2024-06-19 16:35:00 INFO test log
          line-1
          line-2
          end
        # Specify the input plug-in.
        inputs:
          # Use the input_file plug-in to collect multi-line text logs from containers.
          - Type: input_file
            # Specify the file path in the containers.
            FilePaths:
              - /data/logs/app_1/**/test.LOG
            # Enable the container discovery feature. 
            EnableContainerDiscovery: true
            # Add conditions to filter containers. Multiple conditions are evaluated by using a logical AND. 
            CollectingContainersMeta: true
            ContainerFilters:
              # Specify the namespace of the pods to which the required containers belong. Regular expression matching is supported. 
              K8sNamespaceRegex: default
              # Specify the name of the required containers. Regular expression matching is supported. 
              IncludeK8sLabel:
                app: ^(.*app.*)$
            # Enable multi-line log collection. If you want to collect single-line logs, delete this parameter.
            Multiline:
              # Specify the custom mode to match the beginning of the first line of a log based on a regular expression.
              Mode: custom
              # Specify the regular expression that is used to match the beginning of the first line of a log.
              StartPattern: '\d+-\d+-\d+\s\d+:\d+:\d+'
        # Specify the processing plug-in.
        processors:
          # Use the processor_parse_regex_native plug-in to parse logs based on the specified regular expression.
          - Type: processor_parse_regex_native
            # Specify the name of the original field.
            SourceKey: content
            # Specify the regular expression that is used for parsing. Use capturing groups to extract fields.
            Regex: (\d+-\d+-\d+\s\S+)(.*)
            # Specify the fields that you want to extract.
            Keys: ["time", "detail"]
        # Specify the output plug-in.
        flushers:
          # Use the flusher_sls plug-in to deliver logs to a specific Logstore. 
          - Type: flusher_sls
            # Make sure that the logstore exists.
            Logstore: k8s-file
            # Make sure that the endpoint is valid.
            Endpoint: cn-beijing.log.aliyuncs.com
            Region: cn-beijing
            TelemetryType: logs

CRD - AliyunLogConfig

Pour créer une configuration LoongCollector, il vous suffit de créer une CR à partir du CRD AliyunLogConfig. Une fois la CR créée, la configuration LoongCollector prend effet.

Important

Si vous créez une configuration LoongCollector via une CR et que vous souhaitez la modifier, vous devez uniquement modifier la CR. Toute modification apportée à la configuration LoongCollector dans la console Simple Log Service ne sera pas synchronisée avec la CR.

  1. Connectez-vous à la console ACK.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Workloads > Custom Resources.

  3. Sur la page Custom Resources, cliquez sur l'onglet CRDs, puis sur Create from YAML.

  4. Modifiez les paramètres de l'exemple YAML ci-dessous selon vos besoins, copiez-le et collez-le dans le modèle, puis cliquez sur Create.

    Le fichier YAML permet de créer une configuration LoongCollector nommée example-k8s-file qui collecte le contenu du fichier test.LOG situé dans le chemin /data/logs/app_1 pour tous les conteneurs dont le nom commence par app dans votre cluster, en mode simple. Les données collectées sont envoyées vers le logstore k8s-file créé automatiquement dans le projet k8s-log-<YOUR_CLUSTER_ID>.

    Modifiez le chemin du fichier journal dans l'exemple selon vos besoins. Pour plus d'informations, consultez la rubrique Mappage des chemins de fichiers pour les conteneurs.

    • logPath : Le chemin du fichier journal. Par exemple, /data/logs/app_1.

    • filePattern : Le nom du fichier à partir duquel vous souhaitez collecter les journaux. Par exemple, test.LOG.

    Le paramètre Config spécifie les détails de LoongCollector, tels que les types de plug-ins d'entrée, de sortie et de traitement, ainsi que les méthodes de filtrage des conteneurs. Pour plus d'informations, consultez la rubrique AliyunLogConfigDetail. Pour plus d'informations sur l'ensemble des paramètres du fichier YAML, consultez la rubrique Paramètres CR.

    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      # Specify the name of the resource. The name must be unique in the current Kubernetes cluster. 
      name: example-k8s-file
      # Specify the namespace to which the resource belongs. 
      namespace: kube-system
    spec:
      # Specify the name of the project. If you leave this parameter empty, the project named k8s-log-<your_cluster_id> is used.
      # project: k8s-log-test
      # Specify the name of the logstore. If the specified logstore does not exist, Simple Log Service automatically creates a logstore. 
      logstore: k8s-file
      # Create a LoongCollector configuration. 
      logtailConfig:
        # Specify the type of the data source. If you want to collect text logs, set the value to file. 
        inputType: file
        # Specify the name of the LoongCollector configuration. The name must be the same as the resource name that is specified by metadata.name. 
        configName: example-k8s-file
        inputDetail:
          # Specify the settings that allow LoongCollector to collect text logs in simple mode. 
          logType: common_reg_log
          # Specify the log file path. 
          logPath: /data/logs/app_1
          # Specify the log file name. You can use wildcard characters such as asterisks (*) and question marks (?) when you specify the log file name. Example: log_*.log. 
          filePattern: test.LOG
          # If you want to collect text logs from containers, set the value to true. 
          dockerFile: true
          # Enable multi-line log collection. If you want to collect single-line logs, delete this parameter.
          # Specify the regular expression to match the beginning of the first line of a log. 
          logBeginRegex: \d+-\d+-\d+.*
          # Specify the conditions to filter containers. 
          advanced:
            k8s:
              K8sPodRegex: '^(app.*)$'

Console Simple Log Service

Remarque

Cette méthode convient aux scénarios nécessitant des configurations simples pour gérer une configuration LoongCollector sans avoir à se connecter à un cluster Kubernetes. Vous ne pouvez pas créer de configurations LoongCollector en lot avec cette méthode.

  1. Connectez-vous à la console Simple Log Service.

  2. Dans la section Projects, cliquez sur le projet que vous utilisez pour installer les composants LoongCollector. Par exemple : k8s-log-<YOUR_CLUSTER_ID>. Sur la page qui s'affiche, cliquez sur l'icône > du logstore souhaité, puis sur Logtail Configurations. Sur la page Logtail Configuration, cliquez sur Add Logtail Configuration. Dans la boîte de dialogue Quick Data Import, recherchez la carte Kubernetes - File et cliquez sur Integrate Now.image

  3. À l'étape Machine Group Configurations de l'assistant Import Data, définissez le paramètre Scenario sur Kubernetes Clusters et le paramètre Deployment Method sur ACK Daemonset, sélectionnez le groupe de machines k8s-group-${your_k8s_cluster_id} et cliquez sur l'icône > pour déplacer le groupe de machines de la section Source Machine Group vers la section Applied Server Groups, puis cliquez sur Next.image

  4. Créez une configuration LoongCollector. À l'étape Logtail Configuration de l'assistant Import Data, configurez les paramètres requis et cliquez sur Next. La création d'une configuration LoongCollector prend environ 1 minute. La liste suivante décrit les principaux paramètres. Pour plus d'informations, consultez la rubrique Créer une configuration Logtail.

    • Global Configurations

      Dans la section Global Configurations, configurez le paramètre Configuration Name.

      image

    • Input Configurations

      • Logtail Deployment Mode : Le mode de déploiement de LoongCollector. Sélectionnez Daemonset.

      • File Path Type : Le type de chemin de fichier que vous souhaitez utiliser pour collecter les journaux. Valeurs possibles : Path in Container et Host Path. Si un volume hostPath est monté sur un conteneur et que vous souhaitez collecter les journaux des fichiers en fonction du chemin de fichier mappé sur l'hôte du conteneur, définissez ce paramètre sur Host Path. Dans les autres scénarios, définissez ce paramètre sur Path in Container.

      • File Path : Le répertoire utilisé pour stocker les journaux que vous souhaitez collecter. Le chemin du fichier doit commencer par une barre oblique (/). Dans cet exemple, définissez le paramètre File Path sur /data/wwwlogs/main/**/*.Log, ce qui indique que les journaux sont collectés à partir des fichiers suffixés par .Log dans le répertoire /data/wwwlogs/main. Vous pouvez configurer le paramètre Maximum Directory Monitoring Depth pour spécifier le nombre maximal de niveaux de sous-répertoires que vous souhaitez surveiller. Les sous-répertoires se trouvent dans le répertoire de fichiers journaux que vous spécifiez. Ce paramètre spécifie les niveaux de sous-répertoires que les caractères génériques ** peuvent correspondre dans la valeur du paramètre File Path. La valeur 0 indique que seul le répertoire de fichiers journaux spécifié est surveillé.image

  5. Create indexes et preview data. Par défaut, l'indexation en texte intégral est activée pour Simple Log Service. Dans ce cas, des index en texte intégral sont créés. Vous pouvez interroger tous les champs des journaux en fonction des index. Vous pouvez également créer manuellement des index pour les champs en fonction des journaux collectés. Vous pouvez également cliquer sur Automatic Index Generation. Simple Log Service génère alors des index pour les champs. Vous pouvez interroger les données de manière précise en fonction des index de champ. Cela réduit les coûts d'indexation et améliore l'efficacité des requêtes. Pour plus d'informations, consultez la rubrique Créer des index — Instructions de modification.image

Variable d'environnement

Remarque

Cette méthode ne prend en charge que les journaux textuels sur une seule ligne. Si vous souhaitez collecter des journaux textuels multilignes ou des journaux d'autres formats, utilisez les méthodes précédentes.

  1. Créez une application et configurez Simple Log Service.

    Configurer Simple Log Service dans la console ACK

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

    2. Sur la page Clusters, cliquez sur le nom du cluster souhaité. Dans le volet de navigation de gauche, choisissez Workloads > Deployments.

    3. Sur la page Deployments, cliquez sur Create From Image.

    4. Sur l'onglet Application Basic Information, définissez le paramètre Application Name, cliquez sur Next, puis sur la page Container Configuration, définissez le nom de l'image.

      La section suivante décrit uniquement les paramètres liés à Simple Log Service. Pour plus d'informations sur les autres paramètres, consultez la rubrique Créer une charge de travail sans état (Deployment).

    5. Dans la section Log, configurez les informations relatives aux journaux.

      1. Créez une configuration Logtail.

        Cliquez sur Collection Configuration pour créer une configuration Logtail. Chaque configuration Logtail est composée des paramètres Logstore et Log Path In Container.

        • Logstore : le nom du logstore utilisé pour stocker les journaux collectés. Si le logstore n'existe pas, ACK crée automatiquement un logstore dans le projet Simple Log Service associé à votre cluster ACK.

          Remarque

          La durée de conservation par défaut des journaux dans un logstore est de 90 jours.

        • Log Path in Container : le chemin à partir duquel vous souhaitez collecter les journaux. Une valeur de /usr/local/tomcat/logs/catalina.*.log indique que Logtail collecte les journaux textuels de l'application Tomcat.image

          Par défaut, chaque logstore correspond à une configuration Logtail que vous pouvez utiliser pour collecter les journaux ligne par ligne en mode simple.

      2. Créez des tags personnalisés.

        Cliquez sur Custom Tag pour créer des tags personnalisés. Chaque tag personnalisé est une paire clé-valeur et est ajouté aux journaux collectés. Vous pouvez utiliser des tags personnalisés pour identifier les journaux de conteneur. Par exemple, spécifiez un numéro de version pour le paramètre Tag Value.image

    Configurer Simple Log Service à l'aide d'un modèle YAML

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

    2. Sur la page Clusters, cliquez sur le nom du cluster que vous souhaitez gérer. Dans le volet de navigation de gauche, choisissez Workloads > Deployments.

    3. Sur la page Deployments, sélectionnez un namespace dans la liste déroulante Namespace en haut de la page. Ensuite, cliquez sur Create From YAML en haut à droite de la page.

    4. Configurez un modèle YAML.

      La syntaxe du modèle YAML est identique à celle de Kubernetes. Toutefois, pour spécifier une configuration de collecte pour un conteneur, vous devez utiliser env pour ajouter les Collection Configurations et les Custom Tags au conteneur. Vous devez également créer les volumeMounts et volumes correspondants en fonction de la configuration de collecte. Le code suivant est un exemple :

      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'
          env:
          # Configure environment variables
          - name: aliyun_logs_log-varlog
            value: /var/log/*.log
          - name: aliyun_logs_mytag1_tags
            value: tag1=v1
          # Configure volume mounting
          volumeMounts:
          - name: volumn-sls-mydemo
            mountPath: /var/log
          # If the pod is repetitively restarted, you can add a sleep command to the startup parameters of the pod.
          command: ["sh", "-c"]  # Run commands in the shell.
          args: ["sleep 3600"]   # Make the pod sleep 3,600 seconds (1 hour).
        volumes:
        - name: volumn-sls-mydemo
          emptyDir: {}
      1. Utilisez des variables d'environnement pour créer les Collection Configurations et les Custom Tags. Toutes les variables d'environnement liées aux configurations utilisent aliyun_logs_ comme préfixe.

        • Créez des configurations de collecte au format suivant :

          - name: aliyun_logs_log-varlog
            value: /var/log/*.log                        

          Dans l'exemple, une configuration de collecte est créée au format aliyun_logs_{key}. La valeur de {key} est log-varlog.

          • aliyun_logs_log-varlog : Cette variable d'environnement crée une configuration pour collecter le contenu des fichiers /var/log/*.log depuis le conteneur et stocker le contenu dans un Logstore nommé log-varlog. Le nom de la configuration de collecte Simple Log Service correspondante est également log-varlog. L'objectif est de collecter le contenu des fichiers /var/log/*.log depuis le conteneur vers le log-varlog Logstore.

        • Créez des Custom Tags au format suivant :

          - name: aliyun_logs_mytag1_tags
            value: tag1=v1                       

          Après l'ajout d'un tag, celui-ci est automatiquement ajouté aux données de journal collectées depuis le conteneur. mytag1 est un nom qui ne contient pas de traits de soulignement (_).

      2. Si votre configuration de collecte spécifie un chemin de collecte autre que stdout, vous devez créer les volumeMounts correspondants dans cette section.

        Dans l'exemple, la configuration de collecte ajoute la collecte de /var/log/*.log. Par conséquent, les volumeMounts correspondants pour /var/log sont ajoutés.

    5. Une fois le modèle YAML terminé, cliquez sur Create. Le cluster Kubernetes exécute la configuration.

  2. Utilisez des variables d'environnement pour configurer les paramètres avancés.

    La configuration de 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.

    Important

    Vous ne pouvez pas utiliser les variables d'environnement pour configurer la collecte de journaux dans les scénarios de edge computing.

    Variable

    Description

    Exemple

    Remarque d'utilisation

    aliyun_logs_{key}

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

    • Si la variable aliyun_logs_{key}_logstore spécifiée n'existe pas, un logstore nommé {key} est automatiquement créé pour stocker les journaux collectés.

    • Pour collecter la sortie standard (stdout) d'un conteneur, définissez la valeur sur stdout. Vous pouvez également définir la valeur sur un chemin d'accès au fichier journal dans les conteneurs.

    • - 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 LoongCollector. 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 journaux. 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. Cette variable spécifie un projet Simple Log Service. Le projet par défaut est celui généré après l'installation de LoongCollector.

    - name: aliyun_logs_catalina_project
    
      value: my-k8s-project

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

    aliyun_logs_{key}_logstore

    Facultatif. Cette variable spécifie un logstore. Valeur par défaut : {key}.

    - name: aliyun_logs_catalina_logstore
    
      value: my-logstore

    S.O.

    aliyun_logs_{key}_shard

    Facultatif. Cette 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. Cette variable spécifie la période de rétention des journaux. Valeurs valides : 1 à 3650.

    • Si vous définissez la valeur sur 3650, les journaux sont stockés de manière permanente.

    • 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. Cette 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 LoongCollector est déployé. Pour plus d'informations sur l'utilisation de cette variable, consultez Collect container logs from ACK clusters.

    - name: aliyun_logs_catalina_machinegroup
    
      value: my-machine-group

    S.O.

    aliyun_logs_{key}_logstoremode

    Facultatif. Cette 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 non requise. Si les journaux sont conservé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 

    S.O.

    • 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 standard (stdout) de deux applications vers stdout-logstore.

      La valeur {key} de l'application 1 est définie sur app1-stdout, et la valeur {key} de l'application 2 est définie sur app2-stdout.

      Configurez les variables d'environnement suivantes pour l'application 1 :

      # 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 :

      # 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 :

      1. 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} correspond à l'ID du cluster. Vous pouvez spécifier un nom de groupe de machines personnalisé.

      2. Spécifiez le projet, le logstore et le groupe de machines dans les variables d'environnement de chaque application. Le nom du groupe de machines est identique à celui que vous avez créé à l'étape précédente.

        Dans l'exemple suivant, la valeur {key} de l'application 1 est définie sur app1-stdout, et la valeur {key} de l'application 2 est définie 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 :

        # 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 :

        # 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

Collect stdout

Il existe quatre méthodes pour créer une configuration de collecte. Nous vous recommandons d'utiliser une seule méthode pour gérer vos configurations de collecte :

Méthode de configuration

Description de la configuration

Scénario

CRD - AliyunPipelineConfig (recommandé)

Utilisez la définition de ressource personnalisée (CRD) AliyunPipelineConfig, qui est une CRD Kubernetes, pour gérer une configuration LoongCollector.

Cette méthode convient aux scénarios nécessitant une collecte et un traitement complexes, ainsi qu'une cohérence des versions entre la configuration LoongCollector et le conteneur LoongCollector dans un cluster ACK.

CRD - AliyunLogConfig

Utilisez la CRD AliyunLogConfig, une ancienne version de CRD, pour gérer une configuration LoongCollector.

Cette approche est adaptée aux scénarios connus où les configurations LoongCollector peuvent être gérées via l'ancienne CRD.

Vous devez remplacer progressivement la CRD AliyunLogConfig par la CRD AliyunPipelineConfig afin de bénéficier d'une meilleure extensibilité et stabilité. Pour plus d'informations sur les différences entre les méthodes CRD - AliyunPipelineConfig et CRD - AliyunLogConfig, consultez CRDs.

Console Simple Log Service

Gérez une configuration LoongCollector via l'interface graphique grâce à un déploiement et une configuration rapides.

Cette méthode est indiquée pour les configurations simples de LoongCollector. Son utilisation empêche toutefois l'accès à certaines fonctionnalités avancées et paramètres personnalisés.

Variable d'environnement

Configurez efficacement les paramètres de gestion d'une configuration LoongCollector à l'aide de variables d'environnement.

Les variables d'environnement ne permettent que des configurations simples. Elles ne prennent pas en charge les logiques de traitement complexes ni les journaux textuels multilignes. Utilisez-les pour créer une configuration LoongCollector répondant aux besoins suivants :

  • Collecter les données de plusieurs applications vers le même logstore.

  • Collecter les données de plusieurs applications vers différents projets.

Remarque

L'utilisation de la méthode (Recommandé) CRD-AliyunPipelineConfig nécessite que le composant logtail-ds soit en version 1.8.10 ou ultérieure. Pour obtenir des détails sur la mise à niveau du composant, consultez Mettre à jour Logtail vers la dernière version. Cette exigence de version ne s'applique pas au composant LoongCollector.

Crd-AliyunPipelineConfig (recommandé)

Pour créer des configurations Logtail, il suffit de créer les ressources personnalisées AliyunPipelineConfig ; elles s'appliquent automatiquement.

Important

Pour les configurations créées via des ressources personnalisées, les modifications doivent être effectuées en mettant à jour la ressource personnalisée correspondante. Les changements apportés dans la console Simple Log Service ne seront pas synchronisés avec la ressource personnalisée.

  1. Connectez-vous à la console ACK.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Workloads > Custom Resources.

  3. Sur la page Custom Resources, cliquez sur l'onglet CRDs, puis cliquez sur Create from YAML.

  4. Modifiez les paramètres de l'exemple YAML ci-dessous selon vos besoins, copiez-le et collez-le dans le modèle, puis cliquez sur Create.

    Remarque

    Utilisez le générateur de configuration Logtail pour créer un script YAML adapté à votre scénario. Cet outil vous aide à finaliser rapidement la configuration et réduit les opérations manuelles.

    Le fichier YAML d'exemple ci-dessous capture la sortie standard des Pods étiquetés avec app: ^(.*test.*)$ dans le namespace par défaut, en mode texte multiligne, et la transfère vers un logstore nommé k8s-stdout, créé automatiquement dans un projet nommé k8s-log-<YOUR_CLUSTER_ID>. Ajustez les paramètres du YAML selon vos besoins :

    • project : Connectez-vous à la console Simple Log Service, et identifiez le nom du projet créé par le Logtail que vous avez installé, généralement au format k8s-log-<YOUR_CLUSTER_ID>.

    • IncludeK8sLabel : Utilisé pour filtrer les libellés du pod cible. Par exemple, app: ^(.*test.*)$ indique que la clé du libellé est app et que la collecte concernera les pods dont les valeurs incluent test.

    • Endpoint et Region : Par exemple, ap-southeast-1.log.aliyuncs.com et ap-southeast-1.

    Pour plus d'informations sur config dans le fichier YAML, notamment les entrées et sorties prises en charge, les types de plug-ins de traitement et les méthodes de filtrage des conteneurs, consultez PipelineConfig. Pour une liste complète des paramètres YAML, voir Paramètres CR.

    apiVersion: telemetry.alibabacloud.com/v1alpha1
    # Create a ClusterAliyunPipelineConfig.
    kind: ClusterAliyunPipelineConfig
    metadata:
      # Specify the name of the resource. The name must be unique in the current Kubernetes cluster. This name is also the name of the Logtail configuration created. 
      name: example-k8s-stdout
    spec:
      # Specify the target project.
      project:
        name: k8s-log-<YOUR_CLUSTER_ID>
      # Create a logstore for storing logs.
      logstores:
        - name: k8s-stdout
      # Define the Logtail configuration.
      config:
        # Sample log (optional)
        sample: |
          2024-06-19 16:35:00 INFO test log
          line-1
          line-2
          end
        # Define input plug-ins.
        inputs:
              # Use the service_docker_stdout plug-in to collect text logs inside the container.
          - Type: service_docker_stdout
            Stdout: true
            Stderr: true
            # Configure container information filter conditions. Multiple options are in an "and" relationship.
            # Specify the namespace to which the pod containing the container to be collected belongs. Supports regular expression matching.
            K8sNamespaceRegex: "^(default)$"
            # Enable container metadata preview.
            CollectContainersFlag: true
            # Collect containers that meet the Pod label conditions. Multiple entries are in an "or" relationship.
            IncludeK8sLabel:
              app: ^(.*test.*)$
            # Configure multi-line chunk configuration. Invalid configuration for single-line log collection.
            # Configure the regular expression for the beginning of the line.
            BeginLineRegex: \d+-\d+-\d+.*
        # Define output plug-ins
        flushers:
          # Use the flusher_sls plug-in to send logs to the specified logstore.
          - Type: flusher_sls
            # Make sure that the logstore exists.
            Logstore: k8s-stdout
            # Make sure that the endpoint is valid.
            Endpoint: ap-southeast-1.log.aliyuncs.com
            Region: ap-southeast-1
            TelemetryType: logs

CRD-AliyunLogConfig

Pour créer des configurations Logtail, il suffit de créer les ressources personnalisées AliyunLogConfig ; elles s'appliquent automatiquement.

Important

Pour les configurations créées via des ressources personnalisées, les modifications doivent être effectuées en mettant à jour la ressource personnalisée correspondante. Les changements apportés dans la console Simple Log Service ne seront pas synchronisés avec la ressource personnalisée.

  1. Connectez-vous à la console ACK.

  2. Sur la page Clusters, cliquez sur le nom de votre cluster. Dans le volet de navigation de gauche, cliquez sur Workloads > Custom Resources.

  3. Sur la page Custom Resources, cliquez sur l'onglet CRDs, puis cliquez sur Create from YAML.

  4. Modifiez les paramètres de l'exemple YAML ci-dessous selon vos besoins, copiez-le et collez-le dans le modèle, puis cliquez sur Create.

    Ce script YAML établit une configuration Logtail nommée simple-stdout-example. Il collecte la sortie standard de tous les conteneurs du cluster dont les noms commencent par app, en mode multiligne. Les données collectées sont ensuite transmises à un logstore nommé k8s-stdout dans un projet nommé k8s-log-<YOUR_CLUSTER_ID>.

    Pour plus d'informations sur l'élément logtailConfig dans le fichier YAML, y compris les entrées et sorties prises en charge, les types de plug-ins de traitement et les méthodes de filtrage des conteneurs, consultez AliyunLogConfigDetail. Pour une liste complète des paramètres YAML, voir Paramètres CR.

    # Standard output configuration
    apiVersion: log.alibabacloud.com/v1alpha1
    kind: AliyunLogConfig
    metadata:
      # Specify the name of the resource. The name must be unique in the current Kubernetes cluster.
      name: simple-stdout-example
    spec:
      # Specify the target project name (optional, default is k8s-log-<your_cluster_id>)
      # project: k8s-log-test
      # Specify the name of the logstore. If the specified logstore does not exist, Simple Log Service automatically creates a Logstore.
      logstore: k8s-stdout
      # Specify the Logtail configuration.
      logtailConfig:
        # Specify the type of the data source. To collect standard output, set the value to plugin.
        inputType: plugin
        # Specify the name of the Logtail collection configuration. The name must be the same as the resource name that is specified in metadata.name.
        configName: simple-stdout-example
        inputDetail:
          plugin:
            inputs:
              - type: service_docker_stdout
                detail:
                  # Specify the collection of stdout and stderr.
                  Stdout: true
                  Stderr: true
                  # Specify the namespace to which the pod containing the container to be collected belongs. Supports regular expression matching.
                  K8sNamespaceRegex: "^(default)$"
                  # Specify the name of the container to be collected. Supports regular expression matching.
                  K8sContainerRegex: "^(app.*)$"
                  # Configure multi-line chunk configuration.
                  # Configure the regular expression for the beginning of the line.
                  BeginLineRegex: \d+-\d+-\d+.*
                  

Console Simple Log Service

  1. Connectez-vous à la console Simple Log Service.

  2. Sélectionnez votre projet dans la liste, par exemple k8s-log-<YOUR_CLUSTER_ID>. Sur la page du projet, cliquez sur Logtail Configurations pour le logstore cible, cliquez sur Add Logtail Configuration, puis cliquez sur Integrate Now sous K8s - Stdout and Stderr - Old Version.image

  3. Comme Logtail est déjà installé pour le cluster ACK, sélectionnez Use Existing Machine Groups.image

  4. Sur la page Machine Group Configurations, sélectionnez le groupe de machines k8s-group-${your_k8s_cluster_id} sous la méthode ACK Daemonset dans le scénario Kubernetes Clusters, ajoutez-le au groupe de machines appliqué, puis cliquez sur Next.image

  5. Créez une configuration Logtail, saisissez les configurations requises comme décrit ci-dessous, puis cliquez sur Next. L'application de la configuration prend environ 1 minute.

    Cette section couvre uniquement les configurations nécessaires. Pour une liste complète, consultez Configurations globales.

    • Global Configuration

      Saisissez le nom de la configuration dans Global Configuration.

      image

  6. Créer des index — Instructions de modification et prévisualiser les données : Par défaut, Simple Log Service active un index plein texte, indexant tous les champs du journal pour les requêtes. Vous pouvez également créer manuellement un index de champ basé sur les journaux collectés, ou cliquer sur Automatic Index Generation. Cela générera un index de champ pour les requêtes term sur des champs spécifiques, réduisant les coûts d'indexation et améliorant l'efficacité des requêtes. image

Variables d'environnement

  1. Configurez Simple Log Service lors de la création d'une application.

    Console

    1. Connectez-vous à la console de gestion Container Service et cliquez sur Clusters dans le volet de navigation de gauche.

    2. Sur la page Clusters, cliquez sur le cluster cible, puis sélectionnez Workloads > Deployments dans le volet de navigation de gauche.

    3. Sur la page Deployments, sélectionnez un namespace et cliquez sur Create from Image.

    4. Sur la page Basic Information, définissez le nom de l'application, puis cliquez sur Next pour accéder à la page Container.

      Cette section présente les configurations liées à Simple Log Service. Pour plus d'informations sur les autres configurations d'application, consultez Créer une charge de travail sans état (Deployment).

    5. Dans la section Log, configurez les informations relatives aux journaux.

      1. Définissez Collection Configuration.

        Cliquez sur Collection Configuration pour créer une nouvelle configuration de collecte. Chaque configuration se compose de deux éléments :

        • Logstore : Spécifiez le logstore où les journaux collectés sont stockés. Si le logstore n'existe pas, ACK le créera automatiquement dans le projet Simple Log Service associé à votre cluster.

          Remarque

          La période de rétention des journaux par défaut pour les nouveaux logstores est de 90 jours.

        • Log Path in Container (Can be set to stdout) : Spécifiez stdout pour collecter la sortie standard et la sortie d'erreur du conteneur.

          Collection Configuration

          Chaque configuration de collecte est automatiquement créée en tant que configuration de logstore, et les journaux sont collectés en mode simple (par ligne) par défaut.

      2. Définissez Custom Tag.

        Cliquez sur Custom Tag pour créer un tag personnalisé. Chaque tag est une paire clé-valeur qui sera ajoutée aux journaux collectés. Utilisez-le pour étiqueter les données de journal du conteneur, comme le numéro de version.

        Custom tag

    6. Après avoir configuré tous les paramètres, cliquez sur Next. Pour les étapes suivantes, consultez Créer une charge de travail sans état (Deployment).

    Modèle YAML

    1. Connectez-vous à la console de gestion Container Service ou à la , et sélectionnez Clusters dans le volet de navigation de gauche.

    2. Sur la page Clusters, cliquez sur le nom du cluster cible, puis sélectionnez Workloads > Deployments dans le volet de navigation de gauche.

    3. Sur la page Deployments, sélectionnez un namespace et cliquez sur Create from YAML.

    4. Configurez le fichier YAML.

      La syntaxe du modèle YAML est conforme à celle de Kubernetes. Pour spécifier la configuration de collecte du conteneur, utilisez env pour ajouter Collection Configuration et Custom Tag au conteneur, et créez les volumeMounts et volumes correspondants en fonction de la configuration de collecte. Voici un exemple simple de pod :

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        annotations:
          deployment.kubernetes.io/revision: '1'
        labels:
          app: deployment-stdout
          cluster_label: CLUSTER-LABEL-A
        name: deployment-stdout
        namespace: default
      spec:
        progressDeadlineSeconds: 600
        replicas: 1
        revisionHistoryLimit: 10
        selector:
          matchLabels:
            app: deployment-stdout
        strategy:
          rollingUpdate:
            maxSurge: 25%
            maxUnavailable: 25%
          type: RollingUpdate
        template:
          metadata:
            labels:
              app: deployment-stdout
              cluster_label: CLUSTER-LABEL-A
          spec:
            containers:
              - args:
                  - >-
                    while true; do date '+%Y-%m-%d %H:%M:%S'; echo 1; echo 2; echo 3;
                    echo 4; echo 5; echo 6; echo 7; echo 8; echo 9; 
                    sleep 10; done
                command:
                  - /bin/sh
                  - '-c'
                  - '--'
                env:
                  - name: cluster_id
                    value: CLUSTER-A
                  - name: aliyun_logs_log-stdout
                    value: stdout
                image: 'mirrors-ssl.aliyuncs.com/busybox:latest'
                imagePullPolicy: IfNotPresent
                name: timestamp-test
                resources: {}
                terminationMessagePath: /dev/termination-log
                terminationMessagePolicy: File
            dnsPolicy: ClusterFirst
            restartPolicy: Always
            schedulerName: default-scheduler
            securityContext: {}
            terminationGracePeriodSeconds: 30
      1. Créez votre Collection Configuration et Custom Tag à l'aide de variables d'environnement. Toutes les variables d'environnement associées commencent par le préfixe aliyun_logs_.

        • Les règles de création des configurations de collecte sont les suivantes :

          - name: aliyun_logs_log-varlog
            value: /var/log/*.log                        

          L'exemple crée une configuration de collecte au format aliyun_logs_{key}, où {key} est log-varlog.

          • aliyun_logs_log-varlog : Cette variable indique la création d'un logstore nommé log-varlog. Le chemin de collecte des journaux est défini sur /var/log/*.log, et le nom de la configuration de collecte Simple Log Service correspondante est également log-varlog. L'objectif est de collecter le contenu des fichiers /var/log/*.log du conteneur dans le log-varlog Logstore.

        • Les règles pour Creating Custom Tags sont les suivantes :

          - name: aliyun_logs_mytag1_tags
            value: tag1=v1                       

          Une fois un tag configuré, le champ correspondant est automatiquement ajouté aux données de journal collectées depuis le conteneur. mytag1 doit être tout nom ne contenant pas '_'.

      2. Si votre configuration de collecte spécifie un chemin autre que stdout, vous devez créer les volumeMounts correspondants dans cette section.

        Dans l'exemple, la configuration de collecte ajoute la collecte pour /var/log/*.log, donc les volumeMounts correspondants pour /var/log sont ajoutés.

    5. Une fois le YAML terminé, cliquez sur Create pour soumettre la configuration au cluster Kubernetes pour exécution.

  2. Configurez les paramètres avancés pour les variables d'environnement.

    Les variables d'environnement prennent en charge divers paramètres de configuration pour la collecte des journaux. Définissez les paramètres avancés selon vos besoins.

    Important

    La configuration de la collecte des journaux via des variables d'environnement ne convient pas aux scénarios de edge computing.

    Champ

    Description

    Exemple

    Remarques

    aliyun_logs_{key}

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

    • Si aliyun_logs_{key}_logstore n'existe pas, un Logstore nommé {key} est créé par défaut.

    • Si la valeur est stdout, cela indique la collecte de la sortie standard du conteneur. Les autres valeurs indiquent le chemin du journal à l'intérieur du conteneur.

    • - name: aliyun_logs_catalina
      
        value: stdout
    • - name: aliyun_logs_access-log
      
            value: /var/log/nginx/access.log

    aliyun_logs_{key}_tags

    Facultatif. La valeur doit être au format {tag-key}={tag-value} et sert à étiqueter les journaux.

    - name: aliyun_logs_catalina_tags
    
      value: app=catalina

    Aucune.

    aliyun_logs_{key}_project

    Facultatif. La valeur spécifie un projet dans Simple Log Service. Si cette variable d'environnement n'existe pas, le projet sélectionné lors de l'installation est utilisé.

    - 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 valeur spécifie un Logstore dans Simple Log Service. Si cette variable d'environnement n'existe pas, le Logstore est identique à {key}.

    - name: aliyun_logs_catalina_logstore
    
      value: my-logstore

    Aucune.

    aliyun_logs_{key}_shard

    Facultatif. La valeur spécifie le nombre de shards lors de la création d'un Logstore. Valeurs valides : 1 à 10. Si cette variable d'environnement n'existe pas, la valeur est 2.

    Remarque

    Si le Logstore existe déjà, ce paramètre ne prend pas effet.

    - name: aliyun_logs_catalina_shard
    
      value: '4'

    Aucune.

    aliyun_logs_{key}_ttl

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

    • Si la valeur est 3650, la période de rétention des journaux est définie sur permanente.

    • Si cette variable d'environnement n'existe pas, la période de rétention des journaux par défaut est de 90 jours.

    Remarque

    Si le Logstore existe déjà, ce paramètre ne prend pas effet.

    - name: aliyun_logs_catalina_ttl
    
      value: '3650'

    Aucune.

    aliyun_logs_{key}_machinegroup

    Facultatif. La valeur spécifie le groupe de machines de l'application. Si cette variable d'environnement n'existe pas, le groupe de machines par défaut où Logtail est installé est utilisé. Pour une utilisation détaillée de ce paramètre, consultez Collecter les journaux de conteneurs depuis les clusters ACK.

    - name: aliyun_logs_catalina_machinegroup
    
      value: my-machine-group

    Aucune.

    aliyun_logs_{key}_logstoremode

    Facultatif. La valeur spécifie le type de Logstore. Valeur par défaut : standard. Valeurs valides :

    Remarque

    Si le Logstore existe déjà, ce paramètre ne prend pas effet.

    • standard : Prend en charge les fonctionnalités d'analyse de données tout-en-un de Simple Log Service. Adapté à la surveillance en temps réel, à l'analyse interactive et à la construction de systèmes d'observabilité complets.

    • query : Prend en charge les requêtes haute performance. Le coût du trafic d'indexation est environ la moitié de celui de standard, mais ne prend pas en charge l'analyse SQL. Adapté aux scénarios avec de grands volumes de données, de longues périodes de stockage (hebdomadaires ou mensuelles) et sans analyse des journaux.

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

    Ce paramètre nécessite que la version de l'image logtail-ds soit >=1.3.1.

    • Customization requirement 1: Collect data from multiple applications into the same logstore

      Pour collecter les données de plusieurs applications dans le même Logstore, définissez le paramètre aliyun_logs_{key}_logstore. Par exemple, la configuration suivante collecte la sortie standard de deux applications dans stdout-logstore.

      Dans l'exemple, le {key} pour l'Application 1 est app1-stdout, tandis que pour l'Application 2, il s'agit de {key} app2-stdout.

      Les variables d'environnement pour l'Application 1 sont les suivantes :

      # Configure environment variables
          - name: aliyun_logs_app1-stdout
            value: stdout
          - name: aliyun_logs_app1-stdout_logstore
            value: stdout-logstore

      Les variables d'environnement pour l'Application 2 sont les suivantes :

      # Configure environment variables
          - name: aliyun_logs_app2-stdout
            value: stdout
          - name: aliyun_logs_app2-stdout_logstore
            value: stdout-logstore
    • Customization requirement 2: Collect data from different applications into different projects

      Pour collecter les données de différentes applications dans plusieurs projets, procédez comme suit :

      1. Créez un groupe de machines dans chaque projet avec un ID personnalisé nommé k8s-group-{cluster-id}, où {cluster-id} est l'ID de votre cluster. Le nom du groupe de machines est personnalisable.

      2. Configurez les informations du projet, du Logstore et du groupe de machines dans les variables d'environnement pour chaque application. Utilisez le même nom de groupe de machines que celui créé à l'étape précédente.

        Dans l'exemple suivant, le {key} pour l'Application 1 est app1-stdout, et le {key} pour l'Application 2 est app2-stdout. Si les deux applications sont déployées dans le même cluster K8s, vous pouvez utiliser le même groupe de machines pour elles.

        Les variables d'environnement pour l'Application 1 sont les suivantes :

        # 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

        Les variables d'environnement pour l'Application 2 sont les suivantes :

        # Application 2 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 : Interroger et analyser les journaux

  1. Connectez-vous à la console Simple Log Service.

  2. Dans la section Projects, cliquez sur le projet souhaité pour accéder à sa page de détails.

    image

  3. Dans le volet de navigation de gauche, cliquez sur l'icône icon du Logstore souhaité. Dans la liste déroulante, sélectionnez Search & Analysis pour afficher les journaux collectés depuis votre cluster Kubernetes.

    image

Champs de journal par défaut

Journaux texte

Champs de journal K8s

Le tableau suivant décrit les champs par défaut inclus dans chaque journal texte de conteneur dans Kubernetes.

Champ

Description

__tag__:__hostname__

Le nom de l'hôte du conteneur.

__tag__:__path__

Le chemin du fichier journal dans le conteneur.

__tag__:_container_ip_

L'adresse IP du conteneur.

__tag__:_image_name_

Le nom de l'image utilisée par le conteneur.

Remarque

S'il existe plusieurs images avec le même hachage mais des noms ou des tags différents, la configuration de collecte sélectionnera un nom basé sur le hachage pour la collecte. Elle ne peut pas garantir que le nom sélectionné correspond à celui défini dans le fichier YAML.

__tag__:_pod_name_

Le nom du pod.

__tag__:_namespace_

Le namespace auquel appartient le pod.

__tag__:_pod_uid_

L'identifiant unique (UID) du pod.

Sortie standard

Le tableau suivant décrit les champs téléchargés par défaut pour chaque journal dans un cluster Kubernetes.

|
**Champ**
|
**Description**
| | --- | --- | |
_time_
|
L'heure à laquelle le journal a été collecté.
| |
_source_
|
Le type de source du journal. Valeurs valides : stdout et stderr.
| |
_image_name_
|
Le nom de l'image.
| |
_container_name_
|
Le nom du conteneur.
| |
_pod_name_
|
Le nom du pod.
| |
_namespace_
|
Le namespace du pod.
| |
_pod_uid_
|
L'identifiant unique du pod.
|































Références