क्या systemd-journal एक syslog कार्यान्वयन है?


22

मुझे आश्चर्य है कि अगर सिस्टमड-जर्नल syslog प्रोटोकॉल का एक नया कार्यान्वयन है, या बल्कि, यह syslog कार्यान्वयन का उपयोग करता है, जैसे कि rsyslog, syslog-ng

मैं थोड़ा गुदगुदा गया हूं, लेकिन मुझे इसके बारे में कुछ भी समझ में नहीं आया।


यदि आप "syslog प्रोटोकॉल" से स्पष्ट करना चाहते हैं, तो इसका मतलब है कि tcp पर syslog प्राप्त करना। udp 514, या भेजना, या दोनों।
एलेक्स स्ट्रैगीज़

यह भी संभव है कि देखें: unix.stackexchange.com/questions/83173/…
एलेक्स स्ट्रैगीज़

जवाबों:


33

जहां तक ​​प्रोटोकॉल का सवाल है, systemd-journald

  • … एक स्ट्रीम सॉकेट पर श्रोता का नाम है /run/systemd/journal/stdout। systemd कच्चे मानक आउटपुट और सेवाओं की त्रुटियों को जोड़ता है (जो कि डिफ़ॉल्ट रूप से या उस सॉकेट के लिए स्पष्ट रूप से है StandardOutput=journal/ है StandardError=journal)। इस प्रकार यह लाइनफीड्स के साथ समाप्त होने वाली चर लंबाई के मुफ्त-प्रारूप रिकॉर्ड का प्रोटोकॉल प्राप्त करता है।
  • … डेटाग्राम सॉकेट्स पर श्रोता का नाम है /run/systemd/journal/dev-log, जो प्रतीकात्मक रूप से जुड़ा हुआ है /dev/log। यह प्रोटोकॉल प्राप्त करता syslog()है जो जीएनयू सी लाइब्रेरी में लाइब्रेरी फ़ंक्शन, अनुप्रयोगों में लिंक करता है, बोलता है।
  • … एक अन्य सेवा के क्लाइंट होने की कोशिश करता है जिसका नाम डेटाग्राम सॉकेट है /run/systemd/journal/syslog। यह भी प्रोटोकॉल प्राप्त करता है कि syslog()GNU C लाइब्रेरी में लाइब्रेरी फ़ंक्शन बोलता है (हालांकि systemd-journaldवास्तव में इसे बोलने के लिए एक और लाइब्रेरी और दूसरे फ़ंक्शन का उपयोग करता है)।
  • … नाम के एक चरित्र उपकरण से एक पाठक है /dev/kmsg। यह वह प्रोटोकॉल प्राप्त करता है जो लिनक्स कर्नेल बोलता है, जो कि वैरिएबल लंबाई का एक प्रोटोकॉल है, मोटे तौर पर फ्री-फॉर्मेट, रिकॉर्ड जो कि लाइनफीड्स के साथ समाप्त होता है।
  • … एक डेटाग्राम सॉकेट पर श्रोता का नाम है /run/systemd/journal/socket। यह GNU C लाइब्रेरी केस के अनुरूप है, इस एप्लीकेशन में उस लाइब्रेरी से लिंक होता है जो इस सॉकेट के लिए एक निश्चित प्रोटोकॉल बोलती है; सिवाय इसके कि फ़ंक्शन है sd_journal_sendv(), यह एक सिस्टमड सी लाइब्रेरी में है जो एप्लिकेशन से लिंक करता है, और प्रोटोकॉल मानकीकृत नहीं है, लेकिन एक सिस्टम-ओनली प्रोटोकॉल है जिसमें कुंजी = मान जोड़े का एक सरणी शामिल है, और वैकल्पिक रूप से प्रत्येक डेटाग्राम में एक पठनीय फ़ाइल विवरणक है। ।

syslog()GNU C लाइब्रेरी में फ़ंक्शन द्वारा बोला गया प्रोटोकॉल न तो RFC 5424 है और न ही RFC 3164 है, और यह प्रभावी रूप से अपना स्वयं का फैक्टर स्टैंडर्ड है। यह RFC 5424 नहीं है क्योंकि इसमें व्हाट्सएप की सही मात्रा और NIL मानों के साथ वैकल्पिक फ़ील्ड्स को डिज़ाइन करने वाले डैश नहीं हैं। यह RFC 3164 नहीं है क्योंकि इसमें एक के PROCIDबजाय एक फ़ील्ड है HOSTNAME

कुछ साल पहले, आपके सिस्टम का ऑपरेटिंग सिस्टम होता:

  • systemd-journaldउपरोक्त सभी करना (और कुछ चीजें जो प्रोटोकॉल के अनुसार अप्रासंगिक हैं ) और सर्वर होने के नाते कि GNU C लाइब्रेरी और सिस्टमड C लाइब्रेरी अपने संबंधित प्रोटोकॉल का उपयोग करने के लिए बात करते हैं
  • वैकल्पिक syslog या rsyslog या syslog- एनजी प्रोग्राम, जो xinetd/ / inetd-स्टाइल में तब जुड़ा होता है, जब /run/systemd/journal/syslogसॉकेट एक ओपन फाइल डिस्क्रिप्टर के रूप में सॉकेट प्राप्त करने और प्राप्त करने का प्रयास करता है , या इसे खोलने और सुनने के लिए कॉन्फ़िगर की गई एक सीधी सेवा के रूप में /run/systemd/journal/syslog(इसके बराबर) rsyslog) imuxsockमॉड्यूल; और GNU C लाइब्रेरी प्रोटोकॉल बोल रहा हूँ
  • एक वैकल्पिक syslog या rsyslog या syslog- एनजी या udp-syslog- रीड सेवा RFC 5426 ट्रैफ़िक के लिए सुन रहा है

आजकल, आपके सिस्टम का ऑपरेटिंग सिस्टम है:

  • systemd-journald उपरोक्त सभी को करना और जीएनयू सी लाइब्रेरी और सिस्टेम सी लाइब्रेरी के सर्वर से बात करना
  • एक वैकल्पिक rsyslog प्रोग्राम को सॉकेट के बजाय एक सीधी सेवा के रूप में आमंत्रित किया गया है, जो सीधे अपने imjournalमॉड्यूल का उपयोग करके सिस्टम जर्नल फाइलों से बाहर की चीजों को पढ़ता है
  • एक वैकल्पिक syslog या rsyslog या syslog- एनजी या udp-syslog- रीड सेवा RFC 5426 ट्रैफ़िक के लिए सुन रहा है

आगे की पढाई

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.