6.9. Configuration de systemd-journald et Fluentd
Parce que Fluentd lit à partir du journal, et que les paramètres par défaut du journal sont très bas, les entrées du journal peuvent être perdues parce que le journal ne peut pas suivre le taux d'enregistrement des services du système.
Nous recommandons de définir RateLimitIntervalSec=30s
et RateLimitBurst=10000
(ou plus si nécessaire) pour éviter que le journal ne perde des entrées.
6.9.1. Configurer systemd-journald pour OpenShift Logging
Au fur et à mesure que vous développez votre projet, l'environnement de journalisation par défaut peut nécessiter quelques ajustements.
Par exemple, si vous manquez de logs, vous devrez peut-être augmenter les limites de taux pour journald. Vous pouvez ajuster le nombre de messages à conserver pendant une période de temps spécifiée pour s'assurer que OpenShift Logging n'utilise pas de ressources excessives sans laisser tomber les journaux.
Vous pouvez également déterminer si vous souhaitez que les journaux soient compressés, combien de temps ils doivent être conservés, comment ou si les journaux sont stockés, ainsi que d'autres paramètres.
Procédure
Créez un fichier de configuration Butane,
40-worker-custom-journald.bu
, qui inclut un fichier/etc/systemd/journald.conf
avec les paramètres requis.NoteSee "Creating machine configs with Butane" for information about Butane.
variant: openshift version: 4.12.0 metadata: name: 40-worker-custom-journald labels: machineconfiguration.openshift.io/role: "worker" storage: files: - path: /etc/systemd/journald.conf mode: 0644 1 overwrite: true contents: inline: | Compress=yes 2 ForwardToConsole=no 3 ForwardToSyslog=no MaxRetentionSec=1month 4 RateLimitBurst=10000 5 RateLimitIntervalSec=30s Storage=persistent 6 SyncIntervalSec=1s 7 SystemMaxUse=8G 8 SystemKeepFree=20% 9 SystemMaxFileSize=10M 10
- 1
- Définissez les autorisations pour le fichier
journal.conf
. Il est recommandé de définir les autorisations pour0644
. - 2
- Indiquez si vous souhaitez que les journaux soient compressés avant d'être écrits sur le système de fichiers. Indiquez
yes
pour compresser le message ouno
pour ne pas le compresser. La valeur par défaut estyes
. - 3
- Permet de déterminer s'il convient de transmettre les messages du journal. La valeur par défaut est
no
pour chaque message. Spécifier :-
ForwardToConsole
pour transmettre les journaux à la console du système. -
ForwardToKsmg
pour acheminer les journaux vers le tampon de journaux du noyau. -
ForwardToSyslog
à transmettre à un démon syslog. -
ForwardToWall
pour transférer les messages en tant que messages muraux à tous les utilisateurs connectés.
-
- 4
- Indiquez la durée maximale de stockage des écritures de journal. Entrez un nombre pour spécifier les secondes. Ou indiquez une unité : \N- "year\N", \N- "month\N", \N- "week\N", \N- "day\N", \N- "h\N" ou \N- "m\N". Entrez
0
pour désactiver. La valeur par défaut est1month
. - 5
- Configurer la limitation du débit. Si le nombre de journaux reçus est supérieur à celui spécifié dans
RateLimitBurst
pendant l'intervalle de temps défini parRateLimitIntervalSec
, tous les messages supplémentaires dans l'intervalle sont abandonnés jusqu'à ce que l'intervalle soit écoulé. Il est recommandé de définirRateLimitIntervalSec=30s
etRateLimitBurst=10000
, qui sont les valeurs par défaut. - 6
- Spécifiez comment les journaux sont stockés. La valeur par défaut est
persistent
:-
volatile
pour stocker les journaux en mémoire à l'adresse/var/log/journal/
. -
persistent
pour stocker les journaux sur le disque à l'adresse/var/log/journal/
. systemd crée le répertoire s'il n'existe pas. -
auto
pour stocker les journaux dans/var/log/journal/
si le répertoire existe. S'il n'existe pas, systemd stocke temporairement les journaux dans/run/systemd/journal
. -
none
pour ne pas stocker les journaux. systemd supprime tous les journaux.
-
- 7
- Spécifiez le délai d'attente avant de synchroniser les fichiers journaux sur le disque pour les journaux ERR, WARNING, NOTICE, INFO, et DEBUG. systemd synchronise immédiatement après avoir reçu un journal CRIT, ALERT, ou EMERG. La valeur par défaut est
1s
. - 8
- Spécifiez la taille maximale que le journal peut utiliser. La valeur par défaut est
8G
. - 9
- Spécifiez l'espace disque que systemd doit laisser libre. La valeur par défaut est
20%
. - 10
- Spécifiez la taille maximale des fichiers journaux individuels stockés de manière persistante sur
/var/log/journal
. La valeur par défaut est10M
.NoteSi vous supprimez la limite de débit, il se peut que vous constatiez une augmentation de l'utilisation de l'unité centrale sur les démons de journalisation du système, car ils traitent les messages qui auraient été précédemment limités.
Pour plus d'informations sur les paramètres de systemd, voir https://www.freedesktop.org/software/systemd/man/journald.conf.html. Les paramètres par défaut énumérés sur cette page peuvent ne pas s'appliquer à OpenShift Container Platform.
Utilisez Butane pour générer un fichier objet
MachineConfig
,40-worker-custom-journald.yaml
, contenant la configuration à fournir aux nœuds :$ butane 40-worker-custom-journald.bu -o 40-worker-custom-journald.yaml
Appliquer la configuration de la machine. Par exemple :
$ oc apply -f 40-worker-custom-journald.yaml
Le contrôleur détecte le nouvel objet
MachineConfig
et génère une nouvelle versionrendered-worker-<hash>
.Contrôler l'état du déploiement de la nouvelle configuration rendue à chaque nœud :
$ oc describe machineconfigpool/worker
Exemple de sortie
Name: worker Namespace: Labels: machineconfiguration.openshift.io/mco-built-in= Annotations: <none> API Version: machineconfiguration.openshift.io/v1 Kind: MachineConfigPool ... Conditions: Message: Reason: All nodes are updating to rendered-worker-913514517bcea7c93bd446f4830bc64e