2014-06-18 6 views
5

है वर्तमान में मेरे पास है:क्या बहु (logstash) के लिए regexp पैटर्न

multiline { 
type => "tomcat" 
pattern => "(^.+Exception: .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)|(---)" 
what => "previous" 
} 

और यह मेरा लॉग का हिस्सा है:

TP-xxxxxxxxxxxxxxxxxxxxxxxx: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 
    at xxxxxx 
Caused by: xxxxxxxxx 
    at xxxxxx 
Caused by: xxxxxxxxx 
--- The error occurred in xxxxxxxxx. 
--- The error occurred xxxxxxxxxx. 

मेरे पैटर्न यहाँ काम नहीं करता। शायद क्योंकि मैंने अंत में (---) जोड़ा। --- लाइनों को जोड़ने के लिए सही regexp क्या है?

धन्यवाद

उत्तर

2

आप लाइन पर अन्य पात्रों के लिए खाते में करने के साथ ही चाहता हूँ: एक लॉग घटना, एक टाइमस्टैम्प या एक विशिष्ट शब्द के साथ शुरू

(^---.*$) 
+0

कोशिश की लेकिन काम नहीं करता है। इसके अलावा (^ .---। +) और (^ \ - \ - \ -। *) और बीच में सब कुछ भी कोशिश की। मुझे लॉगस्टैश लॉग भी नहीं मिल रहा है जो मुझे बता रहा है कि त्रुटि क्या है। – user3752671

+0

'(^ ---। +)' के बारे में कैसे? साथ ही, यदि आप अपनी मूल कॉन्फ़िगरेशन से '(---)' को हटाते हैं तो क्या अभिव्यक्ति अन्य लाइनों के लिए काम करती है जिन्हें आप लेने की उम्मीद करेंगे? –

+0

अगर मैं हटा देता हूं (---) यह ठीक काम करता है। (लाइनों को छोड़कर :- पी)। ने भी कोशिश की (^ --- +) लेकिन काम नहीं किया। – user3752671

1

उदाहरण के लिए, अपनी लॉग इन करता है अगर सभी लॉग TP से शुरू होते हैं, तो आप इसे फ़िल्टर पैटर्न के रूप में उपयोग कर सकते हैं।

multiline { 
      pattern => "^TP" 
      what => "previous" 
      negate => true 
    } 

इस फ़िल्टर के साथ आप अपने लॉग को आसान बना सकते हैं, जटिल पैटर्न का उपयोग करने की आवश्यकता नहीं है।

+0

कभी-कभी यह^टीपी है। कभी-कभी यह होता है [अनलोडिंग और कभी-कभी यह log4j है:। ने इसे "^ टीपी |^\ [अनलोडिंग |^log4j:" जैसा करने की कोशिश की लेकिन यह काम नहीं कर रहा है – user3752671

+0

मुझे लगता है कि आपने इसे गलत समझा है।पैटर्न "^ टीपी" का अर्थ है कि सभी लॉग शुरू हो जाएंगे "टीपी"। "^" का अर्थ regexp पर एक रेखा से शुरू करना है। तो, क्या आपके लॉग, "TPXXXXXXXX" होंगे, सभी लॉग लॉगस्टैश द्वारा संभाल सकते हैं। आप "टीपी" के साथ सभी शुरुआतओं के साथ अपने लॉग संशोधित करने का प्रयास कर सकते हैं। फिर इसे फिर से प्रयास करें। :) –

2

मैं इन ऑनलाइन regex साथी में अपने regex और पाठ डाल दिया और एरिक के सुझाव की कोशिश की है:

कभी कभी ये ऑनलाइन साथी वास्तव में मन खाली करने के लिए मदद । इस तस्वीर से पता चलता क्या मान्यता प्राप्त है:

Regex processing on regexr.com

अगर मैं इस पर अटक कर रहे थे, मैं किसी भी आगे regex पर ही ध्यान केंद्रित नहीं होता। इसके बजाय मैं इन बिंदुओं की जांच करूंगा:

  • चूंकि विभिन्न रेगेक्स बोलीभाषाएं हैं, तो लॉगस्टैश द्वारा किस बोली का उपयोग किया जाता है? मेरे पैटर्न का क्या मतलब है?
  • क्या कोई लॉगस्टैश विशिष्ट संशोधक हैं जो सेट नहीं हैं और सेट करने की आवश्यकता है?
  • जैसा कि बेन ने उल्लेख किया है, वहां और फ़िल्टर उपकरण हैं। क्या यह इसके बजाय grok का उपयोग करने में मदद करेगा?