2015-11-29 7 views
9

लॉगस्टैश और लोचदार खोज एक साथ उपयोग करते समय, .raw वाले फ़ील्ड विश्लेषण क्षेत्रों के लिए जोड़े गए हैं, ताकि जब एलिबास्टेर्च को किबाना जैसे टूल के साथ पूछताछ हो, तो फ़ील्ड के मान का उपयोग करना संभव है-प्रति शब्द विभाजन के बिना और क्या नहीं।Elasticsearch आउटपुट के साथ लॉगस्टैश का उपयोग करते समय .raw फ़ील्ड कहां से आते हैं?

मैंने ईएलके स्टैक की एक नई स्थापना का सब कुछ नवीनतम नवीनतम संस्करणों के साथ बनाया, और ध्यान दिया कि मेरे .raw फ़ील्ड अब बनाए जा रहे हैं क्योंकि वे ढेर के पुराने संस्करणों पर थे। folks posting solutions of creating templates on Elasticsearch के बहुत सारे हैं, लेकिन मुझे के रूप में अधिक जानकारी नहीं मिली है, यह चीजों को ठीक करता है। व्यापक समस्या को बेहतर ढंग से समझने के प्रयास में, मैं इस विशिष्ट प्रश्न से पूछता हूं:

.raw फ़ील्ड कहां से आते हैं?

मैं मान लिया था कि Logstash तार के साथ Elasticsearch को आबाद करने गया था के रूप में विश्लेषण किया है और जब यह दस्तावेज डाला के रूप में कच्चे तार, लेकिन तथ्य यह है कि ठीक Elasticsearch टेम्पलेट्स में निहित है पर विचार, मैं सवाल है या नहीं, मेरी धारणा सही है।

उत्तर

8

आप अपनी धारणा में सही हैं कि .raw फ़ील्ड्स डिफ़ॉल्ट इंडेक्स टेम्पलेट में निहित स्ट्रिंग फ़ील्ड के लिए गतिशील टेम्पलेट का परिणाम हैं जो लॉगस्टैश IF manage_template: true (जो डिफ़ॉल्ट रूप से है) बनाता है।

लॉगस्टैश (2.1 के रूप में) का डिफ़ॉल्ट टेम्पलेट here देखा जा सकता है। जैसा कि आप लाइन 26 पर देख सकते हैं, सभी स्ट्रिंग फ़ील्ड (message एक को छोड़कर) not_analyzed.raw उप-क्षेत्र बनाया गया है।

हालांकि, नवीनतम लॉगस्टैश संस्करणों में टेम्पलेट नहीं बदला गया है जैसा कि template.json change history में देखा जा सकता है, इसलिए आपके इंस्टॉल के साथ कुछ और गलत होना चाहिए या आपने अपनी खुद की अनुक्रमणिका टेम्पलेट का उपयोग करने के लिए अपनी लॉगस्टैश कॉन्फ़िगरेशन बदल दी है (इसके बजाय .raw फ़ील्ड) के बिना।

यदि आप curl -XGET localhost:9200/_template/logstash* चलाते हैं तो आपको लॉगस्टैश बनाया गया टेम्पलेट देखना चाहिए।

+0

धन्यवाद। दुर्भाग्यवश, Elasticsearch में बिल्कुल कोई टेम्पलेट नहीं बनाया गया है, और निश्चित रूप से 'logstash' नाम नहीं है। मैंने अपनी लॉगस्टैश कॉन्फ़िगरेशन में स्थानीय को निर्दिष्ट करने का प्रयास किया, और यह भी काम नहीं किया है। लेकिन, आपकी जानकारी मुझे समस्या के करीब ले जाती है और चीजों को स्पष्ट करती है। मैं खुदाई रखूंगा! – Brad

+0

अजीब। तो आप पुष्टि करते हैं कि आपके पास ES 2.1 + Logstash 2.1 स्थापित है, है ना? – Val

+0

लॉगस्टैश '2.1.0', और लोचदार खोज 'संस्करण: 2.1.0, बिल्ड: 72cd1f1/2015-11-18T22: 40: 03Z, JVM: 1.7.0_91' मैंने उस' elasticsearch-template.json' को संपादित करने और निर्दिष्ट करने का प्रयास किया नई JSON फ़ाइल का पथ, सभी स्ट्रिंग फ़ील्ड को 'not_analyzed' पर सेट करने के लिए, Elasticsearch में मेरे सभी इंडेक्स को नियुक्त किया और फिर लॉगस्टैश चलाया। इससे कोई फर्क नहीं पड़ता, तारों का अभी भी विश्लेषण किया गया था और कच्चे खेतों का निर्माण नहीं हुआ था। – Brad

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