Splunk HTTP Event Collector को Apache APISIX के साथ एकीकृत करना

API7.ai

February 10, 2022

Ecosystem

सिस्टम की जटिलता बढ़ रही है क्योंकि प्रौद्योगिकी पुनरावृत्त होती है और उद्योग संरचना विकसित होती है। लॉग विभिन्न विश्लेषण इंजनों का समर्थन कर सकते हैं और उनके साथ संगत हो सकते हैं ताकि उपयोगकर्ताओं के लिए चयन, संचालन और रखरखाव प्रक्रिया में लागत कम हो सके। लॉग-आधारित विश्लेषण और अवलोकन सिस्टम स्थिरता सुनिश्चित करने के लिए आधारशिला के रूप में बहुत महत्वपूर्ण भूमिका निभाता है।

Apache APISIX न केवल एक उत्कृष्ट प्रदर्शन वाला API गेटवे है, बल्कि समुदाय उपयोगकर्ताओं के साथ डेटा और लॉग संचालन और रखरखाव पर संचार के माध्यम से अधिकांश मुख्यधारा के ओपन सोर्स और वाणिज्यिक लॉगिंग समाधानों का समर्थन करता है, जिनमें शामिल हैं: HTTP Logger, TCP Logger, Kafka Logger, UDP Logger, RocketMQ Logger, SkyWalking Logger, Aliyun Cloud Logging(SLS), Google Cloud Logging, आदि।

अब हमारे पास Apache APISIX Logger समर्थन मैट्रिक्स में एक नया जोड़ है: Splunk HEC Logging

यह लेख बताता है कि Apache APISIX में Splunk HEC सेवा को कैसे कॉन्फ़िगर और उपयोग करें।

Splunk HTTP Event Collector के बारे में

Splunk मशीन डेटा के लिए एक पूर्ण-पाठ खोज इंजन है जिसका उपयोग विभिन्न अनुप्रयोगों से डेटा एकत्र करने, अनुक्रमित करने, खोजने और विश्लेषण करने के लिए किया जा सकता है। DB Engines के खोज इंजन रैंकिंग के अनुसार, Splunk वर्तमान में दूसरे स्थान पर है और व्यापक रूप से उपयोग किया जाने वाला पूर्ण-पाठ खोज सॉफ्टवेयर है। Splunk, ElasticSearch की तरह, एक अर्ध-वास्तविक समय डेटा स्ट्रीम है जो निरंतर खोज परिणाम प्रदान करता है।

Splunk HTTP Event Collector (HEC) Splunk द्वारा प्रदान किया गया एक HTTP इवेंट कलेक्टर है जो HTTP(S) प्रोटोकॉल का उपयोग करके डेटा और एप्लिकेशन इवेंट्स को Splunk में भेजने की क्षमता प्रदान करता है।

splunk-hec-logging प्लगइन के बारे में

splunk-hec-logging का उपयोग Apache APISIX अनुरोध लॉग्स को Splunk में विश्लेषण और भंडारण के लिए अग्रेषित करने के लिए किया जाता है। जब सक्षम किया जाता है, तो Apache APISIX लॉग चरण के दौरान अनुरोध संदर्भ जानकारी लेगा, इसे Splunk Event Data Format में क्रमबद्ध करेगा और इसे बैच कतार में जमा करेगा। कतार में डेटा को Splunk HEC में तब जमा किया जाता है जब प्रति बैच बैच कतार की अधिकतम प्रसंस्करण क्षमता ट्रिगर होती है, या जब बफ़र को ताज़ा करने का अधिकतम समय पहुंच जाता है।

splunk-hec-logging प्लगइन का उपयोग कैसे करें

Splunk कॉन्फ़िगरेशन

Splunk Enterprise को तैनात करें

कृपया Splunk की इंस्टॉलेशन गाइड का संदर्भ लें। यह लेख Docker के माध्यम से तैनाती का प्रदर्शन करेगा।

Docker कमांड पैरामीटर निम्नलिखित हैं।

docker run -p 18088:8088 -p 18000:8000 \ # 8088 HEC पोर्ट है, 8000 प्रबंधन बैकएंड पोर्ट है -e "SPLUNK_PASSWORD=your-password" \ # एडमिन लॉगिन पासवर्ड -e "SPLUNK_START_ARGS=--accept-license" \ # लाइसेंस शर्तों को स्वीकार करें (Splunk डिफ़ॉल्ट रूप से एक एंटरप्राइज़ ट्रायल लाइसेंस प्रदान करेगा) -e "SPLUNK_HEC_TOKEN=your-hec-token" \ # डिफ़ॉल्ट HEC टोकन सेट करें, यह कॉन्फ़िगरेशन के बाद एक डिफ़ॉल्ट HEC बनाएगा -itd --rm --name splunk-example splunk/splunk:latest

कमांड पैरामीटर Docker Splunk डॉक्यूमेंटेशन में समझाए गए हैं।

Splunk HEC कॉन्फ़िगर करें

Docker में डिफ़ॉल्ट HEC पहले से ही कॉन्फ़िगर और बनाया गया है, इसलिए हम यहां इसे मैन्युअल रूप से बनाने की प्रक्रिया पर नहीं जाएंगे। मैन्युअल निर्माण प्रक्रिया के विवरण के लिए, कृपया दस्तावेज़ देखें: Set up and use HTTP Event Collector in Splunk Web.

Splunk Enterprise में लॉगिन करें और HEC की जांच करें

ब्राउज़र के माध्यम से Docker के मैप किए गए पोर्ट तक पहुंचें। चूंकि आपको प्रबंधन बैकएंड के 8000 पोर्ट को होस्ट के 18000 पोर्ट पर मैप करने की आवश्यकता है, आप संचालन के दौरान होस्ट पर "लूपबैक एड्रेस प्लस पोर्ट" के माध्यम से ब्राउज़र से इसे एक्सेस कर सकते हैं। उदाहरण के लिए: http://127.0.0.1:18000, लॉगिन के लिए डिफ़ॉल्ट उपयोगकर्ता नाम admin है, और पासवर्ड उपरोक्त उदाहरण में पर्यावरण चर में सेट किया गया SPLUNK_PASSWORD मान है।

जैसा कि नीचे दिए गए चित्र में दिखाया गया है, इसका मतलब है कि लॉगिन सफल रहा है।

Splunk UI

स्क्रीन के शीर्ष दाईं ओर "Settings > Data Inputs" पर क्लिक करें यह जांचने के लिए कि डिफ़ॉल्ट HEC सफलतापूर्वक सेट किया गया है या नहीं।

Default HEC

हम पहले से ही HTTP Event Collector के इनपुट्स कॉलम में HECs की संख्या देख सकते हैं, जो सफल सेटअप को दर्शाता है।

the number of HECs

इस बिंदु पर, आप HTTP Event Collector पर क्लिक करके HEC विवरण सूची में प्रवेश कर सकते हैं और HECs के टोकन जानकारी देख सकते हैं।

HECs Token information

Token Values डॉकर पर्यावरण चर में कॉन्फ़िगर किया गया SPLUNK_HEC_TOKEN का मान है।

Apache APISIX कॉन्फ़िगरेशन

splunk-hec-logging प्लगइन को सक्षम करें

splunk-hec-logging प्लगइन को सक्षम करने के लिए निम्नलिखित कमांड चलाएं।

curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "plugins":{ "splunk-hec-logging":{ "endpoint":{ // HEC endpoint "uri":"http://127.0.0.1:18088/services/collector", // HEC Token "token":"BD274822-96AA-4DA6-90EC-18940FB2414C" }, // // बैच कतार बफ़र को ताज़ा करने का अधिकतम समय (सेकंड में) "inactive_timeout":2, // प्रति बैच कतार में अधिकतम लॉग प्रविष्टियाँ "batch_max_size":10 } }, "upstream":{ "type":"roundrobin", "nodes":{ "127.0.0.1:1980":1 } }, "uri":"/splunk.do" }'

प्लगइन पैरामीटर निम्नलिखित तालिका में वर्णित हैं।

नामआवश्यकडिफ़ॉल्ट मानविवरण
endpointहाँN/ASplunk HEC एंडपॉइंट कॉन्फ़िगरेशन जानकारी
endpoint.uriहाँN/ASplunk HEC इवेंट संग्रह API
endpoint.tokenहाँN/ASplunk HEC पहचान टोकन
endpoint.channelनहींN/ASplunk HEC भेजने वाला चैनल पहचान, संदर्भ: About HTTP Event Collector Indexer Acknowledgment
endpoint.timeoutनहीं10Splunk HEC डेटा जमा करने का समय समाप्ति (सेकंड में)।
ssl_verifyनहींTRUESSL प्रमाणीकरण सक्षम करें, संदर्भ: OpenResty डॉक्यूमेंटेशन
max_retry_countनहीं0प्रसंस्करण पाइपलाइन से हटाने से पहले अधिकतम पुनः प्रयास संख्या।
retry_delayनहीं1यदि निष्पादन विफल होता है तो प्रक्रिया निष्पादन को विलंबित करने के लिए सेकंड की संख्या।
buffer_durationनहीं60बैच में सबसे पुरानी प्रविष्टि की अधिकतम अवधि (सेकंड में) को पहले संसाधित किया जाना चाहिए।
inactive_timeoutनहीं5बफ़र को ताज़ा करने का अधिकतम समय (सेकंड में)।
batch_max_sizeनहीं1000प्रति बैच कतार में अधिकतम प्रविष्टियाँ।

अनुरोध भेजें

Splunk को अनुरोध भेजने के लिए निम्नलिखित कमांड चलाएं।

$ curl -i http://127.0.0.1:9080/splink.do HTTP/1.1 200 OK Content-Type: text/html; charset=utf-8 Transfer-Encoding: chunked Connection: keep-alive Date: Fri, 10 Dec 2021 09:57:52 GMT Server: APISIX/2.11.0 Hello, Splunk HEC Logging

लॉग सत्यापित करें

Splunk कंसोल में लॉगिन करें और "Search & Reporting" पर क्लिक करें।

Splunk console

खोज बॉक्स में source="apache-apisix-splunk-hec-logging" टाइप करके भेजे गए अनुरोध लॉग्स को क्वेरी करें।

query the logs

splunk-hec-logging प्लगइन को अक्षम करें

splunk-hec-logging कॉन्फ़िगरेशन को हटाकर प्लगइन को अक्षम करें।

curl http://127.0.0.1:9080/apisix/admin/routes/1 -H 'X-API-KEY: edd1c9f034335f136f87ad84b625c8f1' -X PUT -d ' { "uri":"/logging.do", "upstream":{ "type":"roundrobin", "nodes":{ "127.0.0.1:1980":1 } }, "plugins":{ } }'

सारांश

Apache APISIX वर्तमान में अधिक सेवाओं के साथ एकीकरण का समर्थन करने के लिए अतिरिक्त प्लगइन्स पर काम कर रहा है, इसलिए यदि आप रुचि रखते हैं, तो कृपया हमारे GitHub Discussion में एक चर्चा थ्रेड शुरू करें या मेलिंग सूची के माध्यम से संचार करें।

संबंधित लेख

Tags: