प्रस्तावना
Datadog द्वारा Vector एक उच्च-प्रदर्शन, अंत-से-अंत (एजेंट & एग्रीगेटर) अवलोकनात्मक डेटा पाइपलाइन है जो आपको आपके सभी लॉग और मीट्रिक्स को इकट्ठा, परिवर्तित, और मार्गित करने की अनुमति देती है। इसके अतिरिक्त, यह ओपन सोर्स है। जबकि यह खुद एक एग्रीगेटर के रूप में कार्य कर सकता है, किसी विशेष डेटा भंडारण उपकरण, जैसे Manticore, के साथ उपयोग करना अधिक प्रभावी पाया जा सकता है।
आइए देखें कि ये एक साथ कैसे कार्य कर सकते हैं। इसके लिए, हम dpkg.log
के अनुक्रमण का एक उदाहरण उपयोग करेंगे, जो डेबियन पैकेज प्रबंधक का एक मानक लॉग फ़ाइल है। लॉग स्वयं में एक सरल संरचना है, जैसा कि नीचे दिखाया गया है:
2023-05-31 10:42:55 status triggers-awaited ca-certificates-java:all 20190405ubuntu1.1
2023-05-31 10:42:55 trigproc libc-bin:amd64 2.31-0ubuntu9.9 <none>
2023-05-31 10:42:55 status half-configured libc-bin:amd64 2.31-0ubuntu9.9
2023-05-31 10:42:55 status installed libc-bin:amd64 2.31-0ubuntu9.9
2023-05-31 10:42:55 trigproc systemd:amd64 245.4-4ubuntu3.21 <none>
कॉन्फ़िगरेशन
यहाँ Vector.dev की कॉन्फ़िगरेशन फ़ाइल का toml प्रारूप में एक उदाहरण है:
[sources.test_file]
type = "file"
include = [ "/var/log/dpkg.log" ]
[transforms.modify_test_file]
type = "remap"
inputs = [ "test_file" ]
source = """
.vec_timestamp = del(.timestamp)"""
[sinks.manticore]
type = "elasticsearch"
inputs = [ "modify_test_file" ]
endpoints = ["http://127.0.0.1:9308"]
bulk.index = "dpkg_log"
ध्यान दें कि, इस उदाहरण में, हम मानते हैं कि Manticore अपने डिफ़ॉल्ट http पोर्ट 9308 का उपयोग करेगा। यदि आप एक कस्टम http पोर्ट का उपयोग करते हैं, तो आपको अपने Vector.dev कॉन्फ़िगरेशन को उपयुक्त रूप से बदलना चाहिए। यह भी ध्यान दें कि हमने कॉन्फ़िग में transforms
अनुभाग जोड़ा है ताकि डिफ़ॉल्ट timestamp
फ़ील्ड का नाम बदल सकें क्योंकि यह Manticore में एक आरक्षित शब्द है।
परिणाम
अब बस उपरोक्त कॉन्फ़िगरेशन के साथ Vector.dev को शुरू करें, और dpkg लॉग से डेटा Manticore को भेजा जाएगा और सही तरीके से अनुक्रमित किया जाएगा।
यहाँ बनाई गई तालिका का परिणामस्वरूप स्कीमा और डाले गए दस्तावेज़ का एक उदाहरण है:
mysql> DESCRIBE dpkg_log;
+-----------------+---------+--------------------+
| Field | Type | Properties |
+-----------------+---------+--------------------+
| id | bigint | |
| file | text | indexed stored |
| host | text | indexed stored |
| message | text | indexed stored |
| source_type | text | indexed stored |
| vec_timestamp | text | indexed stored |
+-----------------+---------+--------------------+
mysql> SELECT * FROM testlog_3 LIMIT 3\G
*************************** 1. row ***************************
id: 7856533729353672195
file: /var/log/dpkg.log
host: logstash-787f68f6f-nhdd2
message: 2023-06-05 14:03:04 startup archives install
source_type: file
vec_timestamp: 2023-08-04T15:32:50.203091741Z
*************************** 2. row ***************************
id: 7856533729353672196
file: /var/log/dpkg.log
host: logstash-787f68f6f-nhdd2
message: 2023-06-05 14:03:04 install base-passwd:amd64 <none> 3.5.47
source_type: file
vec_timestamp: 2023-08-04T15:32:50.203808861Z
*************************** 3. row ***************************
id: 7856533729353672197
file: /var/log/dpkg.log
host: logstash-787f68f6f-nhdd2
message: 2023-06-05 14:03:04 status half-installed base-passwd:amd64 3.5.47
source_type: file
vec_timestamp: 2023-08-04T15:32:50.203814031Z
निष्कर्ष
इस प्रकार, इस गाइड में उल्लिखित एकीकरण के साथ, आप अब Manticore का उपयोग करके अपने लॉग डेटा को आसानी से और प्रभावी रूप से अनुक्रमित कर सकते हैं, जो Datadog द्वारा Vector के साथ सहयोग में है, जो एक उच्च-प्रदर्शन अंत-से-अंत अवलोकनात्मक डेटा पाइपलाइन है। Vector.dev और Manticore के बीच यह समन्वय न केवल लॉग डेटा प्रबंधन के लिए एक सुव्यवस्थित दृष्टिकोण प्रदान करता है बल्कि परिवर्तनों और मार्गनिर्धारण की अनुमति देकर कार्यक्षमता को बढ़ाता है। चाहे आप सरल या जटिल लॉग संरचनाओं के साथ काम कर रहे हों, यह एकीकरण एक मजबूत समाधान प्रदान करता है, जिससे आपके डेटा को इकट्ठा, परिवर्तित, और संग्रहीत करने की प्रक्रिया अधिक सुलभ और कुशल हो जाती है।