Што азначае us= у радку журнала OpenVPN і як яго пераўтварыць
Поле us= — гэта мікрасекундная частка адзнакі часу журнала, а не ідэнтыфікатар сеанса. Дапоўніце яго да шасці лічбаў і прачытайце ўвесь радок, перш чым параўноўваць гадзіннікі.
Тэкставы журнал OpenVPN змяшчае дату, час і us= значэнне ў адным радку, і апошняя з трох — гэта частка, якую чытачы разумеюць няправільна. Гэта мікрасекундны кампанент гэтай адзнакі часу, надрукаваны без дапаўнення нулямі. Гэта не ідэнтыфікатар сеанса, не імя карыстальніка і не лічыльнік, і калі прымаць яго за такое, доля секунды ператвараецца ва ўпэўненую няправільную выснову. Пераўтварыце яго як долю адлюстраванай секунды, і астатняя частка радка застанецца чытальнай.
Што азначаюць тры часткі радка
Дата і цэлая секунда ідуць першымі, а us= нясе астатак ніжэй за адну секунду. Значэнне 12345 — гэта дванаццаць тысяч трыста сорак пяць мікрасекунд, або 0.012345 секунды, таму радок апісвае 09:15:30.012345, калі надрукаваны час 09:15:30. Лічыльнік пачынаецца нанова з кожнай новай секундай, таму пазнейшы радок можа надрукаваць драбнейшую долю, і ніводзін гадзіннік не ідзе назад. Толькі поўная адзнака часу ўпарадкоўвае падзеі.
2026-11-02 08:41:07 us=4820
Адзінка — гэта адна мільённая секунды, і шэсць лічбаў us= ахопліваюць увесь дыяпазон ад 0.000000 да 0.999999. Пяць лічбаў апісваюць дзясяткі мілісекунд, а шэсць — сотні мілісекунд аж да амаль поўнай секунды. Калі пераўтварэнне дае долю большую за адзінку, дзесятковы знак з’ехаў і арыфметыка няправільная. Зрабіць гэта ўручную значыць падзяліць надрукаваны цэлы лік на мільён і дадаць яго да цэлай секунды.
Дапаўненне — гэта пастка. us=42 — гэта сорак дзве мікрасекунды, запісаныя як .000042, а не .42. Дапоўніце цэлы лік да шасці знакаў злева перад пераўтварэннем, і значэнне перастане выглядаць як дзесятковая доля бачных лічбаў.
Пераўтварэнне радка без калькулятара
Вазьміце надрукаваную секунду за аснову і разглядайце us= як долю. Для 09:15:30 з us=12345 дзесятковая форма — 09:15:30.012345; для us=900000 яна — 09:15:30.900000. Лічбы пасля дзесятковага знака — гэта дапоўнены цэлы лік, а не цэлы лік, падзелены на тысячу. Калі спачатку запісаць шасцізначную форму, большасць памылак знікне.
Калі вы разбіраеце журналы на адзнакі часу, разбірайце дату, цэлую секунду і долю разам. Парсер, які мяркуе мілісекунды, упарадкуе падзеі няправільна ў тысячу разоў, а вынік усё яшчэ выглядае праўдападобна.
Калі поле адсутнічае ў журнале
Мікрасекундная частка належыць тэкставаму фармату журнала і з’яўляецца толькі пры ўключаных падрабязных адзнаках часу. У фарматавальніку адзнак часу OpenVPN 2.6 яна дадаецца, калі гэты вывад уключаны, а захаванае значэнне не нулявое. Таму журнал без us= нічога не кажа пра гадзіннік ці зборку; звычайна гэта значыць, што наладжаная шматслоўнасць занадта нізкая. Праверце канфігурацыю, перш чым вінаваціць сінхранізацыю часу.
Наладу лёгка пацвердзіць з канфігурацыі сервера. Выканайце каманду ніжэй і прачытайце лік, які яна вяртае. Падрабязны вывад адзнак часу з’яўляецца пры ўзроўні шматслоўнасці 4, таму меншае значэнне тлумачыць адсутнае поле без любой іншай няспраўнасці. Запуск той жа канфігурацыі з --verb 4 паказвае поле, як толькі дэман перазапусціцца з гэтым узроўнем.
grep -nE '^[[:space:]]*verb[[:space:]]+[0-9]' /etc/openvpn/server.conf
Павышэнне шматслоўнасці дадае падрабязнасці ў журнал; яно не паляпшае гадзіннік. Пасля перазапуску параўнайце новы радок са старым, каб пераканацца, што фармат змяніўся, і зноў панізьце ўзровень, калі пытанне будзе вырашана.
Што не даказваюць шэсць лічбаў
Шэсць лічбаў апісваюць раздзяленне, а раздзяленне нічога не кажа пра тое, ці згодны два хасты наконт часу. Кліент і сервер могуць абодва друкаваць мікрасекунды, хоць іх гадзіннікі рознасцяцца на секунды. Калі вы суадносіце падзеі паміж машынамі, запішыце часовы пояс і любы вядомы зрух і аддавайце перавагу полю, якое называе партнёра або сеанс, перад любой адзнакай часу. Два радкі з аднолькавай доляй не абавязкова з’яўляюцца адным злучэннем.
Зборшчык можа ставіць адзнаку на кожным радку пры паступленні, што дадае другую адзнаку часу, якая належыць зборшчыку, а не OpenVPN. Вызначце, якую з іх вы чытаеце, перш чым параўноўваць, і захоўвайце сыры радок, каб параўнанне можна было паўтарыць.
Новае us= значэнне не даказвае, што ўвайшоў новы кліент, а паўторанае не даказвае дублікат падзеі. Палі партнёра і злучэння адказваюць на гэтыя пытанні.