मेरे कॉन्फ़िगरेशन में, मेरे पास rsyslog है जो /home/user/my_app/shared/log/unicorn.stderr.logउपयोग के परिवर्तनों के बाद प्रभारी है imfile। सामग्री को टीसीपी का उपयोग करके दूसरे दूरस्थ लॉगिंग सर्वर पर भेजा जाता है।
जब लॉग फ़ाइल घूमती है, तो rsyslog रिमोट सर्वर पर डेटा भेजना बंद कर देता है।
मैंने rsyslog को फिर से लोड करने, HUP सिग्नल भेजने और इसे पूरी तरह से पुनः आरंभ करने की कोशिश की, लेकिन कुछ भी काम नहीं किया।
केवल तरीके मैं पा सकता था कि वास्तव में काम गंदा था:
- सेवा को रोकें, rsyslog स्टेट फाइल को हटाएं और rsyslog को फिर से शुरू करें। मेरी logrotate फ़ाइल में वह सब कुछ जो एक हुक हुक में है।
kill -9rsyslog और इसे शुरू करें।
क्या rsyslog internals को छुए बिना ऐसा करना मेरे लिए एक उचित तरीका है?
Rslog फ़ाइल
$ मोडलड इममार्क $ मोडलड इमडप $ मोदलाद imtcp $ मोदलाद इमक्ससॉक $ मोडलॉड इमकलॉग $ मोडलड इम्फाइल $ टेम्पलेट विदाउटफ़ॉर्मैट, "[पर्यावरण] [% syslogtag%] -% msg%" $ WorkDirectory / var / स्पूल / rsyslog $ InputFileName /home/user/my_app/sared/log/unicorn.stderr.log $ InputFileTag गेंडा-स्टैडर $ InputFileStateFile स्टेट-यूनिकॉर्न-स्टैडर $ InputFileSeverity जानकारी $ InputFileFacility स्थानीय 8 $ InputFilePollInterval 1 $ InputFilePersistStateInterval 1 $ InputRunFileMonitor # रिमोट सर्वर के लिए आगे अगर $ syslogtag में 'apache-' है, तो @@ my_server: 5000; WithoutTimeFormat : syslogtag, में, "अपाचे-" ~ शामिल हैं *। * @@ my_server: 5000; SyslFormat
लॉगट्रेट फ़ाइल
/ home/user/my_app/sared/log/*.log {
रोज
missingok
dateext
घूमना ३०
संकुचित करें
notifempty
विस्तार gz
copytruncate
640 उपयोगकर्ता उपयोगकर्ता बनाएँ
sharedscripts
पोस्ट घुमाने
(stop rsyslog && rm / var / spool / rsyslog / stat- * && start rsyslog 2> & 1) || सच
endscript
}
FYI करें, फ़ाइल rsyslog उपयोगकर्ता के लिए पठनीय है, मेरा सर्वर पहुंच योग्य है और अन्य लॉग फाइलें जो एक ही चक्र पर नहीं घूमती हैं उन्हें ठीक से ट्रैक किया जाना जारी है।
मैं Ubuntu 12.04 चला रहा हूं।
post-rotate(जो कोई बात नहीं है) का उपयोग कर रहे थेpostrotate, क्योंकि उस मूल लॉगरेट स्क्रिप्ट को आपको rsyslog के साथ ठीक काम करना चाहिए था (यदि पोस्ट स्क्रिप्ट स्क्रिप्ट चल रही थी ) ...?