Un choix de journalisation répond à trois questions : quel processus a produit un enregistrement, où cet enregistrement atterrit, et combien de temps il survit. OpenVPN peut écrire dans un fichier, remettre les messages au journal système, ou les laisser à ce que le gestionnaire de service capture, et ce ne sont pas trois copies d’un même flux. Chaque choix change qui possède la rotation, quel utilisateur peut lire le résultat et ce qui se passe au démarrage. Réglez ces réponses avant un incident, car ensuite vous héritez de ce qui a été configuré.

Ce que le démon fait réellement de la directive

Les directives ne sont pas des abstractions ; chacune décide où le processus écrit ses messages. log /path ouvre ce fichier, log-append /path l’ouvre en ajout, et syslog remet les messages au journal système local via sa socket. Sans aucune d’elles, la sortie va vers la sortie standard, et le gestionnaire de service décide de la suite. Lisez l’unité effective et le profil ensemble avant de conclure que le démon ignore votre configuration.

Ce dernier cas est le plus courant sur une installation empaquetée, et il explique pourquoi deux administrateurs ne sont pas d’accord sur l’emplacement du journal. L’un lit le journal de l’unité, l’autre un fichier que le démon n’a jamais écrit.

Vérifiez la configuration en cours plutôt que le fichier sur disque. Une surcharge d’unité de type drop-in ou un fichier d’environnement peut changer la directive effective sans toucher au profil que vous lisez.

log tronque, log-append non

log tronque un fichier existant dès que la directive prend effet, si bien qu’un redémarrage efface les preuves antérieures. log-append garde ce qui s’y trouve et ajoute à la suite. Aucune des deux options ne fait de rotation, et aucune ne rouvre le fichier plus tard d’elle-même, c’est pourquoi la rotation demande une coopération.

Si la rotation renomme le fichier alors que le démon continue d’écrire dans l’ancien descripteur, le nouveau fichier reste vide et l’espace disque continue de grimper dans le fichier renommé. Signalez au processus de rouvrir, ou faites la rotation avec une stratégie copie-troncature et acceptez la fenêtre de copie.

Le répertoire, le propriétaire et les permissions font partie de la conception. Le démon peut tourner en tant qu’utilisateur non privilégié après le démarrage, et un répertoire créé par root à l’installation peut alors ne pas être inscriptible. Préparez-le via l’empaquetage ou le processus de déploiement au lieu de corriger les permissions pendant un incident.

Le gestionnaire de service garde une seconde copie

systemd capture la sortie standard et la sortie d’erreur par défaut, donc une unité sans redirection explicite possède déjà un journal. Ajouter une directive de fichier donne deux flux ayant des rétentions, des lecteurs et des horodatages différents.

Ce n’est pas automatiquement faux, mais cela doit être une décision. Gardez l’enregistrement de démarrage dans le journal, car les échecs survenus avant que le fichier configuré n’existe n’apparaissent nulle part ailleurs. Faites ensuite du fichier la source de référence pour les événements de régime établi, et dites-le dans le runbook. Deux flux de référence signifient deux réponses à chaque question.

Confirmez le choix par un test qui échoue exprès. Démarrez le démon avec un certificat illisible et regardez quel flux enregistre l’erreur.

La verbosité n’est pas la même chose qu’un détail utilisable

Un niveau de verb plus élevé ajoute des lignes, et au-delà d’un certain point des lignes que personne ne lit. Le niveau 3 est un régime établi raisonnable pour la plupart des déploiements, tandis que le niveau 4 et au-delà conviennent à une investigation bornée avec une question connue. La suppression des répétitions réduit le bruit, mais elle ne doit pas cacher la fréquence à laquelle un événement se reproduit. Fixez le niveau que vous pouvez tenir, et ne l’augmentez que pour une investigation nommée et bornée.

Gardez l’identité de l’instance et les horodatages dans l’enregistrement. Une reconnexion ressemble exactement à une première connexion quand le fichier est alimenté depuis des mois et que le nom d’instance manque.

Faites attention à ce qui d’autre atterrit dans ce fichier. La sortie redirigée peut contenir du texte venu de scripts appelés, et un utilitaire qui renvoie son environnement inscrit des identifiants et des chemins de clés dans un journal lisible. Traitez l’accès au journal comme une décision de sécurité, même lorsque le démon lui-même n’imprime rien de sensible.

Rotation, rétention et les signaux qui rechargent

Décidez la rétention avec la personne qui possède le disque, et fixez-la avant que le volume ne décide pour vous. Un signal de rechargement n’est pas une commande de maintenance du journal : envoyer le mauvais redémarre le tunnel et déconnecte tous les utilisateurs. Écrivez la procédure de réouverture à côté de la règle de rotation pour que les deux ne divergent pas.

Le résultat devrait être un service qu’un opérateur peut décrire : un flux de référence, chaque événement placé dans le cycle de vie, et un enregistrement obtenable sans collecter tous les fichiers porteurs de secrets de l’hôte. Cette description est le test d’acceptation de la conception, et elle coûte peu à vérifier avant le prochain incident.

Articles similaires