4.2. À propos du déploiement du sous-système de journalisation pour Red Hat OpenShift
Les administrateurs de cluster d'OpenShift Container Platform peuvent déployer le sous-système de journalisation en utilisant la console web d'OpenShift Container Platform ou le CLI pour installer l'OpenShift Elasticsearch Operator et le Red Hat OpenShift Logging Operator. Lorsque les opérateurs sont installés, vous créez une ressource personnalisée (CR) ClusterLogging
pour planifier les pods du sous-système de journalisation et les autres ressources nécessaires à la prise en charge du sous-système de journalisation. Les opérateurs sont responsables du déploiement, de la mise à niveau et de la maintenance du sous-système de journalisation.
Le CR ClusterLogging
définit un environnement de sous-système de journalisation complet qui inclut tous les composants de la pile de journalisation pour collecter, stocker et visualiser les journaux. L'opérateur de journalisation de Red Hat OpenShift surveille le CR du sous-système de journalisation et ajuste le déploiement de la journalisation en conséquence.
Les administrateurs et les développeurs d'applications peuvent consulter les journaux des projets pour lesquels ils ont un accès de visualisation.
Pour plus d'informations, voir Installer le sous-système de journalisation pour Red Hat OpenShift.
4.2.1. A propos de JSON Logging OpenShift Container Platform
Vous pouvez utiliser la journalisation JSON pour configurer l'API Log Forwarding afin qu'elle analyse les chaînes JSON dans un objet structuré. Vous pouvez effectuer les tâches suivantes :
- Analyse des journaux JSON
- Configurer les données de journalisation JSON pour Elasticsearch
- Transférer les journaux JSON vers le magasin de journaux Elasticsearch
4.2.2. À propos de la collecte et du stockage des événements Kubernetes
L'OpenShift Container Platform Event Router est un pod qui observe les événements Kubernetes et les enregistre pour qu'ils soient collectés par OpenShift Container Platform Logging. Vous devez déployer manuellement l'Event Router.
Pour plus d'informations, voir À propos de la collecte et du stockage des événements Kubernetes.
4.2.3. A propos de la mise à jour de la journalisation de la plateforme OpenShift Container
OpenShift Container Platform vous permet de mettre à jour la journalisation d'OpenShift Container Platform. Vous devez mettre à jour les opérateurs suivants lors de la mise à jour de la journalisation d'OpenShift Container Platform :
- Opérateur Elasticsearch
- Opérateur de journalisation des clusters
Pour plus d'informations, voir Mise à jour de la journalisation OpenShift.
4.2.4. À propos de l'affichage du tableau de bord de la grappe
Le tableau de bord de journalisation d'OpenShift Container Platform contient des graphiques qui montrent les détails de votre instance Elasticsearch au niveau du cluster. Ces graphiques vous aident à diagnostiquer et à anticiper les problèmes.
Pour plus d'informations, voir À propos de l'affichage du tableau de bord de la grappe.
4.2.5. À propos du dépannage de la plateforme OpenShift Container Platform Logging
Vous pouvez résoudre les problèmes de journalisation en effectuant les tâches suivantes :
- Visualisation de l'état de la journalisation
- Visualisation de l'état du magasin de journaux
- Comprendre les alertes de journalisation
- Collecte de données de journalisation pour Red Hat Support
- Dépannage pour les alertes critiques
4.2.6. A propos de la désinstallation de OpenShift Container Platform Logging
Vous pouvez arrêter l'agrégation des journaux en supprimant la ressource personnalisée ClusterLogging (CR). Après la suppression de la CR, il reste d'autres composants de journalisation de cluster, que vous pouvez éventuellement supprimer.
Pour plus d'informations, voir Désinstallation d'OpenShift Logging.
4.2.7. A propos de l'exportation de champs
Le système de journalisation exporte des champs. Les champs exportés sont présents dans les enregistrements de logs et sont disponibles pour des recherches à partir d'Elasticsearch et de Kibana.
Pour plus d'informations, voir À propos de l'exportation de champs.
4.2.8. À propos des composants du sous-système de journalisation
Les composants du sous-système de journalisation comprennent un collecteur déployé sur chaque nœud du cluster OpenShift Container Platform qui collecte tous les journaux des nœuds et des conteneurs et les écrit dans un magasin de journaux. Vous pouvez utiliser une interface web centralisée pour créer des visualisations et des tableaux de bord riches avec les données agrégées.
Les principaux composants du sous-système de journalisation sont les suivants :
- collection - C'est le composant qui collecte les logs du cluster, les formate et les transmet au magasin de logs. L'implémentation actuelle est Fluentd.
- log store - C'est l'endroit où sont stockés les journaux. L'implémentation par défaut est Elasticsearch. Vous pouvez utiliser le magasin de journaux Elasticsearch par défaut ou transférer les journaux vers des magasins de journaux externes. Le magasin de journaux par défaut est optimisé et testé pour le stockage à court terme.
- visualisation - Il s'agit du composant de l'interface utilisateur que vous pouvez utiliser pour afficher les journaux, les graphiques, les diagrammes, etc. L'implémentation actuelle est Kibana.
Ce document peut faire référence au log store ou à Elasticsearch, à la visualisation ou à Kibana, à la collecte ou à Fluentd, de manière interchangeable, sauf indication contraire.
4.2.9. À propos du collecteur de journalisation
Le sous-système de journalisation de Red Hat OpenShift collecte les journaux des conteneurs et des nœuds.
Par défaut, le collecteur de journaux utilise les sources suivantes :
- journald pour tous les journaux du système
-
/var/log/containers/*.log
pour tous les journaux de conteneurs
Si vous configurez le collecteur de journaux pour qu'il recueille les journaux d'audit, il les obtient à partir de /var/log/audit/audit.log
.
Le collecteur de logs est un ensemble de démons qui déploie des pods sur chaque nœud d'OpenShift Container Platform. Les journaux du système et de l'infrastructure sont générés par les messages de journald du système d'exploitation, du runtime du conteneur et d'OpenShift Container Platform. Les logs d'application sont générés par le moteur de conteneur CRI-O. Fluentd collecte les logs de ces sources et les transmet en interne ou en externe comme vous le configurez dans OpenShift Container Platform.
Les moteurs d'exécution des conteneurs fournissent des informations minimales pour identifier la source des messages de journalisation : le projet, le nom du pod et l'ID du conteneur. Ces informations ne sont pas suffisantes pour identifier de manière unique la source des journaux. Si un module portant un nom et un projet donnés est supprimé avant que le collecteur de journaux ne commence à traiter ses journaux, les informations du serveur API, telles que les étiquettes et les annotations, risquent de ne pas être disponibles. Il se peut qu'il n'y ait aucun moyen de distinguer les messages de journal d'un module et d'un projet portant un nom similaire ou de remonter à la source des journaux. Cette limitation signifie que la collecte et la normalisation des journaux sont considérées comme best effort.
Les moteurs d'exécution des conteneurs disponibles fournissent des informations minimales pour identifier la source des messages de journalisation et ne garantissent pas l'unicité des messages de journalisation ou la possibilité de remonter à la source de ces messages.
Pour plus d'informations, voir Configuration du collecteur de journalisation.
4.2.10. À propos de l'entrepôt de données
Par défaut, OpenShift Container Platform utilise Elasticsearch (ES) pour stocker les données de log. En option, vous pouvez utiliser l'API Log Forwarder pour transférer les journaux vers un magasin externe. Plusieurs types de magasins sont pris en charge, notamment fluentd, rsyslog, kafka et d'autres.
L'instance Elasticsearch du sous-système de journalisation est optimisée et testée pour un stockage à court terme, environ sept jours. Si vous souhaitez conserver vos journaux à plus long terme, il est recommandé de déplacer les données vers un système de stockage tiers.
Elasticsearch organise les données de log de Fluentd dans des datastores, ou indices, puis subdivise chaque index en plusieurs morceaux appelés shards, qu'il répartit sur un ensemble de nœuds Elasticsearch dans un cluster Elasticsearch. Vous pouvez configurer Elasticsearch pour qu'il fasse des copies des morceaux, appelées replicas, qu'il répartit également sur les nœuds Elasticsearch. La ressource personnalisée (CR) ClusterLogging
vous permet de spécifier la manière dont les fichiers sont répliqués afin d'assurer la redondance des données et la résistance aux pannes. Vous pouvez également spécifier la durée de conservation des différents types de journaux à l'aide d'une politique de conservation dans la CR ClusterLogging
.
Le nombre d'unités primaires pour les modèles d'index est égal au nombre de nœuds de données Elasticsearch.
Red Hat OpenShift Logging Operator et son compagnon OpenShift Elasticsearch Operator garantissent que chaque nœud Elasticsearch est déployé à l'aide d'un déploiement unique qui inclut son propre volume de stockage. Vous pouvez utiliser une ressource personnalisée (CR) ClusterLogging
pour augmenter le nombre de nœuds Elasticsearch, si nécessaire. Voir la documentation Elasticsearch pour les considérations liées à la configuration du stockage.
Un environnement Elasticsearch hautement disponible nécessite au moins trois nœuds Elasticsearch, chacun sur un hôte différent.
Le contrôle d'accès basé sur les rôles (RBAC) appliqué aux indices Elasticsearch permet de contrôler l'accès des développeurs aux journaux. Les administrateurs peuvent accéder à tous les journaux et les développeurs ne peuvent accéder qu'aux journaux de leurs projets.
Pour plus d'informations, voir Configuration du magasin de journaux.
4.2.11. À propos de la visualisation de l'enregistrement
OpenShift Container Platform utilise Kibana pour afficher les données de logs collectées par Fluentd et indexées par Elasticsearch.
Kibana est une interface de console basée sur un navigateur pour interroger, découvrir et visualiser vos données Elasticsearch à l'aide d'histogrammes, de graphiques linéaires, de diagrammes circulaires et d'autres visualisations.
Pour plus d'informations, voir Configuration du visualiseur de journaux.
4.2.12. À propos de l'acheminement des événements
Event Router est un pod qui surveille les événements de OpenShift Container Platform afin qu'ils puissent être collectés par le sous-système de journalisation de Red Hat OpenShift. L'Event Router collecte les événements de tous les projets et les écrit sur STDOUT
. Fluentd collecte ces événements et les transmet à l'instance Elasticsearch de OpenShift Container Platform. Elasticsearch indexe les événements dans l'index infra
.
Vous devez déployer manuellement le routeur d'événements.
Pour plus d'informations, voir Collecte et stockage des événements Kubernetes.
4.2.13. À propos de la redirection des journaux
Par défaut, le sous-système de journalisation pour Red Hat OpenShift envoie les journaux au magasin de journaux Elasticsearch interne par défaut, défini dans la ressource personnalisée (CR) ClusterLogging
. Si vous souhaitez transférer les journaux vers d'autres agrégateurs de journaux, vous pouvez utiliser les fonctionnalités de transfert de journaux pour envoyer les journaux à des points d'extrémité spécifiques à l'intérieur ou à l'extérieur de votre cluster.
Pour plus d'informations, voir Transférer les journaux vers des systèmes tiers.