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