Co znamená us= v řádku logu OpenVPN a jak jej převést
Pole us= je mikrosekundová část časové značky logu, nikoli ID relace. Doplňte jej na šest číslic a přečtěte celý řádek, než začnete porovnávat hodiny.
Textový log OpenVPN uvádí datum, čas a us= hodnotu na stejném řádku a poslední ze tří je část, kterou čtenáři chápou špatně. Je to mikrosekundová složka této časové značky, vytištěná bez doplnění nulami. Není to identifikátor relace, uživatelské jméno ani počítadlo, a kdo jej tak bere, promění zlomek sekundy v sebejistý chybný závěr. Převeďte jej jako zlomek zobrazené sekundy a zbytek řádku zůstane čitelný.
Co znamenají tři části řádku
Datum a celá sekunda přicházejí první a us= nese zbytek pod jednou sekundou. Hodnota 12345 je dvanáct tisíc tři sta čtyřicet pět mikrosekund, tedy 0.012345 sekundy, takže řádek popisuje 09:15:30.012345, když je vytištěný čas 09:15:30. Počítadlo začíná znovu s každou novou sekundou, takže pozdější řádek může vytisknout menší zlomek, aniž by jakékoli hodiny běžely zpět. Události řadí jen úplná časová značka.
2026-11-02 08:41:07 us=4820
Jednotkou je jedna miliontina sekundy a šest číslic us= pokrývá celý rozsah od 0.000000 do 0.999999. Pět číslic popisuje desítky milisekund, zatímco šest popisuje stovky milisekund až do téměř celé sekundy. Pokud převod dá zlomek větší než jedna, desetinná čárka se posunula a aritmetika je špatná. Ruční postup znamená vydělit vytištěné celé číslo milionem a přičíst je k celé sekundě.
Doplnění je past. us=42 je čtyřicet dva mikrosekund, zapsáno jako .000042, nikoli .42. Před převodem doplňte celé číslo zleva na šest míst a hodnota přestane vypadat jako desetinný zlomek číslic, které vidíte.
Převod řádku bez kalkulačky
Vezměte vytištěnou sekundu jako základ a berte us= jako zlomek. Pro 09:15:30 s us=12345 je desetinný tvar 09:15:30.012345; pro us=900000 je to 09:15:30.900000. Číslice za desetinnou tečkou jsou doplněné celé číslo, nikdy celé číslo dělené tisícem. Zapsání šesticyfrového tvaru jako prvního zabrání většině chyb.
Pokud rozkládáte logy na časové značky, rozkládejte datum, celou sekundu a zlomek společně. Parser, který předpokládá milisekundy, seřadí události špatně tisíckrát, a výstup přesto vypadá věrohodně.
Když v logu pole chybí
Mikrosekundová část patří k textovému formátu logu a objevuje se jen tehdy, když jsou zapnuté podrobné časové značky. V formátovači časových značek OpenVPN 2.6 se přidává, když je tento výstup zapnutý a uložená hodnota není nula. Log bez us= tedy neříká nic o hodinách ani o sestavení; obvykle znamená, že nastavená podrobnost je příliš nízká. Zkontrolujte konfiguraci, než obviníte synchronizaci času.
Nastavení lze snadno ověřit ze serverové konfigurace. Spusťte níže uvedený příkaz a přečtěte číslo, které vrací. Podrobný výstup časových značek se objevuje při podrobnosti 4, takže nižší hodnota vysvětluje chybějící pole bez jiné závady. Spuštění stejné konfigurace s --verb 4 ukáže pole, jakmile se démon restartuje s touto úrovní.
grep -nE '^[[:space:]]*verb[[:space:]]+[0-9]' /etc/openvpn/server.conf
Zvýšení podrobnosti přidává do logu detaily; hodiny to nezlepšuje. Po restartu porovnejte nový řádek se starým, abyste potvrdili, že se formát změnil, a až je otázka zodpovězena, úroveň zase snižte.
Co šest číslic nedokazuje
Šest číslic popisuje rozlišení a rozlišení neříká nic o tom, zda se dva hostitelé shodnou na čase. Klient i server mohou tisknout mikrosekundy, zatímco se jejich hodiny rozcházejí o sekundy. Když korelujete události mezi stroji, poznamenejte časové pásmo a jakýkoli známý posun a dejte přednost poli, které pojmenovává protějšek nebo relaci, před jakoukoli časovou značkou. Dva řádky se stejným zlomkem nemusí být stejné spojení.
Sběrač může každý řádek orazítkovat při příchodu, což přidá druhou časovou značku, která patří sběrači, nikoli OpenVPN. Určete, kterou čtete, než je porovnáte, a uchovejte surový řádek, aby se srovnání dalo zopakovat.
Nová us= hodnota nedokazuje, že se přihlásil nový klient, a opakovaná nedokazuje duplicitní událost. Pole protějšku a spojení na tyto otázky odpovídají.