10.11. Transmission des journaux à l'aide du protocole syslog
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.
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
Créez ou modifiez un fichier YAML qui définit l'objet
ClusterLogForwarderCR :Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Le nom du CR
ClusterLogForwarderdoit êtreinstance. - 2
- L'espace de noms pour le CR
ClusterLogForwarderdoit êtreopenshift-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é) outls(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 projetopenshift-logginget 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,infrastructureouaudit. - 10
- Spécifiez le nom de la sortie à utiliser lors du transfert des journaux avec ce pipeline.
- 11
- Facultatif : Spécifiez la sortie
defaultpour 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 champstructuredet 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
inputRefsest le type de journal à transmettre en utilisant le pipeline :application,infrastructure, ouaudit. -
outputRefsest le nom de la sortie à utiliser. - Facultatif : Chaîne. Une ou plusieurs étiquettes à ajouter aux journaux.
Créer l'objet CR :
oc create -f <nom-de-fichier>.yaml
oc create -f <nom-de-fichier>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
10.11.1. Ajout d'informations sur la source du journal à la sortie du message Copier lienLien copié sur presse-papiers!
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.
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}
<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}
<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 Copier lienLien copié sur presse-papiers!
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 :
-
0oukernpour les messages du noyau -
1ouuserpour les messages de niveau utilisateur, la valeur par défaut. -
2oumailpour le système de messagerie -
3oudaemonpour les démons du système -
4ouauthpour les messages de sécurité/authentification -
5ousyslogpour les messages générés en interne par syslogd -
6oulprpour le sous-système d'impression de ligne -
7ounewspour le sous-système d'information en réseau -
8ouuucppour le sous-système UUCP -
9oucronpour le démon de l'horloge -
10ouauthprivpour les messages d'authentification de sécurité -
11ouftppour le démon FTP -
12ountppour le sous-système NTP -
13ousecuritypour le journal d'audit syslog -
14ouconsolepour le journal d'alerte syslog -
15ousolaris-cronpour le démon de planification -
16-23oulocal0-local7pour les installations utilisées localement
-
Facultatif :
payloadKey: Le champ d'enregistrement à utiliser comme charge utile pour le message syslog.NoteLa configuration du paramètre
payloadKeyempê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 :
-
0ouEmergencypour les messages indiquant que le système est inutilisable -
1ouAlertpour les messages indiquant qu'une action doit être entreprise immédiatement -
2ouCriticalpour les messages indiquant des conditions critiques -
3ouErrorpour les messages indiquant des conditions d'erreur -
4ouWarningpour les messages indiquant des conditions d'alerte -
5ouNoticepour les messages indiquant des conditions normales mais significatives -
6ouInformationalpour les messages d'information -
7ouDebugpour 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 Copier lienLien copié sur presse-papiers!
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.