Rechercher

10.11. Transmission des journaux à l'aide du protocole syslog

download PDF

Vous pouvez utiliser le protocole syslog RFC3164 ou RFC5424 pour envoyer une copie de vos journaux à un agrégateur de journaux externe configuré pour accepter le protocole à la place ou en plus du magasin de journaux Elasticsearch par défaut. Vous êtes responsable de la configuration de l'agrégateur de journaux externe, tel qu'un serveur syslog, pour recevoir les journaux d'OpenShift Container Platform.

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

Note

Vous pouvez également utiliser une carte de configuration pour transmettre les journaux en utilisant les protocoles syslog RFC3164. 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: rsyslog-east 3
         type: syslog 4
         syslog: 5
           facility: local0
           rfc: RFC3164
           payloadKey: message
           severity: informational
         url: 'tls://rsyslogserver.east.example.com:514' 6
         secret: 7
            name: syslog-secret
       - name: rsyslog-west
         type: syslog
         syslog:
          appName: myapp
          facility: user
          msgID: mymsg
          procID: myproc
          rfc: RFC5424
          severity: debug
         url: 'udp://rsyslogserver.west.example.com:514'
      pipelines:
       - name: syslog-east 8
         inputRefs: 9
         - audit
         - application
         outputRefs: 10
         - rsyslog-east
         - default 11
         parse: json 12
         labels:
           secure: "true" 13
           syslog: "east"
       - name: syslog-west 14
         inputRefs:
         - infrastructure
         outputRefs:
         - rsyslog-west
         - default
         labels:
           syslog: "west"
    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 syslog.
    5
    En option : Spécifiez les paramètres syslog, énumérés ci-dessous.
    6
    Spécifiez l'URL et le port de l'instance syslog externe. Vous pouvez utiliser le protocole udp (non sécurisé), 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.
    7
    Si vous utilisez un préfixe tls, vous devez spécifier le nom du secret requis par le point de terminaison 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.
    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 transmettre 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. Citez des valeurs comme "true" pour qu'elles soient reconnues comme des chaînes de caractères et non comme des booléens.
    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

10.11.1. Ajout d'informations sur la source du journal à la sortie du message

Vous pouvez ajouter les éléments namespace_name, pod_name et container_name au champ message de l'enregistrement en ajoutant le champ AddLogSource à votre ressource personnalisée (CR) ClusterLogForwarder.

  spec:
    outputs:
    - name: syslogout
      syslog:
        addLogSource: true
        facility: user
        payloadKey: message
        rfc: RFC3164
        severity: debug
        tag: mytag
      type: syslog
      url: tls://syslog-receiver.openshift-logging.svc:24224
    pipelines:
    - inputRefs:
      - application
      name: test-app
      outputRefs:
      - syslogout
Note

Cette configuration est compatible avec les normes RFC3164 et RFC5424.

Exemple de message syslog sans AddLogSource

<15>1 2020-11-15T17:06:14+00:00 fluentd-9hkb4 mytag - - -  {"msgcontent"=>"Message Contents", "timestamp"=>"2020-11-15 17:06:09", "tag_key"=>"rec_tag", "index"=>56}

Exemple de sortie de message syslog avec AddLogSource

<15>1 2020-11-16T10:49:37+00:00 crc-j55b9-master-0 mytag - - -  namespace_name=clo-test-6327,pod_name=log-generator-ff9746c49-qxm7l,container_name=log-generator,message={"msgcontent":"My life is my message", "timestamp":"2020-11-16 10:49:36", "tag_key":"rec_tag", "index":76}

10.11.2. Paramètres Syslog

Vous pouvez configurer les éléments suivants pour les sorties de syslog. Pour plus d'informations, voir le RFC syslog RFC3164 ou RFC5424.

  • facility : L'installation syslog. La valeur peut être un entier décimal ou un mot-clé insensible à la casse :

    • 0 ou kern pour les messages du noyau
    • 1 ou user pour les messages de niveau utilisateur, la valeur par défaut.
    • 2 ou mail pour le système de messagerie
    • 3 ou daemon pour les démons du système
    • 4 ou auth pour les messages de sécurité/authentification
    • 5 ou syslog pour les messages générés en interne par syslogd
    • 6 ou lpr pour le sous-système d'impression de ligne
    • 7 ou news pour le sous-système d'information en réseau
    • 8 ou uucp pour le sous-système UUCP
    • 9 ou cron pour le démon de l'horloge
    • 10 ou authpriv pour les messages d'authentification de sécurité
    • 11 ou ftp pour le démon FTP
    • 12 ou ntp pour le sous-système NTP
    • 13 ou security pour le journal d'audit syslog
    • 14 ou console pour le journal d'alerte syslog
    • 15 ou solaris-cron pour le démon de planification
    • 16-23 ou local0 - local7 pour les installations utilisées localement
  • Facultatif : payloadKey: Le champ d'enregistrement à utiliser comme charge utile pour le message syslog.

    Note

    La configuration du paramètre payloadKey empêche les autres paramètres d'être transmis au syslog.

  • rfc : Le RFC à utiliser pour l'envoi de journaux via syslog. La valeur par défaut est RFC5424.
  • severity (gravité) : La gravité syslog à définir sur les enregistrements syslog sortants. La valeur peut être un entier décimal ou un mot-clé insensible à la casse :

    • 0 ou Emergency pour les messages indiquant que le système est inutilisable
    • 1 ou Alert pour les messages indiquant qu'une action doit être entreprise immédiatement
    • 2 ou Critical pour les messages indiquant des conditions critiques
    • 3 ou Error pour les messages indiquant des conditions d'erreur
    • 4 ou Warning pour les messages indiquant des conditions d'alerte
    • 5 ou Notice pour les messages indiquant des conditions normales mais significatives
    • 6 ou Informational pour les messages d'information
    • 7 ou Debug pour les messages indiquant des messages de niveau débogage, la valeur par défaut est
  • tag : Tag spécifie un champ d'enregistrement à utiliser comme tag sur le message syslog.
  • trimPrefix : Supprime le préfixe spécifié de la balise.

10.11.3. Paramètres syslog supplémentaires RFC5424

Les paramètres suivants s'appliquent à RFC5424 :

  • appName : APP-NAME est une chaîne de texte libre qui identifie l'application qui a envoyé le journal. Doit être spécifié pour RFC5424.
  • msgID : Le MSGID est une chaîne de texte libre qui identifie le type de message. Doit être spécifié pour RFC5424.
  • procID : Le PROCID est une chaîne de texte libre. Un changement de valeur indique une discontinuité dans les rapports syslog. Doit être spécifié pour RFC5424.
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.