2012-04-15 21 views
9

मैं logback उपयोग कर रहा हूँ syslog अद्यतन करने के लिए साथ डिबग मुद्दे की कोशिश कर रहा, यह कैसे मैं अपने appender कॉन्फ़िगर किया गया है:logback syslog appender अपडेट नहीं हो syslog

<appender name="SYSLOG" class="ch.qos.logback.classic.net.SyslogAppender"> 
     <syslogHost>localhost</syslogHost> 
     <facility>LOCAL0</facility> 
     <suffixPattern>[%thread] %logger %msg</suffixPattern> 
    </appender> 

मैं rsyslog.conf अद्यतन यूडीपी घटनाओं के लिए सुनने के लिए, uncommented नीचे पंक्तियां:

# Provides UDP syslog reception 
$ModLoad imudp.so 
$UDPServerRun 514 

परिवर्तनों के बाद syslog डिमन को पुनरारंभ किया।

मेरे सभी टेस्ट बॉक्स पर, यह ठीक काम कर रहा है! हालांकि, सिस्टम सिसॉग पर एक को मेरी प्रक्रिया द्वारा अपडेट नहीं किया जा रहा है (अन्य सामान इसे ठीक से अपडेट कर रहा है), मैं सोच रहा हूं कि मैं इस समस्या को डीबग करने के बारे में कैसे जा सकता हूं? मुझे जो कुछ भी देखना चाहिए वह दिमाग में आता है?

किसी भी विचार के लिए धन्यवाद

उत्तर

25

निश्चित रूप से। स्पष्ट एक: शिथिल अनुक्रम में, इन 4 परीक्षण की कोशिश:

1. टेस्ट logback एक दूसरे appender के रूप में एक FileAppender जोड़ सकते हैं और यकीन है कि घटनाओं वहाँ प्रकट करते हैं। आपकी पोस्ट का तात्पर्य है कि "यह" देव में काम करता है लेकिन मुझे यकीन नहीं था कि यह लॉगबैक या ऐपेंडर है, और कॉन्फ़िगर स्निपेट में पर ईवेंट भेजने के लिए appender-ref अनुभाग नहीं है।

यदि आपके FileAppender कुछ भी नहीं प्राप्त करता है, तो यह एक ऐप/पर्यावरण समस्या है या यह सर्वर एपेंडर को खिलाती घटनाओं को उत्पन्न नहीं कर रहा है।

2. पुष्टि संदेशों उत्पन्न किया जा रहा है: lo पर यूडीपी पैकेट से भरा पेलोड

tcpdump -n -i lo -X -s 1500

.. उत्पादन के लिए: मान लिया जाये कि FileAppender संदेश प्राप्त करता है लेकिन syslog नहीं, चलती है। अपने ऐप को एक लॉग संदेश उत्पन्न करें। आपको कम से कम 1 पैकेट 127.0.0.1:514 पर नियत देखना चाहिए। यदि आप नहीं करते हैं, तो यह प्रेषक है। यदि आप करते हैं, तो यह rsyslog कॉन्फ़िगरेशन है।

3. पुष्टि करें कि rsyslog बंदरगाह 514 के लिए बाध्य है:

lsof -i :514

या आप lsof नहीं है और यह सुनिश्चित करें कि किसी अन्य प्रक्रिया 514 करने के लिए बाध्य नहीं है कर रहे हैं:

netstat -ln | grep 514 

4. देखें कि rsyslog प्राप्त करता है: यदि लाइव rsyslogd को रोकने के बाद ईवेंट 514 पर भेजा जा रहा है, तो इसे डीबग मोड में पुनरारंभ करें और टर्मिनल से जुड़ा हुआ है:

/etc/init.d/rsyslog stop 
rsyslogd -d 

आपको आने वाली घटनाओं को देखना चाहिए। यदि उनमें से कोई भी समस्या की पहचान नहीं करता है, तो यह पीटा पथ से कुछ रास्ता है। मुझे ज्ञात-अच्छे J2EE और syslog वातावरण पर logback config पर काम कर रहा है। उम्मीद है कि ऊपर की चीजों में से एक यह करेगा, यद्यपि।

+0

महान उत्तर और बहुत धन्यवाद! ऐसा लगता है कि समस्या का कारण 514 पर एक और प्रक्रिया थी, यह ठीक काम कर रहा है कि मैंने इसे सही किया है। – Hoofamon

+0

महान जवाब! मुझे बहुत मदद की - धन्यवाद! –

+0

हां! धन्यवाद - महान गाइड। – borodark

संबंधित मुद्दे