rsyslog लॉगिंग नहीं है


17

यह एक अजीब मुद्दा है।

मैं आरएचईएल 7 वीएम पर क्रोनी / एनटीपी सेवाओं का परीक्षण कर रहा था और अपने समय के साथ-साथ मेजबान के भी रीसेट कर रहा था। एक बार जब मैं इससे संतुष्ट हो गया तो मैंने जाँच की/var/log/messages और महसूस किया कि इसे थोड़ी देर में नहीं बदला गया था।

अब कोई बात नहीं मैं कुछ भी नहीं लॉग इन कर रहा हूँ सिवाय इसके कि जब मैं स्वयं rsyslog सेवा को पुनः आरंभ करता हूँ; जब मुझे यह मिलता है:

Apr 15 13:59:43 mymachine1 rsyslogd: [origin software="rsyslogd" swVersion="7.4.2" x-pid="2847" x-info="http://www.rsyslog.com"] exiting on signal 2.

Apr 15 13:59:59 mymachine1 rsyslogd: [origin software="rsyslogd" swVersion="7.4.2" x-pid="2853" x-info="http://www.rsyslog.com"] start

Apr 15 14:00:11 mymachine1 rsyslogd-3000: sd_journal_get_cursor() failed: 'Cannot assign requested address'

logger testलॉग न करने जैसी चीजों की कोशिश करना, rsyslog के स्वयं के संदेशों के अलावा और कुछ नहीं लगता है। जब मुझे मैन्युअल -n -N1रूप से rsyslog तर्क के रूप में मिलता है:

rsyslogd: version 7.4.2, config validation run (level 1), master config /etc/rsyslog.conf

rsyslogd: End of config validation run. Bye

यह सिर्फ ऐसा लगता है जैसे कुछ कारण के लिए कुछ भी rsyslog से लॉग इन नहीं कर सकता है। और एक ही होस्ट पर एक दूसरा समान वीएम (जो बार-बार ntp को अक्षम करने के एक ही सर्कल के माध्यम से नहीं गया था, एक ही rsyslog.conf फ़ाइल लॉग के साथ तारीख ठीक है और कई बार रिबूट किया)।

इस बिंदु पर दिनांक / समय सही है, क्रोनी सक्षम और चल रहा है, और मैंने कई बार रिबूट किया है - 30 सेकंड के कर्नेल संदेशों के बाद और कुछ भी फिर से लॉग इन नहीं होता है।

विचार?


मैंने पहले RHEL7 का उपयोग नहीं किया है, लेकिन मैं /etc/rsyslog.confऔर /etc/rsyslog.dनिर्देशिकाओं की जाँच करूँगा । ऐसा लगता है कि आपके पास किसी विशेष लॉग फ़ाइल में रूट करने के लिए कॉन्फ़िगर किया गया कुछ भी नहीं है। आप EMERGप्राथमिकता के साथ एक syslog संदेश निर्दिष्ट करने की कोशिश कर सकते हैं, यह देखने के लिए कि क्या होता है। उदाहरण:logger -p EMERG not really an emergency
ब्राचली

1
/etc/rsyslog.conf में यह शामिल है: * .info; mail.none;? protepriv.none; cron.none; local0.none / var / log / संदेश जैसे कि /etc/rsyslog.d में फ़ाइलों के लिए, सुनो.conf, यह : $ SystemLogSocketName / run / systemd / journal / syslog और rate-unlimit.conf इसे: $ SystemLogRateLimitInterval 0 $ SystemLogRateLimitBurst = EMERG प्राथमिकता के लिए, यह लॉग या तो नहीं मिलता है।
अरकंडेल

आपको शायद अपने उत्तर या पास्टबिन को अपडेट करना चाहिए कि जब से हमने लाइन खोई है, वहां टूट जाता है।
ब्राचली

उसके लिए माफ़ करना। किसी कारण से यह टिप्पणियों में पंक्तिबद्ध नहीं करेगा। जब मैं rsyslog.conf में यह टिप्पणी करता हूं तो लॉगिंग फिर से सक्षम हो जाती है: $ OmitLocalLogging पर। हालांकि एक ही मेजबान पर मेरे अन्य समान वीएम पर यह टिप्पणी नहीं की है और लॉगिंग ठीक काम करता है।
अर्कंडेल

इसे देखते हुए, जाहिरा तौर पर यह एक विकल्प है systemd(जो RHEL7, IIRC के लिए माइग्रेट किया गया है) क्या आप यह देखने के journalctl -bलिए देख सकते हैं कि क्या आपके लॉग सिस्टम जर्नल में जा रहे हैं?
ब्राचली

जवाबों:


19

प्रत्यक्ष समाधान नहीं है, लेकिन मैं कुछ डिबगिंग को देखने के लिए सक्षम करूंगा कि पर्दे के पीछे क्या हो रहा है।

आइडिया # 1 - लकड़हारा डिबगिंग

शुरुआत के लिए जब आप अपने loggerआदेश चलाते हैं, तो आप उन्हें ऐसा कर सकते हैं, जैसे कि संदेश STDERR को बाहर निकाल दें।

$ logger -s "hi"
saml: hi

आइडिया # 2 - अपनी कॉन्फ़िगरेशन फ़ाइल को मान्य करें

आप अपनी rsyslog कॉन्फ़िगरेशन फ़ाइल को मान्य करने का प्रयास कर सकते हैं:

$ sudo rsyslogd -N6 | head -10
rsyslogd: version 7.2.6, config validation run (level 6), master config /etc/rsyslog.conf
rsyslogd: End of config validation run. Bye.

6921.173842409:7f8b11df2780: rsyslogd 7.2.6 startup, module path '', cwd:/root
6921.175241008:7f8b11df2780: caller requested object 'net', not found (iRet -3003)
6921.175261977:7f8b11df2780: Requested to load module 'lmnet'
6921.175272711:7f8b11df2780: loading module '/lib64/rsyslog/lmnet.so'
6921.175505384:7f8b11df2780: module lmnet of type 2 being loaded (keepType=0).
6921.175520208:7f8b11df2780: entry point 'isCompatibleWithFeature' not present in module
6921.175528413:7f8b11df2780: entry point 'setModCnf' not present in module
6921.175535294:7f8b11df2780: entry point 'getModCnfName' not present in module
6921.175541502:7f8b11df2780: entry point 'beginCnfLoad' not present in module

Idea # 3 - rsyslogd डीबगिंग चालू करें

इसके अलावा मैं rsyslogdआगे की जानकारी के लिए डेमन के डिबगिंग को सक्षम करने का प्रयास करूंगा ।

$ sudo -i
$ export RSYSLOG_DEBUGLOG="/tmp/debuglog"
$ export RSYSLOG_DEBUG="Debug"

$ service rsyslog stop
$ rsyslogd -d | head -10    
7160.005597645:7fae096a3780: rsyslogd 7.2.6 startup, module path '', cwd:/root
7160.005872662:7fae096a3780: caller requested object 'net', not found (iRet -3003)
7160.005895004:7fae096a3780: Requested to load module 'lmnet'
7160.005906331:7fae096a3780: loading module '/lib64/rsyslog/lmnet.so'
7160.006023505:7fae096a3780: module lmnet of type 2 being loaded (keepType=0).
7160.006030872:7fae096a3780: entry point 'isCompatibleWithFeature' not present in module
7160.006033780:7fae096a3780: entry point 'setModCnf' not present in module
7160.006036209:7fae096a3780: entry point 'getModCnfName' not present in module
7160.006038359:7fae096a3780: entry point 'beginCnfLoad' not present in module
...
...
7160.006063913:7fae096a3780: rsyslog runtime initialized, version 7.2.6, current users 1
7160.006102179:7fae096a3780: source file syslogd.c requested reference for module 'lmnet', reference count now 2
7160.006113657:7fae096a3780: GenerateLocalHostName uses 'greeneggs'

संस्करण की जानकारी की पुष्टि करना

$ rsyslogd -version
rsyslogd 7.2.6, compiled with:
    FEATURE_REGEXP:             Yes
    FEATURE_LARGEFILE:          No
    GSSAPI Kerberos 5 support:      Yes
    FEATURE_DEBUG (debug build, slow code): No
    32bit Atomic operations supported:  Yes
    64bit Atomic operations supported:  Yes
    Runtime Instrumentation (slow code):    No
    uuid support:               Yes

See http://www.rsyslog.com for more information.

पुष्ट बग और एक समाधान

ओपी ने इसे Red Hat को बग के रूप में प्रस्तुत किया।

बग की विशेषता इस प्रकार थी:

निश्चित रूप से पर्याप्त है जब मैंने होस्ट का अपना समय निर्धारित किया था जब वीएम के पास मेजबान के समान गलत समय था। जब मैंने देखा / var / log / संदेश अब अद्यतन नहीं किया जा रहा था।

यह पता चलता है कि उस बिंदु पर फ़ाइलों में लॉग ही rsyslog सेवा को पुनरारंभ करने के अलावा अन्य कुछ भी नहीं है। अगर मैं ऐसा करता हूं तो यह लॉग हो जाता है:

  ---
   Apr 15 16:39:39 rhel7time-dev rsyslogd-3000: sd_journal_get_cursor() failed: 'Cannot assign requested address'

  Apr 15 16:39:39 rhel7time-dev rsyslogd: [origin software="rsyslogd" swVersion="7.4.2" x-pid="574" x-info="http://www.rsyslog.com"] exiting on signal 15.
  Apr 15 16:39:39 rhel7time-dev rsyslogd: [origin software="rsyslogd" swVersion="7.4.2" x-pid="2117" x-info="http://www.rsyslog.com"] start
  ---

अन्यथा कुछ भी फाइल करने के लिए लॉग इन नहीं होता है, जिसमें लकड़हारा भी शामिल है।

अगर मैं rsyslog.conf पर $ OmitLocalLogging के बारे में टिप्पणी करता हूं तो लॉगिंग रिज्यूमे फाइल करें (ध्यान दें कि उस बिंदु तक मैंने rsyslog.conf को नहीं बदला था)।

पत्रिका के माध्यम से लॉग इन सभी से अप्रभावित है। journalctl -b लॉगिंग दिखाता है, जिसमें लकड़हारा द्वारा भेजा गया कुछ भी शामिल है।

जिसके लिए डेवलपर्स में से एक ने जवाब दिया:

जब यह समस्या होती है, तो आप हटा सकते हैं /var/lib/rsyslog/imjournal.stateऔर डेमॉन को वर्कअराउंड के रूप में पुनरारंभ कर सकते हैं ।

rsyslog सीधे तारीख को नहीं लेता है, लेकिन केवल सिस्टम एपीआई के माध्यम से। मैंने कुछ समय पहले imjournal में कोड की जाँच की है और यह systemd में एक समस्या की तरह दिखता है।

संदर्भ के लिए, देखें: https://github.com/rsyslog/rsyslog/issues/43


मैं इसे बग रिपोर्ट के रूप में लाया और रेडहैट से प्रतिक्रिया मिली। विवरण Bugzilla.redhat.com/show_bug.cgi?id=1088021 पर देखा जा सकता है । यह अभी के लिए बंद है, आपकी मदद के लिए सभी का धन्यवाद। :)
अर्कांदेल

1
@Arkandel - इस पर लूप बंद करने के लिए धन्यवाद। मैंने आपके निष्कर्ष और समाधान को इस A में शामिल कर लिया है, इसलिए हम Q & A चक्र को हल किए गए (कम से कम इस अर्थ में कि यह एक पुष्ट बग w / वर्कअराउंड है) को बंद कर सकता है। कृपया इस A को इस रूप में चिह्नित करें यदि आप w / इस सारांश को स्वीकार करते हैं।
स्लम

4

मेरे मामले में systemctl restart systemd-journaldमदद की, क्योंकि

File /run/log/journal/29c32d60f93c42489aabb4ebeb593f5b/system.journal corrupted or uncleanly shut down, renaming and replacing.
[12274404.541271] systemd-journald[15492]: Deleted empty journal /run/log/journal/29c32d60f93c42489aabb4ebeb593f5b/system@0005317804680d96-e103c48634d16856.journal~ (4096 bytes).

1

Rsyslog conf के साथ जाँच करने का प्रयास करें: rsyslogd -f /etc/rsyslog.conf -N 1
यदि सब कुछ ठीक है तो systemd-journald.socket को पुनः आरंभ करने का प्रयास करें: systemctl पुनरारंभ करें systemd-journald .socket
आप जाँचने के लिए कमांड "लकड़हारा" का उपयोग कर सकते हैं। अगर rsyslog काम करता है या नहीं: लकड़हारा "हैलो"

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