आर्क लिनक्स में `लकड़हारा` अपने संदेशों को कहाँ भेजता है?


18

loggerआदेश syslog के मार्फत एक प्रविष्टि, जो आमतौर पर जैसे कुछ फाइल करने के लिए है कि रेखा डालता लॉग /var/log/messages

यदि मैं आर्क लिनक्स में प्रलेखन को सही ढंग से समझता हूं तो सभी लॉगिंग सिस्टमड के माध्यम से की जाती है, लेकिन मैं loggerप्रविष्टियों का उपयोग नहीं कर सकता journalctl

  • loggerआर्क लिनक्स में दिए गए संदेश के साथ वास्तव में क्या होता है ?
  • लॉग प्रविष्टि कहाँ संग्रहीत की जाती है? (एक त्वरित सुझाव देता है /var/log/journal/*/system.journal।)
  • मैं इस लॉग को कैसे एक्सेस कर सकता हूं? (क्या मुझे इसके लिए किसी विशेष विकल्प की आवश्यकता है journalctl?)

जवाबों:


15

क्योंकि लॉग संदेश कहीं भी जर्नल में दिखाई नहीं देते हैं , मुझे संदेह है कि आपके पास सही तरीके से सेट अप करने के लिए जर्नल अग्रेषित करने के लिए syslog नहीं है, और संदेश बस गिराए जा रहे हैं। चूंकि आप आर्क पर हैं, इसलिए इसे ठीक करना आसान है। सुनिश्चित करें कि syslog-ngपैकेज स्थापित है:

pacman -S syslog-ng

फिर यह सुनिश्चित करें कि यह बूट पर सक्षम है:

systemctl enable syslog-ng

अंत में, चूंकि सेवाओं को सक्षम करना स्वचालित रूप से उन्हें शुरू नहीं करता है, सेवा शुरू करें:

systemctl start syslog-ng

देखें इस आर्क विकी पेज जानकारी के लिए।

यहाँ कुछ पृष्ठभूमि है कि यह समस्या क्यों होती है:

शास्त्रीय syslog में प्रवेश करने का एक निश्चित तरीका है, और नई systemd जर्नल में प्रवेश करने का एक निश्चित तरीका है। ये असंगत हैं; syslog का समर्थन करने वाले अनुप्रयोगों को पत्रिका का समर्थन करने के लिए जादुई रूप से नहीं किया जा सकता है - लेखक को इस सुविधा को स्पष्ट रूप से लागू करना चाहिए। सिस्टम जर्नल का समर्थन करने वाले एप्लिकेशन को आमतौर पर सिस्टम सिस्टम पर चलने के दौरान "देशी एपीआई" का समर्थन करने के रूप में संदर्भित किया जाता है।

चूँकि syslog API और journald API अलग-अलग हैं, इसलिए जो एप्लिकेशन API API का समर्थन नहीं करते हैं उनके पास बस उनके लॉग मैसेज होंगे। आपके मामले में यही हो रहा है।

syslog-ngपैकेज की नौकरी journald API कॉल में syslog API कॉल अनुवाद करने के लिए है। इस तरह, syslog संदेश अंततः पत्रिका में बनाते हैं।


syslog-ngस्थापित किया गया था लेकिन सक्षम नहीं था, मैंने मान लिया कि जर्नल ने इसे पूरी तरह से बदल दिया है। क्या loggerकेवल सिसलॉग से बात करने में सक्षम है? उसके बाद जर्नल लॉग करने का सही तरीका क्या है?
1

@michas मैंने एक खंड जोड़ा है जो उम्मीद
जताएगा

"..] syslog एपीआई कॉल को जर्नल एपीआई कॉल में अनुवाद करने के लिए" - जहां तक ​​मैं देखता हूं, अनुवाद केवल दूसरे तरीके से काम करता है: मुझे सभी संदेश / var / log / लेकिन केवल journalctl में जर्नल वाले मिलते हैं।
माईस

@michas जो कुछ ऐसा हो सकता है जो कि जर्नल करता है, मुझे यकीन नहीं है। syslog-ngआगे की ओर संदेश sdlog को journald को संबोधित किया।
स्ट्रगल करें

1
क्या logger foobar;journalctl|grep foobarआपके सिस्टम में प्रविष्टि दर्ज है?
माइकस

0

कुछ डेमॉन /var/log/आर्क लिनक्स में लॉग नहीं लिख रहे थे और syslog-ngमेरे द्वारा देखे गए अन्य उत्तरों की तुलना में कॉन्फ़िगरेशन अलग है।

सामान्य syslog-ng.serviceसेवा नहीं है, यह वास्तव में नाम के syslog-ng@default.serviceबजाय है।

यह काम नहीं करेगा:

# systemctl enable syslog-ng
Failed to enable unit: Unit file syslog-ng.service does not exist.

मुझे इसे आर्क विकी के अनुसार थोड़ा अलग करना होगा :

# systemctl start syslog-ng@default.service
# systemctl enable syslog-ng@default.service
Created symlink /etc/systemd/system/multi-user.target.wants/syslog-ng@default.service → /usr/lib/systemd/system/syslog-ng@.service.
#
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.