10.16. Transmission des journaux d'application de projets spécifiques
Vous pouvez utiliser le Cluster Log Forwarder pour envoyer une copie des journaux d'application de projets spécifiques à un agrégateur de journaux externe. Vous pouvez le faire en plus ou à la place de l'utilisation du magasin de logs Elasticsearch par défaut. Vous devez également configurer l'agrégateur de logs externe pour qu'il reçoive les données de logs d'OpenShift Container Platform.
Pour configurer le transfert des journaux d'application à partir d'un projet, vous devez créer une ressource personnalisée (CR) ClusterLogForwarder
avec au moins une entrée provenant d'un projet, des sorties facultatives pour d'autres agrégateurs de journaux et des pipelines qui utilisent ces entrées et ces sorties.
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
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' inputs: 7 - name: my-app-logs application: namespaces: - my-project pipelines: - name: forward-to-fluentd-insecure 8 inputRefs: 9 - my-app-logs outputRefs: 10 - fluentd-server-insecure parse: json 11 labels: project: "my-project" 12 - name: forward-to-fluentd-secure 13 inputRefs: - application - audit - infrastructure outputRefs: - fluentd-server-secure - default labels: clusterId: "C1234"
- 1
- Le nom du CR
ClusterLogForwarder
doit êtreinstance
. - 2
- L'espace de noms pour le CR
ClusterLogForwarder
doit êtreopenshift-logging
. - 3
- Spécifiez un nom pour la sortie.
- 4
- Spécifiez le type de sortie :
elasticsearch
,fluentdForward
,syslog
, oukafka
. - 5
- Spécifiez l'URL et le port de l'agrégateur de journaux externe sous la forme d'une URL absolue valide. 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 projetopenshift-logging
et avoir des clés tls.crt, tls.key et ca-bundle.crt qui pointent chacune vers les certificats qu'elles représentent. - 7
- Configuration d'une entrée pour filtrer les journaux d'application des projets spécifiés.
- 8
- Configuration d'un pipeline qui utilise l'entrée pour envoyer les logs de l'application du projet à une instance Fluentd externe.
- 9
- L'entrée
my-app-logs
. - 10
- Le nom de la sortie à utiliser.
- 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 champstructured
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
- Configuration d'un pipeline pour l'envoi de journaux à d'autres agrégateurs de journaux.
- Facultatif : Spécifiez un nom pour le pipeline.
-
Spécifiez les types de journaux à transférer en utilisant le pipeline :
application,
infrastructure
ouaudit
. - Spécifiez le nom de la sortie à utiliser lors du transfert des journaux avec ce pipeline.
-
Facultatif : Spécifiez la sortie
default
pour transmettre les journaux à l'instance Elasticsearch interne. - Facultatif : Chaîne. Une ou plusieurs étiquettes à ajouter aux journaux.
Créer l'objet CR :
oc create -f <nom-de-fichier>.yaml