Το αρχείο καταγραφής κειμένου του 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= τιμή δεν αποδεικνύει ότι συνδέθηκε νέος πελάτης, και μια επαναλαμβανόμενη δεν αποδεικνύει διπλό γεγονός. Τα πεδία ομοτίμου και σύνδεσης απαντούν σε αυτές τις ερωτήσεις.

Σχετικά άρθρα