लॉगस्टैश - आंतरिक वास्तुकला
इस अध्याय में, हम आंतरिक वास्तुकला और लोगस्टैश के विभिन्न घटकों के बारे में चर्चा करेंगे।
लॉगस्टैश सर्विस आर्किटेक्चर
लॉगस्टैश प्रक्रिया विभिन्न सर्वरों और डेटा स्रोतों से लॉग होती है और यह शिपर के रूप में व्यवहार करती है। लॉग को इकट्ठा करने के लिए शिपर्स का उपयोग किया जाता है और ये हर इनपुट स्रोत में स्थापित होते हैं। दलाल पसंद करते हैंRedis, Kafka या RabbitMQ इंडेक्सर्स के डेटा को रखने के लिए बफ़र हैं, उदाहरणों में विफल रहने पर एक से अधिक ब्रोकर हो सकते हैं।
इंडेक्सर्स जैसे Luceneबेहतर खोज प्रदर्शन के लिए लॉग को अनुक्रमित करने के लिए उपयोग किया जाता है और फिर आउटपुट को एलास्टिसर्च या अन्य आउटपुट गंतव्य में संग्रहीत किया जाता है। आउटपुट स्टोरेज में डेटा किबाना और अन्य विज़ुअलाइज़ेशन सॉफ़्टवेयर के लिए उपलब्ध है।
लॉगस्टैश आंतरिक वास्तुकला
लॉगस्टैश पाइपलाइन में तीन घटक होते हैं Input, Filters तथा Output। इनपुट भाग इनपुट डेटा स्रोत को निर्दिष्ट करने और एक्सेस करने के लिए ज़िम्मेदार है जैसे कि लॉग फ़ोल्डरApache Tomcat Server।
Logstash पाइपलाइन को समझाने के लिए उदाहरण
लॉगस्टैश कॉन्फ़िगरेशन फ़ाइल में लॉगस्टैश के तीन घटकों के बारे में विवरण होता है। इस मामले में, हम एक फ़ाइल नाम बना रहे हैंLogstash.conf।
निम्न कॉन्फ़िगरेशन इनपुट लॉग "tolog.log" से डेटा कैप्चर करता है और इसे किसी भी फ़िल्टर के बिना आउटपुट लॉग "outlog.log" पर लिखता है।
Logstash.conf
लॉगस्टैश कॉन्फ़िगरेशन फ़ाइल से डेटा की प्रतिलिपि बनाता है inlog.log इनपुट प्लगइन का उपयोग करके फ़ाइल और लॉग डेटा को फ्लश करता है outlog.log आउटपुट प्लगइन का उपयोग करके फ़ाइल।
input {
file {
path => "C:/tpwork/logstash/bin/log/inlog.log"
}
}
output {
file {
path => "C:/tpwork/logstash/bin/log/outlog.log"
}
}
लॉगस्टैश चलाएं
लॉगस्टैश उपयोग करता है –f विन्यास फाइल को निर्दिष्ट करने का विकल्प।
C:\logstash\bin> logstash –f logstash.conf
inlog.log
निम्न कोड ब्लॉक इनपुट लॉग डेटा दिखाता है।
Hello tutorialspoint.com
outlog.log
लॉगस्टैश आउटपुट में संदेश क्षेत्र में इनपुट डेटा होता है। लॉगस्टैश अन्य क्षेत्रों को भी उत्पादन में जोड़ता है जैसे टाइमस्टैम्प, पथ का इनपुट स्रोत, संस्करण, होस्ट और टैग।
{
"path":"C:/tpwork/logstash/bin/log/inlog1.log",
"@timestamp":"2016-12-13T02:28:38.763Z",
"@version":"1", "host":"Dell-PC",
"message":" Hello tutorialspoint.com", "tags":[]
}
जैसा कि आप कर सकते हैं, लॉगस्टैश के आउटपुट में इनपुट लॉग के माध्यम से दिए गए डेटा से अधिक है। आउटपुट में स्रोत पथ, टाइमस्टैम्प, संस्करण, होस्टनाम और टैग शामिल हैं, जिनका उपयोग त्रुटियों जैसे अतिरिक्त संदेशों का प्रतिनिधित्व करने के लिए किया जाता है।
हम डेटा को संसाधित करने और अपनी आवश्यकताओं के लिए उपयोगी बनाने के लिए फ़िल्टर का उपयोग कर सकते हैं। अगले उदाहरण में, हम डेटा प्राप्त करने के लिए फ़िल्टर का उपयोग कर रहे हैं, जो केवल GET या POST जैसी क्रिया के साथ आउटपुट को प्रतिबंधित करता है, उसके बाद AUnique Resource Identifier।
Logstash.conf
इस Logstash कॉन्फ़िगरेशन में, हम एक फ़िल्टर नाम जोड़ते हैं grokइनपुट डेटा को फ़िल्टर करने के लिए। इनपुट लॉग ईवेंट, जो पैटर्न अनुक्रम इनपुट लॉग से मेल खाता है, केवल त्रुटि के साथ आउटपुट गंतव्य पर पहुंचता है। लॉगस्टैश आउटपुट इवेंट्स में "_grokparsefailure" नाम का एक टैग जोड़ता है, जो कि ग्रूव फिल्टर फ़िल्टर अनुक्रम से मेल नहीं खाता है।
लॉगस्टैश अपाचे जैसे लोकप्रिय सर्वर लॉग को पार्स करने के लिए कई इनबिल्ट रेगेक्स पैटर्न प्रदान करता है। यहां इस्तेमाल किया गया पैटर्न एक समान संसाधन पहचानकर्ता द्वारा प्राप्त क्रिया, पद, आदि की अपेक्षा करता है।
input {
file {
path => "C:/tpwork/logstash/bin/log/inlog2.log"
}
}
filter {
grok {
match => {"message" => "%{WORD:verb} %{URIPATHPARAM:uri}"}
}
}
output {
file {
path => "C:/tpwork/logstash/bin/log/outlog2.log"
}
}
लॉगस्टैश चलाएं
हम निम्न कमांड का उपयोग करके लॉगस्टैश चला सकते हैं।
C:\logstash\bin> logstash –f Logstash.conf
inlog2.log
हमारी इनपुट फ़ाइल में डिफ़ॉल्ट सीमांकक द्वारा अलग की गई दो घटनाएं होती हैं, अर्थात, नई लाइन सीमांकक। पहला ईवेंट ग्रॉक में निर्दिष्ट पैटर्न से मेल खाता है और दूसरा नहीं है।
GET /tutorialspoint/Logstash
Input 1234
outlog2.log
हम देख सकते हैं कि दूसरी आउटपुट ईवेंट में "_grokparsefailure" टैग शामिल है, क्योंकि यह ग्रॉक फिल्टर पैटर्न से मेल नहीं खाता है। उपयोगकर्ता इन बेजोड़ घटनाओं को आउटपुट में हटाकर भी उपयोग कर सकता है‘if’ आउटपुट प्लगइन में स्थिति।
{
"path":"C:/tpwork/logstash/bin/log/inlog2.log",
"@timestamp":"2016-12-13T02:47:10.352Z","@version":"1","host":"Dell-PC","verb":"GET",
"message":"GET /tutorialspoint/logstash", "uri":"/tutorialspoint/logstash", "tags":[]
}
{
"path":"C:/tpwork/logstash/bin/log/inlog2.log",
"@timestamp":"2016-12-13T02:48:12.418Z", "@version":"1", "host":"Dell-PC",
"message":"t 1234\r", "tags":["_grokparsefailure"]
}