OpenVPN लॉग ओळीतील us= चा अर्थ काय आणि ते कसे रूपांतरित करावे
us= फील्ड लॉग टाइमस्टॅम्पचा मायक्रोसेकंद भाग आहे, सेशन आयडी नाही। तो सहा अंकांपर्यंत भरा आणि घड्याळांची तुलना करण्यापूर्वी संपूर्ण ओळ वाचा।
OpenVPN चा मजकूर लॉग एक तारीख, एक वेळ आणि एक us= मूल्य एकाच ओळीत लिहितो, आणि तीनपैकी शेवटचा भाग वाचक चुकीचा समजतात। तो त्या टाइमस्टॅम्पचा मायक्रोसेकंद घटक आहे, शून्यांनी न भरता छापला जातो। तो सेशन ओळखकर्ता, वापरकर्तानाव किंवा काउंटर नाही, आणि तसे मानल्यास सेकंदाचा एक भाग आत्मविश्वासपूर्ण चुकीच्या निष्कर्षात बदलतो। त्याचे दर्शविलेल्या सेकंदाचा भाग म्हणून रूपांतर करा आणि उर्वरित ओळ वाचनीय राहते।
ओळीच्या तीन भागांचा अर्थ
तारीख आणि पूर्ण सेकंद आधी येतात, आणि us= एका सेकंदाखालील उर्वरित भाग वाहतो। 12345 हे मूल्य बारा हजार तीनशे पंचेचाळीस मायक्रोसेकंद आहे, म्हणजे 0.012345 सेकंद, त्यामुळे छापलेली वेळ 09:15:30 असताना ओळ 09:15:30.012345 वर्णन करते। काउंटर प्रत्येक नव्या सेकंदासह पुन्हा सुरू होतो, त्यामुळे पुढील ओळ कोणतेही घड्याळ मागे न जाता लहान भाग छापू शकते। फक्त पूर्ण टाइमस्टॅम्प घटनांचा क्रम लावतो।
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= मूल्य सिद्ध करत नाही की नवीन क्लायंट लॉग इन झाला, आणि पुनरावृत्त मूल्य दुहेरी घटना सिद्ध करत नाही। पीअर आणि कनेक्शन फील्ड या प्रश्नांची उत्तरे देतात।