Текстуални дневник 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= вредност не доказује да се пријавио нови клијент, а поновљена не доказује дупли догађај. Поља партнера и везе одговарају на та питања.

Повезани чланци