9.5. Configuration du collecteur de journalisation
L’enregistrement de Red Hat OpenShift recueille les opérations et les journaux d’applications de votre cluster et enrichit les données avec des métadonnées de Pod et de projet Kubernetes. Les modifications prises en charge au collecteur de journaux peuvent être effectuées par le biais de la strophe spec.collection dans la ressource personnalisée ClusterLogging (CR).
9.5.1. Configuration du collecteur de journaux Copier lienLien copié sur presse-papiers!
En modifiant la ressource personnalisée ClusterLogging (CR), vous pouvez configurer le type de collecteur de journaux que vous utilisez.
Fluentd est déprécié et devrait être retiré dans une version ultérieure. Le Red Hat fournit des corrections de bogues et une prise en charge de cette fonctionnalité pendant le cycle de vie de la version actuelle, mais cette fonctionnalité ne reçoit plus d’améliorations. Comme alternative à Fluentd, vous pouvez utiliser Vector à la place.
Conditions préalables
- Il y a des autorisations d’administrateur.
- L’OpenShift CLI (oc) a été installé.
- L’opérateur de journalisation Red Hat OpenShift a été installé.
- C’est vous qui avez créé un ClusterLogging CR.
Procédure
De modifier la spécification de collecte ClusterLogging CR:
Exemple de ClusterLogging CR
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Le type de collecteur de journaux que vous souhaitez utiliser pour l’enregistrement. Cela peut être vecteur ou fluide.
Appliquez le ClusterLogging CR en exécutant la commande suivante:
oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.2. Création d’une ressource LogFileMetricExporter Copier lienLien copié sur presse-papiers!
Dans la version de journalisation 5.8 et les versions plus récentes, le LogFileMetricExporter n’est plus déployé avec le collecteur par défaut. Il faut créer manuellement une ressource personnalisée LogFileMetricExporter (CR) pour générer des métriques à partir des journaux produits par l’exécution de conteneurs.
Dans le cas où vous ne créez pas le LogFileMetricExporter CR, vous pouvez voir un message Aucun point de données trouvé dans le service Red Hat OpenShift sur le tableau de bord de la console Web AWS pour les journaux produits.
Conditions préalables
- Il y a des autorisations d’administrateur.
- L’opérateur de journalisation Red Hat OpenShift a été installé.
- L’OpenShift CLI (oc) a été installé.
Procédure
Créer un fichier LogFileMetricExporter CR en tant que fichier YAML:
Exemple LogFileMetricExporter CR
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquez le LogFileMetricExporter CR en exécutant la commande suivante:
oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
La vérification
Le pod de logfilesmetricexporter fonctionne en même temps qu’un pod de collecteur sur chaque nœud.
Assurez-vous que les pods logfilesmetricexporter s’exécutent dans l’espace de noms où vous avez créé le LogFileMetricExporter CR, en exécutant la commande suivante et en observant la sortie:
oc get pods -l app.kubernetes.io/component=logfilesmetricexporter -n openshift-logging
$ oc get pods -l app.kubernetes.io/component=logfilesmetricexporter -n openshift-logging
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple de sortie
NAME READY STATUS RESTARTS AGE logfilesmetricexporter-9qbjj 1/1 Running 0 2m46s logfilesmetricexporter-cbc4v 1/1 Running 0 2m46s
NAME READY STATUS RESTARTS AGE logfilesmetricexporter-9qbjj 1/1 Running 0 2m46s logfilesmetricexporter-cbc4v 1/1 Running 0 2m46s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.3. Configurer les limites de CPU et de mémoire du collecteur de journaux Copier lienLien copié sur presse-papiers!
Le collecteur de journaux permet d’ajuster les limites du CPU et de la mémoire.
Procédure
Éditer la ressource personnalisée ClusterLogging (CR) dans le projet openshift-logging:
oc -n openshift-logging edit ClusterLogging instance
$ oc -n openshift-logging edit ClusterLogging instance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez les limites et les requêtes du CPU et de la mémoire au besoin. Les valeurs affichées sont les valeurs par défaut.
9.5.4. Configuration des récepteurs d’entrée Copier lienLien copié sur presse-papiers!
Le Red Hat OpenShift Logging Operator déploie un service pour chaque récepteur d’entrée configuré afin que les clients puissent écrire au collecteur. Ce service expose le port spécifié pour le récepteur d’entrée. Le nom du service est généré en fonction des éléments suivants:
- Dans le cas des déploiements ClusterLogForwarder CR, le nom du service est au format <ClusterLogForwarder_CR_name>-<input_name>. Exemple-http-récepteur.
- Dans le cas des déploiements ClusterLogForwarder CR existants, c’est-à-dire ceux nommés instance et situés dans l’espace de noms openshift-logging, le nom du service est dans le format collector-<input_name>. À titre d’exemple, collector-http-récepteur.
9.5.4.1. Configuration du collecteur pour recevoir les journaux d’audit en tant que serveur HTTP Copier lienLien copié sur presse-papiers!
Configurez votre collecteur de journaux pour écouter les connexions HTTP et recevoir des journaux d’audit en tant que serveur HTTP en spécifiant http comme une entrée de récepteur dans la ressource personnalisée ClusterLogForwarder (CR). Cela vous permet d’utiliser un log store commun pour les journaux d’audit qui sont collectés à l’intérieur et à l’extérieur de votre Red Hat OpenShift Service sur AWS cluster.
Conditions préalables
- Il y a des autorisations d’administrateur.
- L’OpenShift CLI (oc) a été installé.
- L’opérateur de journalisation Red Hat OpenShift a été installé.
- ClusterLogForwarder CR a créé un ClusterLogForwarder CR.
Procédure
De modifier le ClusterLogForwarder CR pour ajouter la configuration de l’entrée du récepteur http:
Exemple ClusterLogForwarder CR si vous utilisez un déploiement multi log
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez un nom pour votre récepteur d’entrée.
- 2
- Indiquez le type de récepteur d’entrée comme http.
- 3
- Actuellement, seul le format webhook kube-apiserver est pris en charge pour les récepteurs d’entrée http.
- 4
- Facultatif: Spécifiez le port que le récepteur d’entrée écoute. Cela doit être une valeur entre 1024 et 65535. La valeur par défaut est 8443 si cela n’est pas spécifié.
- 5
- Configurez un pipeline pour votre récepteur d’entrée.
Exemple ClusterLogForwarder CR si vous utilisez un déploiement hérité
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez un nom pour votre récepteur d’entrée.
- 2
- Indiquez le type de récepteur d’entrée comme http.
- 3
- Actuellement, seul le format webhook kube-apiserver est pris en charge pour les récepteurs d’entrée http.
- 4
- Facultatif: Spécifiez le port que le récepteur d’entrée écoute. Cela doit être une valeur entre 1024 et 65535. La valeur par défaut est 8443 si cela n’est pas spécifié.
- 5
- Configurez un pipeline pour votre récepteur d’entrée.
Appliquez les modifications au ClusterLogForwarder CR en exécutant la commande suivante:
oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.5.5. Configuration avancée pour le transmetteur de journal Fluentd Copier lienLien copié sur presse-papiers!
Fluentd est déprécié et devrait être retiré dans une version ultérieure. Le Red Hat fournit des corrections de bogues et une prise en charge de cette fonctionnalité pendant le cycle de vie de la version actuelle, mais cette fonctionnalité ne reçoit plus d’améliorations. Comme alternative à Fluentd, vous pouvez utiliser Vector à la place.
La journalisation comprend plusieurs paramètres Fluentd que vous pouvez utiliser pour régler les performances du transmetteur de journal Fluentd. Avec ces paramètres, vous pouvez modifier les comportements Fluentd suivants:
- Dimensions de tampons de morceaux et de morceaux
- Comportement de rinçage des morceaux
- Comportement de réessayer de transfert de chunk
Fluentd recueille les données de log dans un seul blob appelé un morceau. Lorsque Fluentd crée un morceau, le morceau est considéré comme étant dans le stade, où le morceau est rempli de données. Lorsque le morceau est plein, Fluentd déplace le morceau vers la file d’attente, où des morceaux sont conservés avant d’être rincés, ou écrits à leur destination. Fluentd peut ne pas rincer un morceau pour un certain nombre de raisons, telles que les problèmes de réseau ou les problèmes de capacité à destination. Lorsqu’un morceau ne peut pas être rincé, Fluentd retries rinçage comme configuré.
Dans Red Hat OpenShift Service sur AWS, Fluentd utilise la méthode exponentielle de recul pour réessayer le flushing, où Fluentd double le temps qu’il attend entre les tentatives de réessayer à nouveau, ce qui aide à réduire les demandes de connexion à la destination. À la place, vous pouvez désactiver le recul exponentiel et utiliser la méthode de réessai périodique, qui récupère les morceaux à un intervalle spécifié.
Ces paramètres peuvent vous aider à déterminer les compromis entre la latence et le débit.
- Afin d’optimiser Fluentd pour le débit, vous pouvez utiliser ces paramètres pour réduire le nombre de paquets réseau en configurant de plus grands tampons et files d’attente, en retardant les flushes et en définissant des temps plus longs entre les retries. Gardez à l’esprit que les plus grands tampons nécessitent plus d’espace sur le système de fichiers des nœuds.
- Afin d’optimiser la latence, vous pouvez utiliser les paramètres pour envoyer des données dès que possible, éviter l’accumulation de lots, avoir des files d’attente et des tampons plus courts, et utiliser des chasses et des retries plus fréquentes.
Il est possible de configurer le comportement d’étranglement et de rinçage à l’aide des paramètres suivants dans la ressource personnalisée ClusterLogging (CR). Les paramètres sont ensuite automatiquement ajoutés à la carte de configuration Fluentd pour une utilisation par Fluentd.
Ces paramètres sont:
- Ce n’est pas pertinent pour la plupart des utilisateurs. Les paramètres par défaut devraient donner de bonnes performances générales.
- Ce n’est que pour les utilisateurs avancés ayant une connaissance détaillée de la configuration et des performances Fluentd.
- Ce n’est que pour le réglage des performances. Ils n’ont aucun effet sur les aspects fonctionnels de l’exploitation forestière.
Le paramètre | Description | Défaut par défaut |
---|---|---|
| La taille maximale de chaque morceau. Fluentd arrête d’écrire des données sur un morceau lorsqu’il atteint cette taille. Ensuite, Fluentd envoie le morceau à la file d’attente et ouvre un nouveau morceau. |
|
| La taille maximale du tampon, qui est la taille totale de la scène et de la file d’attente. Lorsque la taille du tampon dépasse cette valeur, Fluentd cesse d’ajouter des données aux morceaux et échoue avec une erreur. Les données qui ne sont pas en morceaux sont perdues. | Environ 15% du disque de nœud distribué sur toutes les sorties. |
| L’intervalle entre les bouffées de morceaux. Il est possible d’utiliser s (secondes), m (minutes), h (heures) ou d (jours). |
|
| La méthode pour effectuer des bouffées:
|
|
| Le nombre de fils qui effectuent le rinçage en morceaux. L’augmentation du nombre de fils améliore le débit de flush, ce qui masque la latence du réseau. |
|
| Le comportement d’étranglement lorsque la file d’attente est pleine:
|
|
| Le temps maximum en secondes pour la méthode de réessayer exponentielle_backoff. |
|
| La méthode de réessayer lors du rinçage échoue:
|
|
| L’intervalle de temps maximum pour tenter de retries avant que l’enregistrement ne soit éliminé. |
|
| Le temps en quelques secondes avant la prochaine partie de la chasse. |
|
En savoir plus sur le cycle de vie des morceaux Fluentd, voir Plugins Buffer dans la documentation Fluentd.
Procédure
Éditer la ressource personnalisée ClusterLogging (CR) dans le projet openshift-logging:
oc edit ClusterLogging instance
$ oc edit ClusterLogging instance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Ajouter ou modifier l’un des paramètres suivants:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- Indiquez la taille maximale de chaque morceau avant qu’il ne soit mis en file d’attente pour le rinçage.
- 2
- Indiquez l’intervalle entre les bouffées de morceaux.
- 3
- Indiquez la méthode pour effectuer des bouffées de morceaux: paresseux, intervalle ou immédiat.
- 4
- Indiquez le nombre de fils à utiliser pour les bouffées de morceaux.
- 5
- Indiquez le comportement d’étranglement lorsque la file d’attente est pleine: throw_exception, block ou drop_oldest_chunk.
- 6
- Indiquez l’intervalle maximal en secondes pour la méthode de rinçage de chunk exponentielle_backoff.
- 7
- Indiquez le type de réessayer en cas d’échec du rinçage: exponentielle_backoff ou périodique.
- 8
- Indiquez le temps en quelques secondes avant la prochaine chasse.
- 9
- Indiquez la taille maximale du tampon de morceaux.
Assurez-vous que les gousses Fluentd sont redéployées:
oc get pods -l component=collector -n openshift-logging
$ oc get pods -l component=collector -n openshift-logging
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Assurez-vous que les nouvelles valeurs sont dans la carte de configuration fluide:
oc extract configmap/collector-config --confirm
$ oc extract configmap/collector-config --confirm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Exemple fluentd.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow