2014-09-24 8 views
15

मेरे पास मूल लॉगस्टैश -> लोचदार खोज सेटअप है, और यह पता चला है कि लॉगस्टैश फ़िल्टर ने अपना काम पूरा करने के बाद 'संदेश' फ़ील्ड की आवश्यकता नहीं है - इस कच्चे संदेश फ़ील्ड को लोचदार खोज में संग्रहीत करना केवल स्टोरेज आईएमओ को अनावश्यक डेटा जोड़ रहा है।क्या मैं लॉगस्टैश से संदेश फ़ील्ड हटा सकता हूं?

क्या मैं सुरक्षित रूप से इस क्षेत्र को हटा सकता हूं और क्या इससे ईएस को कोई परेशानी होगी? सलाह या रीडिंग का स्वागत है, धन्यवाद।

उत्तर

24

नहीं, इससे ईएस को कोई परेशानी नहीं होगी। यदि आप अनावश्यक या अप्रयुक्त हैं तो आप message फ़ील्ड को हटा सकते हैं।

आप फ़िल्टर के अंत में यह filter जोड़ सकते हैं।

mutate 
{ 
    remove_field => [ "message" ] 
} 
+1

Protip::

उदाहरण के लिए, इनपुट और कोडेक (JSON टीसीपी से अधिक लाइन) के निम्नलिखित संयोजन एक message क्षेत्र बनाने नहीं करता है (इस तरह के grok के रूप में) सबसे फिल्टर भी remove_field विकल्प की अनुमति है, और होगा अगर फिल्टर में कोई त्रुटि नहीं आती है तो केवल फ़ील्ड को हटा दें। अतिरिक्त म्यूटेट फ़िल्टर का उपयोग करने से यह सुरक्षित और आसान दोनों हो सकता है। –

4

आप इसे json फ़िल्टर के भीतर भी कर सकते हैं।

filter { 
    json { 
    source => "message" 
    remove_field => ["message"] 
    } 
} 
0

मैं बेन लिम द्वारा जवाब देने के लिए एक टिप्पणी के रूप में निम्नलिखित को शामिल किया है होगा, लेकिन मैं एक टिप्पणी में एक कोड ब्लॉक को जोड़ने का तरीका पता नहीं है, या कि संभव है भी है कि क्या ...

यदि आप इनपुट और कोडेक के संयोजन का उपयोग कर सकते हैं जो message फ़ील्ड नहीं बनाता है, तो आपको इसे हटाने की आवश्यकता नहीं है।

input { 
    tcp { 
    port => 5044 
    codec => json_lines 
    } 
} 
output { 
    elasticsearch { 
    hosts => ["localhost"] 
    document_type => "mytype" 
    index => "myindex" 
    } 
} 
संबंधित मुद्दे