Le journal texte d’OpenVPN place une date, une heure et une us= valeur sur la même ligne, et la dernière des trois est la partie que les lecteurs interprètent mal. C’est la composante microsecondes de cet horodatage, imprimée sans remplissage par des zéros. Ce n’est pas un identifiant de session, un nom d’utilisateur ni un compteur, et le traiter comme tel transforme une fraction de seconde en conclusion erronée et assurée. Convertissez-le comme une fraction de la seconde affichée et le reste de la ligne reste lisible.

Ce que signifient les trois parties de la ligne

La date et la seconde entière viennent d’abord, et us= porte le reste sous une seconde. Une valeur de 12345 correspond à douze mille trois cent quarante-cinq microsecondes, soit 0.012345 secondes, donc la ligne décrit 09:15:30.012345 lorsque l’heure imprimée est 09:15:30. Le compteur repart à chaque nouvelle seconde, ainsi une ligne ultérieure peut imprimer une fraction plus petite sans qu’aucune horloge ne recule. Seul l’horodatage complet ordonne les événements.

2026-11-02 08:41:07 us=4820

L’unité est un millionième de seconde, et six chiffres de us= couvrent toute la plage de 0.000000 à 0.999999. Cinq chiffres décrivent des dizaines de millisecondes, tandis que six décrivent des centaines de millisecondes jusqu’à presque une seconde entière. Si une conversion produit une fraction supérieure à un, la virgule décimale a bougé et l’arithmétique est fausse. Le faire à la main signifie diviser l’entier imprimé par un million et l’ajouter à la seconde entière.

Le remplissage est le piège. us=42 correspond à quarante-deux microsecondes, écrites .000042, et non .42. Complétez l’entier sur six positions à gauche avant de convertir, et la valeur cesse de ressembler à une fraction décimale des chiffres que vous voyez.

Convertir une ligne sans calculatrice

Prenez la seconde imprimée comme base et traitez us= comme la fraction. Pour 09:15:30 avec us=12345 la forme décimale est 09:15:30.012345 ; pour us=900000 c’est 09:15:30.900000. Les chiffres après le point décimal sont l’entier complété, jamais l’entier divisé par mille. Écrire d’abord la forme à six chiffres évite la plupart des erreurs.

Si vous analysez des journaux en horodatages, analysez la date, la seconde entière et la fraction ensemble. Un analyseur qui suppose des millisecondes ordonnera les événements de travers d’un facteur mille, et la sortie paraît toujours plausible.

Quand le champ manque dans le journal

La partie microsecondes appartient au format de journal texte et n’apparaît que lorsque les horodatages détaillés sont activés. Dans le formateur d’horodatage d’OpenVPN 2.6, elle est ajoutée lorsque cette sortie est active et que la valeur stockée n’est pas nulle. Un journal sans us= ne dit donc rien de l’horloge ni de la compilation ; il signifie généralement que la verbosité configurée est trop basse. Vérifiez la configuration avant d’accuser la synchronisation de l’heure.

Le réglage se confirme facilement depuis la configuration du serveur. Exécutez la commande ci-dessous et lisez le nombre qu’elle renvoie. La sortie détaillée des horodatages apparaît avec la verbosité 4, donc une valeur plus basse explique le champ absent sans autre défaut. Exécuter la même configuration avec --verb 4 montre le champ dès que le démon redémarre à ce niveau.

grep -nE '^[[:space:]]*verb[[:space:]]+[0-9]' /etc/openvpn/server.conf

Augmenter la verbosité ajoute des détails au journal ; cela n’améliore pas l’horloge. Après le redémarrage, comparez une nouvelle ligne avec une ancienne pour confirmer que le format a changé, et baissez à nouveau le niveau une fois la question résolue.

Ce que six chiffres ne prouvent pas

Six chiffres décrivent la résolution, et la résolution ne dit rien sur l’accord de deux hôtes au sujet de l’heure. Un client et un serveur peuvent tous deux imprimer des microsecondes alors que leurs horloges diffèrent de plusieurs secondes. Lorsque vous corrélez des événements entre machines, notez le fuseau horaire et tout décalage connu, et préférez un champ qui nomme le pair ou la session à tout horodatage. Deux lignes qui partagent une fraction ne sont pas nécessairement la même connexion.

Un collecteur peut estampiller chaque ligne à son arrivée, ce qui ajoute un second horodatage qui appartient au collecteur et non à OpenVPN. Identifiez celui que vous lisez avant de les comparer, et conservez la ligne brute pour que la comparaison puisse être refaite.

Une valeur us= fraîche ne prouve pas qu’un nouveau client s’est connecté, et une valeur répétée ne prouve pas un événement en double. Les champs de pair et de connexion répondent à ces questions.

Articles similaires