Rechercher

10.9. Transférer les journaux vers une instance Elasticsearch externe

download PDF

Vous pouvez optionnellement transmettre les logs à une instance Elasticsearch externe en plus ou à la place de l'instance Elasticsearch interne d'OpenShift Container Platform. Vous êtes responsable de la configuration de l'agrégateur de logs externe pour recevoir les données de logs d'OpenShift Container Platform.

Pour configurer la redirection des journaux vers une instance Elasticsearch externe, vous devez créer une ressource personnalisée (CR) ClusterLogForwarder avec une sortie vers cette instance et un pipeline qui utilise la sortie. La sortie Elasticsearch externe peut utiliser la connexion HTTP (non sécurisée) ou HTTPS (HTTP sécurisée).

Pour transmettre les journaux à une instance Elasticsearch externe et interne, créez des sorties et des pipelines vers l'instance externe et un pipeline qui utilise la sortie default pour transmettre les journaux à l'instance interne. Il n'est pas nécessaire de créer une sortie default. Si vous configurez une sortie default, vous recevrez un message d'erreur car la sortie default est réservée à Red Hat OpenShift Logging Operator.

Note

Si vous souhaitez transmettre les logs à only l'instance Elasticsearch interne d'OpenShift Container Platform, vous n'avez pas besoin de créer un CR ClusterLogForwarder.

Conditions préalables

  • Vous devez disposer d'un serveur de journalisation configuré pour recevoir les données de journalisation à l'aide du protocole ou du format spécifié.

Procédure

  1. Créez ou modifiez un fichier YAML qui définit l'objet ClusterLogForwarder CR :

    apiVersion: "logging.openshift.io/v1"
    kind: ClusterLogForwarder
    metadata:
      name: instance 1
      namespace: openshift-logging 2
    spec:
      outputs:
       - name: elasticsearch-insecure 3
         type: "elasticsearch" 4
         url: http://elasticsearch.insecure.com:9200 5
       - name: elasticsearch-secure
         type: "elasticsearch"
         url: https://elasticsearch.secure.com:9200 6
         secret:
            name: es-secret 7
      pipelines:
       - name: application-logs 8
         inputRefs: 9
         - application
         - audit
         outputRefs:
         - elasticsearch-secure 10
         - default 11
         parse: json 12
         labels:
           myLabel: "myValue" 13
       - name: infrastructure-audit-logs 14
         inputRefs:
         - infrastructure
         outputRefs:
         - elasticsearch-insecure
         labels:
           logs: "audit-infra"
    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 un nom pour la sortie.
    4
    Spécifiez le type de elasticsearch.
    5
    Spécifiez l'URL et le port de l'instance Elasticsearch externe sous la forme d'une URL absolue valide. Vous pouvez utiliser le protocole http (non sécurisé) ou https (HTTP sécurisé). Si le proxy à l'échelle du cluster utilisant l'annotation CIDR est activé, la sortie doit être un nom de serveur ou un FQDN, et non une adresse IP.
    6
    Pour une connexion sécurisée, vous pouvez spécifier une URL https ou http que vous authentifiez en spécifiant un secret.
    7
    Pour un préfixe https, indiquez le nom du secret requis par le point d'extrémité pour la communication TLS. Le secret doit exister dans le projet openshift-logging et doit avoir des clés de : tls.crt, tls.key, et ca-bundle.crt qui pointent vers les certificats respectifs qu'elles représentent. Sinon, pour les préfixes http et https, vous pouvez spécifier un secret contenant un nom d'utilisateur et un mot de passe. Pour plus d'informations, voir l'exemple suivant : "Exemple : Définition d'un secret contenant un nom d'utilisateur et un mot de passe.\N-"
    8
    Facultatif : Spécifiez un nom pour le pipeline.
    9
    Spécifiez les types de journaux à transférer en utilisant le pipeline : application, infrastructure ou audit.
    10
    Spécifiez le nom de la sortie à utiliser lors du transfert des journaux avec ce pipeline.
    11
    Facultatif : Spécifiez la sortie default pour envoyer les journaux à l'instance Elasticsearch interne.
    12
    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.
    13
    Facultatif : Chaîne. Une ou plusieurs étiquettes à ajouter aux journaux.
    14
    Facultatif : Configurez plusieurs sorties pour transmettre les journaux à d'autres agrégateurs de journaux externes, quel que soit le type pris en charge :
    • Un nom pour décrire le pipeline.
    • L'adresse inputRefs est le type de journal à transmettre en utilisant le pipeline : application, infrastructure, ou audit.
    • outputRefs est le nom de la sortie à utiliser.
    • Facultatif : Chaîne. Une ou plusieurs étiquettes à ajouter aux journaux.
  2. Créer l'objet CR :

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

Exemple : Définition d'un secret contenant un nom d'utilisateur et un mot de passe

Vous pouvez utiliser un secret contenant un nom d'utilisateur et un mot de passe pour authentifier une connexion sécurisée à une instance Elasticsearch externe.

Par exemple, si vous ne pouvez pas utiliser de clés TLS mutuelles (mTLS) parce qu'un tiers exploite l'instance Elasticsearch, vous pouvez utiliser HTTP ou HTTPS et définir un secret contenant le nom d'utilisateur et le mot de passe.

  1. Créez un fichier YAML Secret similaire à l'exemple suivant. Utilisez des valeurs encodées en base64 pour les champs username et password. Le type de secret est opaque par défaut.

    apiVersion: v1
    kind: Secret
    metadata:
      name: openshift-test-secret
    data:
      username: dGVzdHVzZXJuYW1lCg==
      password: dGVzdHBhc3N3b3JkCg==
  2. Créer le secret :

    $ oc create secret -n openshift-logging openshift-test-secret.yaml
  3. Spécifiez le nom du secret dans le CR ClusterLogForwarder:

    kind: ClusterLogForwarder
    metadata:
      name: instance
      namespace: openshift-logging
    spec:
      outputs:
       - name: elasticsearch
         type: "elasticsearch"
         url: https://elasticsearch.secure.com:9200
         secret:
            name: openshift-test-secret
    Note

    Dans la valeur du champ url, le préfixe peut être http ou https.

  4. Créer l'objet CR :

    oc create -f <nom-de-fichier>.yaml
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.