Splunk HTTP Event Collector को Apache APISIX के साथ एकीकृत करना
API7.ai
February 10, 2022
सिस्टम की जटिलता बढ़ रही है क्योंकि प्रौद्योगिकी पुनरावृत्त होती है और उद्योग संरचना विकसित होती है। लॉग विभिन्न विश्लेषण इंजनों का समर्थन कर सकते हैं और उनके साथ संगत हो सकते हैं ताकि उपयोगकर्ताओं के लिए चयन, संचालन और रखरखाव प्रक्रिया में लागत कम हो सके। लॉग-आधारित विश्लेषण और अवलोकन सिस्टम स्थिरता सुनिश्चित करने के लिए आधारशिला के रूप में बहुत महत्वपूर्ण भूमिका निभाता है।
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 मान है।
जैसा कि नीचे दिए गए चित्र में दिखाया गया है, इसका मतलब है कि लॉगिन सफल रहा है।

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

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

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

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/A | Splunk HEC एंडपॉइंट कॉन्फ़िगरेशन जानकारी |
| endpoint.uri | हाँ | N/A | Splunk HEC इवेंट संग्रह API |
| endpoint.token | हाँ | N/A | Splunk HEC पहचान टोकन |
| endpoint.channel | नहीं | N/A | Splunk HEC भेजने वाला चैनल पहचान, संदर्भ: About HTTP Event Collector Indexer Acknowledgment |
| endpoint.timeout | नहीं | 10 | Splunk HEC डेटा जमा करने का समय समाप्ति (सेकंड में)। |
| ssl_verify | नहीं | TRUE | SSL प्रमाणीकरण सक्षम करें, संदर्भ: 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" पर क्लिक करें।

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

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 में एक चर्चा थ्रेड शुरू करें या मेलिंग सूची के माध्यम से संचार करें।
संबंधित लेख
- Apache APISIX Integration with Kafka for Efficient Real-Time Log Monitoring
- Apache APISIX & RocketMQ Helps User API Log Monitoring Capabilities
- Apache APISIX Integrates with Google Cloud Logging to Improve Log Processing
- Apache APISIX Integrates with SkyWalking to Create a Full Range of Log Processing