2015-10-09 8 views
7

के लिए गिराए गए हैं मैं सेंटोस 7 (सेंटोस लिनक्स रिलीज 7.1.1503 (कोर) पर rsyslog (rsyslog-7.4.7-7.el7_0.x86_64) का उपयोग कर रहा हूं। हमारे पास कुछ अनुप्रयोग हैं जो लॉगिंग के लिए syslog ढांचे का उपयोग कर रहे हैं। हमारे पास बहुत सारे लॉग हैं। चोटी पर, यह एक सेकंड में 50000 लॉग तक हो सकता है। हमारी प्रणाली पहले सेंटोस 6.2 (और rsyslog 5.8) पर चल रही थी और हमने कभी भी कोई बूंद नहीं देखी। कुछ खोज करने के बाद, हमने पाया कि दर सीमित है। हमें संदेश भेज रहे हैं जैसे "imjournal: दर-सीमित होने के कारण संदेशों को छोड़ना शुरू करें"/var/log/संदेशों में और फिर "imjournal: 130886 संदेश रेट-सीमित होने के कारण खो गए"। हमने सफलता के बिना इसे निष्क्रिय या ट्यून करने के विभिन्न तरीकों का प्रयास किया। हमने निम्नलिखित की कोशिश की। /etc/rsyslog.confCentOS 7 rsyslog DEBUG लॉग सी/सी ++ मॉड्यूल

$ModLoad imjournal # provides access to the systemd journal 
$imjournalRatelimitInterval 1 
$imjournalRatelimitBurst 50000 

में

1) परिवर्तन rsyslog.conf से कुछ अन्य जानकारी इस प्रकार है।

$OmitLocalLogging on 
$IMJournalStateFile imjournal.state 

हमने यह भी देखा कि इमक्ससॉक के साथ कुछ दर सीमित है; लेकिन हम समझते हैं कि जब OmitLocalLogging पर /etc/systemd/journald.conf में

2) परिवर्तन

Storage=auto 
RateLimitInterval=1s 
RateLimitBurst=100000 

हमारे आवेदन जावा में मॉड्यूल (SLF4J और log4j का उपयोग) है कि उपयोग नहीं किया जाएगा कि और सी/सी ++ में मॉड्यूल (syslog() कॉल का उपयोग कर)। सी/सी ++ मॉड्यूल के लिए, हम ज्यादातर समय DEBUG लॉग खो रहे हैं। लेकिन जावा मॉड्यूल के DEBUG लॉग हमेशा स्पष्ट रूप से ठीक हैं।
systemd का संस्करण "systemd-208-20.el7.x86_64" है। आवेदन और rsyslogd एक ही मशीन पर हैं।

+0

क्या आपको कभी इसके लिए समाधान मिला है? मुझे भी यही समस्या है। – Trenin

उत्तर

10

CentOS 7 पर systemd (21 9-19) के नवीनतम अपडेट के साथ, एकमात्र तरीका हम फिर से लॉगिंग करने में सक्षम थे, बिना पत्रिका या IMUXSock द्वारा सीमित किसी भी दर के, नीचे कॉन्फ़िगरेशन परिवर्तन का उपयोग कर रहा था। यह भी कम हो गया, लेकिन पत्रिका द्वारा अत्यधिक सीपीयू खपत को पूरी तरह खत्म नहीं किया।

$IMUXSockRateLimitInterval 0 
$IMJournalRatelimitInterval 0 

/etc/systemd/journald.conf में निम्नलिखित सेट करें::

के बाद '$ ModLoad imuxsock' और '$ ModLoad imjournal' /etc/rsyslog.conf के लिए निम्न जोड़ें

इस अंतिम अद्यतन टी करने के लिए
systemctl restart systemd-journald.service 
systemctl restart rsyslog.service 

पहले: के साथ

Storage=volatile 
Compress=no 
RateLimitInterval=0 
MaxRetentionSec=5s 

पुनः प्रारंभ journald और पिक करने के लिए rsyslog परिवर्तन ओ systemd, आप इसे हल करने के लिए /etc/rsyslog.conf में '$ ModLoad imjournal' टिप्पणी कर सकते हैं, लेकिन यह अब काम नहीं करता है।

+0

धन्यवाद, मुझे अभी तक बहुत अधिक सीपीयू उपयोग के बारे में भी पता नहीं था। यह देने पर रहता है! –