Hvad us= betyder i en OpenVPN-loglinje, og hvordan du konverterer det
Feltet us= er mikrosekunddelen af loggens tidsstempel, ikke et session-id. Udfyld det til seks cifre, og læs hele linjen, før du sammenligner ure.
OpenVPNs tekstlog sætter en dato, en tid og en us= værdi på samme linje, og den sidste af de tre er den del, læsere misforstår. Det er mikrosekundkomponenten i det tidsstempel, udskrevet uden nulpolstring. Det er ikke et sessions-id, et brugernavn eller en tæller, og behandler man det som et, bliver en brøkdel af et sekund til en selvsikker forkert konklusion. Konverter det som en brøkdel af det viste sekund, og resten af linjen forbliver læsbar.
Hvad de tre dele af linjen betyder
Datoen og det hele sekund kommer først, og us= bærer resten under et sekund. En værdi på 12345 er tolv tusind tre hundrede og femogfyrre mikrosekunder, hvilket er 0.012345 sekunder, så linjen beskriver 09:15:30.012345, når den udskrevne tid er 09:15:30. Tælleren starter forfra ved hvert nyt sekund, så en senere linje kan udskrive en mindre brøkdel, uden at noget ur løber baglæns. Kun det komplette tidsstempel ordner begivenheder.
2026-11-02 08:41:07 us=4820
Enheden er en milliontedel af et sekund, og seks cifre us= dækker hele området fra 0.000000 til 0.999999. Fem cifre beskriver tiere af millisekunder, mens seks beskriver hundreder af millisekunder op til næsten et helt sekund. Giver en konvertering en brøkdel større end en, har decimalpunktet flyttet sig, og regnestykket er forkert. At gøre det i hånden betyder at dividere det udskrevne heltal med en million og lægge det til det hele sekund.
Polstring er fælden. us=42 er toogfyrre mikrosekunder, skrevet som .000042, ikke .42. Udfyld heltallet til seks pladser til venstre, før du konverterer, og værdien holder op med at ligne en decimalbrøkdel af de cifre, du ser.
Konverter en linje uden lommeregner
Tag det udskrevne sekund som grundlag og behandl us= som brøkdelen. For 09:15:30 med us=12345 er decimalformen 09:15:30.012345; for us=900000 er den 09:15:30.900000. Cifrene efter decimalpunktet er det polstrede heltal, aldrig heltallet divideret med tusind. At skrive sekscifret form først forhindrer de fleste fejl.
Hvis du parser logfiler til tidsstempler, skal du parse datoen, det hele sekund og brøkdelen sammen. En parser, der antager millisekunder, ordner begivenheder forkert med en faktor tusind, og outputtet ser stadig plausibelt ud.
Når feltet mangler i loggen
Mikrosekunddelen hører til tekstlogformatet og vises kun, når detaljerede tidsstempler er aktiveret. I tidsstempelformateringsfunktionen i OpenVPN 2.6 tilføjes den, når det output er tændt, og den gemte værdi ikke er nul. En log uden us= siger derfor intet om uret eller buildet; det betyder normalt, at den konfigurerede detaljegrad er for lav. Tjek konfigurationen, før du giver tidssynkroniseringen skylden.
Indstillingen er let at bekræfte ud fra serverkonfigurationen. Kør kommandoen nedenfor, og læs det tal, den returnerer. Detaljeret tidsstempeloutput vises ved detaljegrad 4, så en lavere værdi forklarer det manglende felt uden nogen anden fejl. Kører du samme konfiguration med --verb 4 viser den feltet, når daemonen genstarter med det niveau.
grep -nE '^[[:space:]]*verb[[:space:]]+[0-9]' /etc/openvpn/server.conf
Højere detaljegrad tilføjer detaljer til loggen; det forbedrer ikke uret. Efter genstarten kan du sammenligne en ny linje med en gammel for at bekræfte, at formatet er ændret, og sænke niveauet igen, når spørgsmålet er besvaret.
Hvad seks cifre ikke beviser
Seks cifre beskriver opløsning, og opløsning siger intet om, hvorvidt to værter er enige om tiden. En klient og en server kan begge udskrive mikrosekunder, mens deres ure afviger med sekunder. Når du korrelerer begivenheder på tværs af maskiner, skal du notere tidszonen og enhver kendt forskydning og foretrække et felt, der navngiver peer eller session, frem for noget tidsstempel. To linjer, der deler en brøkdel, er ikke nødvendigvis den samme forbindelse.
En indsamler kan stemple hver linje ved ankomsten, hvilket tilføjer et andet tidsstempel, der hører til indsamleren og ikke til OpenVPN. Identificer, hvilket du læser, før du sammenligner dem, og gem den rå linje, så sammenligningen kan gentages.
En frisk us=-værdi beviser ikke, at en ny klient loggede ind, og en gentaget beviser ikke en dobbelt begivenhed. Peer- og forbindelsesfelterne besvarer de spørgsmål.