10.17. Transférer les journaux d'application de pods spécifiques


En tant qu'administrateur de cluster, vous pouvez utiliser les étiquettes de pods Kubernetes pour collecter des données de journal à partir de pods spécifiques et les transmettre à un collecteur de journaux.

Supposons que vous ayez une application composée de pods fonctionnant avec d'autres pods dans différents espaces de noms. Si ces pods ont des étiquettes qui identifient l'application, vous pouvez collecter et envoyer leurs données de journalisation vers un collecteur de journaux spécifique.

Pour spécifier les étiquettes de pods, vous utilisez une ou plusieurs paires clé-valeur matchLabels. Si vous spécifiez plusieurs paires clé-valeur, les pods doivent tous correspondre à ces paires pour être sélectionnés.

Procédure

  1. Créez ou modifiez un fichier YAML qui définit l'objet ClusterLogForwarder CR. Dans le fichier, spécifiez les étiquettes de pods à l'aide de sélecteurs simples basés sur l'égalité sous inputs[].name.application.selector.matchLabels, comme le montre l'exemple suivant.

    Exemple ClusterLogForwarder Fichier YAML de CR

    apiVersion: logging.openshift.io/v1
    kind: ClusterLogForwarder
    metadata:
      name: instance 1
      namespace: openshift-logging 2
    spec:
      pipelines:
        - inputRefs: [ myAppLogData ] 3
          outputRefs: [ default ] 4
          parse: json 5
      inputs: 6
        - name: myAppLogData
          application:
            selector:
              matchLabels: 7
                environment: production
                app: nginx
            namespaces: 8
            - app1
            - app2
      outputs: 9
        - default
        ...

    1
    Le nom du CR ClusterLogForwarder doit être instance.
    2
    L'espace de noms pour le CR ClusterLogForwarder doit être openshift-logging.
    3
    Spécifiez une ou plusieurs valeurs séparées par des virgules à partir de inputs[].name.
    4
    Spécifiez une ou plusieurs valeurs séparées par des virgules à partir de outputs[].
    5
    Facultatif : Indiquez si les entrées de log JSON structurées doivent être transmises en tant qu'objets JSON dans le champ structured. L'entrée de log doit contenir du JSON structuré valide ; sinon, OpenShift Logging supprime le champ structured et envoie l'entrée de log à l'index par défaut, app-00000x.
    6
    Définir un site inputs[].name unique pour chaque application qui possède un ensemble unique d'étiquettes de pods.
    7
    Indiquez les paires clé-valeur des étiquettes de pods dont vous souhaitez collecter les données de journalisation. Vous devez spécifier à la fois une clé et une valeur, et pas seulement une clé. Pour être sélectionnés, les modules doivent correspondre à toutes les paires clé-valeur.
    8
    Facultatif : Indiquez un ou plusieurs espaces de noms.
    9
    Spécifiez une ou plusieurs sorties pour transmettre vos données de journalisation. La sortie optionnelle default montrée ici envoie les données de log à l'instance Elasticsearch interne.
  2. Facultatif : Pour limiter la collecte de données de journalisation à des espaces de noms spécifiques, utilisez inputs[].name.application.namespaces, comme indiqué dans l'exemple précédent.
  3. Facultatif : vous pouvez envoyer des données de journal provenant d'applications supplémentaires ayant des étiquettes de pods différentes vers le même pipeline.

    1. Pour chaque combinaison unique d'étiquettes de gousses, créez une section supplémentaire inputs[].name semblable à celle illustrée.
    2. Mettre à jour le site selectors pour qu'il corresponde aux étiquettes de la capsule de cette demande.
    3. Ajoutez la nouvelle valeur inputs[].name à inputRefs. Par exemple :

      - inputRefs: [ myAppLogData, myOtherAppLogData ]
  4. Créer l'objet CR :

    oc create -f <nom-de-fichier>.yaml

Ressources complémentaires

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.