Текстовият лог на 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= не доказва, че нов клиент е влязъл, а повторено не доказва дублирано събитие. Полетата за партньор и връзка отговарят на тези въпроси.

Подобни статии