10.10. Transférer les journaux en utilisant le protocole de transfert Fluentd


Vous pouvez utiliser le protocole Fluentd forward pour envoyer une copie de vos logs à un agrégateur de logs externe qui est configuré pour accepter le protocole à la place ou en plus du magasin de logs Elasticsearch par défaut. Vous êtes responsable de la configuration de l'agrégateur de logs externe pour recevoir les logs d'OpenShift Container Platform.

Pour configurer la transmission des journaux à l'aide du protocole forward, vous devez créer une ressource personnalisée (CR) ClusterLogForwarder avec une ou plusieurs sorties vers les serveurs Fluentd, et des pipelines qui utilisent ces sorties. La sortie Fluentd peut utiliser une connexion TCP (non sécurisée) ou TLS (TCP sécurisée).

Note

Vous pouvez également utiliser une carte de configuration pour transmettre les journaux à l'aide des protocoles forward. Cependant, cette méthode est obsolète dans OpenShift Container Platform et sera supprimée dans une prochaine version.

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: fluentd-server-secure 3
         type: fluentdForward 4
         url: 'tls://fluentdserver.security.example.com:24224' 5
         secret: 6
            name: fluentd-secret
       - name: fluentd-server-insecure
         type: fluentdForward
         url: 'tcp://fluentdserver.home.example.com:24224'
      pipelines:
       - name: forward-to-fluentd-secure 7
         inputRefs:  8
         - application
         - audit
         outputRefs:
         - fluentd-server-secure 9
         - default 10
         parse: json 11
         labels:
           clusterId: "C1234" 12
       - name: forward-to-fluentd-insecure 13
         inputRefs:
         - infrastructure
         outputRefs:
         - fluentd-server-insecure
         labels:
           clusterId: "C1234"
    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 fluentdForward.
    5
    Spécifiez l'URL et le port de l'instance externe de Fluentd en tant qu'URL absolue valide. Vous pouvez utiliser le protocole tcp (non sécurisé) ou tls (TCP 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
    Si vous utilisez un préfixe tls, vous devez spécifier le nom du secret requis par le point final 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-"
    7
    Facultatif : Spécifiez un nom pour le pipeline.
    8
    Spécifiez les types de journaux à transférer en utilisant le pipeline : application, infrastructure ou audit.
    9
    Spécifiez le nom de la sortie à utiliser lors du transfert des journaux avec ce pipeline.
    10
    Facultatif : Spécifiez la sortie default pour transmettre les journaux à l'instance Elasticsearch interne.
    11
    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.
    12
    Facultatif : Chaîne. Une ou plusieurs étiquettes à ajouter aux journaux.
    13
    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

10.10.1. Permettre une précision de l'ordre de la nanoseconde pour Logstash afin d'ingérer les données de fluentd

Pour que Logstash puisse ingérer les données de fluentd, vous devez activer la précision de la nanoseconde dans le fichier de configuration de Logstash.

Procédure

  • Dans le fichier de configuration de Logstash, définissez nanosecond_precision comme true.

Exemple de fichier de configuration Logstash

input { tcp { codec => fluent { nanosecond_precision => true } port => 24114 } }
filter { }
output { stdout { codec => rubydebug } }

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.