Elastic{on} 17 के बाद से, हम Elastic Stack में आने वाली सभी नई सुविधाओं के बारे में उत्साहित हैं, विशेष रूप से नई Filebeat मॉड्यूल अवधारणा। आमतौर पर, जब आप Filebeat के साथ डेटा हथियाना शुरू करना चाहते हैं, तो आपको Filebeat को कॉन्फ़िगर करने, एक Elasticsearch मैपिंग टेम्पलेट बनाने, एक इंजेस्ट पाइपलाइन या Logstash इंस्टेंस बनाने और टेस्ट करने, और फिर उस डेटासेट के लिए Kibana विज़ुअलाइज़ेशन बनाने की आवश्यकता होती है। Beats टीम ने अब मॉड्यूल अवधारणा के साथ उस सेटअप प्रक्रिया को बहुत आसान बना दिया है।
एक Filebeat मॉड्यूल उन सभी कॉन्फ़िगरेशन चरणों को एक पैकेज में रोल करता है जिसे फिर एक सिंगल कमांड द्वारा सक्षम किया जा सकता है। Filebeat 5.3.0 और बाद के संस्करण mysql, nginx, apache, और सिस्टम लॉग्स के लिए मॉड्यूल के साथ आते हैं, लेकिन अपने खुद के बनाना भी आसान है।
Filebeat मॉड्यूल कुछ हफ्तों के लिए उपलब्ध हैं, इसलिए मैं ObjectRocket सर्विस पर उन जैसे गैर-स्थानीय Elasticsearch क्लस्टर्स के साथ उनका उपयोग कैसे करें, इस पर एक त्वरित ब्लॉग बनाना चाहता था। हमने अभी ObjectRocket सर्विस पर Elasticsearch संस्करण 5.4 लॉन्च किया है, इसलिए आप आज Filebeat मॉड्यूल आज़मा सकते हैं और नए auditd मॉड्यूल और Linux system.auth फाइलसेट का लाभ उठा सकते हैं।
सेट अप करना
नीचे दिए गए चरण ObjectRocket for Elasticsearch इंस्टेंस और हमारे UI का संदर्भ देते हैं, लेकिन अन्य सर्विसेज या आपके अपने क्लस्टर्स के लिए संशोधित करना काफी आसान होना चाहिए। साथ ही, हम इस उदाहरण में "system" मॉड्यूल का उपयोग करेंगे, लेकिन अन्य मॉड्यूल को शामिल करना सीधा है।
आपको Elasticsearch 5.3 या बाद का इंस्टेंस चाहिए (मैंने कुछ पहले के 5.x Elasticsearch संस्करणों को आजमाया और यह ठीक काम किया, लेकिन कोई गारंटी नहीं), उसी संस्करण का Kibana, Elasticsearch क्लस्टर से कनेक्ट करने के लिए होस्टनाम(स), क्लस्टर में लिखने और इंडेक्स बनाने की क्षमता वाले उपयोगकर्ता क्रेडेंशियल्स, और Filebeat का संस्करण 5.3 या बाद का।
यह मानते हुए कि आपका Elasticsearch क्लस्टर और Kibana पहले से सेट अप हैं, आपको पहले Filebeat को अपने चल रहे सिस्टम के प्रकार के लिए डाउनलोड करना होगा, यहां, फिर उस सिस्टम पर इसे निकालें जहां आप लॉग्स इकट्ठा करना चाहते हैं। इस उदाहरण के लिए, मैं सिर्फ एक Macbook चला रहा हूं जो MacOS पर चल रहा है और Elasticsearch 5.4.0 क्लस्टर से कनेक्ट हो रहा है, इसलिए मैं filebeat-5.4.0-darwin-x86_64.tar.gz पैकेज का उपयोग करूंगा। उस आर्काइव को निकालें और फिर हम Filebeat को सेट अप करने के लिए तैयार हैं।
Filebeat सेट अप करना
डिफ़ॉल्ट रूप से, Filebeat आपकी स्थानीय मशीन पर एक Elasticsearch इंस्टेंस से कनेक्ट करने की कोशिश करता है और शामिल filebeat.yml फाइल के साथ /var/log/*.log में सभी लॉग्स पढ़ता है, इसलिए हमें पहले इसे अपने क्लस्टर को इंगित करने के लिए संशोधित करने की आवश्यकता है और किसी भी अन्य प्रॉस्पेक्टर्स को हटा दें। यदि आप ObjectRocket सर्विस का उपयोग कर रहे हैं, तो आप हमारे UI से Beats स्निपेट को कॉपी करके शुरू कर सकते हैं, जो आपके क्लस्टर के लिए विशिष्ट होस्टनाम को ऑटो-पॉप्युलेट करता है।
बाकी सब कुछ हटाने और उपयोगकर्ता नाम/पासवर्ड भरने के बाद, आपकी संपूर्ण filebeat.yml फाइल कुछ इस तरह दिखनी चाहिए:
output:
elasticsearch:
# The Elasticsearch cluster hosts: ["https://dfw-xxxx-0.es.objectrocket.com:xxxx", "https://dfw-xxxx-1.es.objectrocket.com:xxxx", "https://dfw-xxxx-2.es.objectrocket.com:xxxx", "https://dfw-xxxx-3.es.objectrocket.com:xxxx"]
# HTTP basic auth
username: "elasticsearch"
password: "supersecretpassword"
बस। ध्यान दें कि सभी इनपुट्स को हटा दिया गया है, इसलिए फाइल में केवल Elasticsearch कनेक्शन जानकारी शामिल है। इस बिंदु पर, यह भी सुनिश्चित करें कि आप अपने सिस्टम से अपने elasticsearch क्लस्टर तक पहुंचने में सक्षम हैं, ACLs जोड़े गए हैं, आदि। अब Filebeat को सब कुछ गति में लाने दें।
Filebeat चलाना
आपने अपने क्लस्टर से बात करने के लिए सब कुछ कॉन्फ़िगर कर लिया है, इसलिए जब तक आपने filebeat.yml में डिफ़ॉल्ट स्थान पर अपने सभी बदलाव किए हैं, तब तक आप filebeat डायरेक्टरी से निम्न कमांड चलाएंगे:
./filebeat -e -modules=system -setup
-e Filebeat को सिसलॉग के बजाय stderr पर लॉग करता है, -modules=system Filebeat को सिस्टम मॉड्यूल का उपयोग करने के लिए कहता है, और -setup Filebeat को मॉड्यूल के Kibana डैशबोर्ड लोड करने के लिए कहता है। आपको केवल पहली बार, या Filebeat अपग्रेड करने के बाद कमांड के -setup भाग को शामिल करने की आवश्यकता है, क्योंकि यह केवल डिफ़ॉल्ट डैशबोर्ड को Kibana में लोड करता है। यदि आप एकाधिक मॉड्यूल चलाना चाहते हैं, तो आप उन सभी को कॉमा से अलग करके सूचीबद्ध कर सकते हैं (कोई स्पेस नहीं)।
नोट: Filebeat 5.4.0 में एक बग है जो कुछ सिस्टम पर कमांड के
-setupभाग को विफल कर सकता है। आप इसे ulimit को कुछ उच्च पर सेट करके (चलाएंulimit -n 2048) या filebeat 5.3.x का उपयोग करके इसके चारों ओर काम कर सकते हैं।
Filebeat अब अपना काम कर रहा होना चाहिए। जब तक आपको कोई त्रुटि नहीं दिखाई देती, आइए Kibana पर जाएं और इसकी जांच करें।
डेटा देखना
एक बार जब आप Kibana में लॉग इन हो जाते हैं, तो कुछ नए विज़ुअलाइज़ेशन और डैशबोर्ड के साथ एक नया filebeat-* इंडेक्स पैटर्न होना चाहिए। "डैशबोर्ड" पर जाएं, और "Filebeat syslog dashboard" खोलें।
Voilà। जब तक आपके सिस्टम लॉग में कुछ है, अब आपके डेटा के कुछ अच्छे विज़ुअलाइज़ेशन होने चाहिए।
नोट: यदि Filebeat से कोई स्पष्ट त्रुटि नहीं है और Kibana में कोई डेटा नहीं है, तो आपके सिस्टम में बस एक बहुत शांत सिस्टम लॉग हो सकता है। मुझे डेटा देखने के लिए डिफ़ॉल्ट 'पिछले 15 मिनट' की तुलना में डेट पिकर को थोड़ा और पीछे सेट करना पड़ा।
समापन
यह सबसे आम उपयोग के मामलों के लिए Beats को उपयोग करना और भी आसान बनाने की दिशा में एक वास्तव में अच्छा कदम है और इस उदाहरण की मूल बातें अब उपलब्ध अन्य मॉड्यूल के लिए आसानी से बढ़ाई जा सकती हैं। उदाहरण के लिए, बहुत सारे वेब ऐप्स (जैसे WordPress, Drupal, Magento, आदि) के पीछे एक वेब सर्वर और कुछ mysql होता है। मॉड्यूल के इस एक सेट और एक सिंगल कमांड के साथ आप उस एप्लिकेशन के वेब सर्वर, डेटाबेस, और सिस्टम लॉग्स के लिए लॉग्स शिप करना शुरू कर सकते हैं, सब एक चरण में।
यदि आप अधिक जानकारी की तलाश में हैं और यह जानना चाहते हैं कि ये मॉड्यूल कैसे निर्मित हैं, तो डेवलपर दस्तावेज देखें और अपने Filebeat इंस्टॉलेशन के मॉड्यूल डायरेक्टरी में चारों ओर घूमें। आप मॉड्यूल द्वारा उपयोग किए जा रहे प्रॉस्पेक्टर्स, पाइपलाइन्स, टेम्पलेट्स, और विज़ुअलाइज़ेशन को Kibana में आप जो देख रहे हैं उससे मिलान करने में सक्षम होना चाहिए।