GH GambleHub

लॉग पाइपलाइन: ईएलके और लोकी

1) क्यों और कब: लॉगिंग गोल

अवलोकन और आरसीए: देबग त्वरण, पोस्टमार्टम, एसएलओ/एसएलए नियंत्रण।

सुरक्षा और ऑडिट: पहुंच के निशान, विसंगतियां, जांच।

व्यवसाय मैट्रिक्स: रूपांतरण, भुगतान प्रवाह, पीएसपी त्रुटियां, उपयोगकर्ता व्यवहार।

अनुपालन: भंडारण, पीआईआई मास्किंग, प्रतिधारण नीतियां, कानूनी पकड़।

लॉग के प्रकार: एप्लिकेशन, इंफ्रास्ट्रक्चर (kubelet, kube-proxy, CNI, ingress), नेटवर्क, ऑडिट, भुगतान, वेब इवेंट, Nginx/Envoy, डेटाबेस।

2) उच्च-स्तरीय वास्तुशिल्प

विकल्प ए: ईएलके

उत्पादक Logshipper (Filebeat/Fluent Bit/Vector) Logstash/Beats इनपुट Elasticsearch

विकल्प बी: लोकी

निर्माता → प्रोमेल/फ्लेंट बिट → लोकी वितरक/इंगेस्टर/क्वेरियर → Grafana/Алертинг

हाइब्रिड

फुल-टेक्स्ट/फेस सर्च के लिए ईएलके, कम लागत वाले स्केलेबल स्टोरेज के लिए लोकी, और फास्ट ग्राफिंग जैसे प्रश्न; ग्राफाना में मैट्रिक्स/निशान के साथ सहसंबंध।

3) डेटा प्रवाह और प्रसंस्करण स्तर

1. संग्रह: बाइट टेल फ़ाइलें, जर्नल, syslog, stdout कंटेनर, HTTP।

2. संवर्धन: टाइमस्टैम्प सामान्यीकरण, होस्ट/पॉड/नेमस्पेस, एनवी (प्रोड/स्टेज), रिलीज, SHA, ट्रेस/स्पैन आईडी।

3. पार्सिंग: JSON → सपाट क्षेत्र; grok/regex; Nginx/दूत प्रारूप; भुगतान योजनाएं (PSP त्रुटि कोड)।

4. फ़िल्टरिंग/संपादन: कट पीआईआई (पैन, सीवीवी, ई-मेल, पते), रहस्य, टोकन।

5. रूटिंग: किरायेदार/सेवा/लॉग स्तर द्वारा; गर्म/गर्म/ठंडा; S3/object भंडारण के लिए।

6. भंडारण और प्रतिधारण: डेटा वर्ग द्वारा टीटीएल नीति।

7. एक्सेस/एनालिटिक्स/अलर्ट।

4) ईएलके: प्रमुख समाधान

4. 1 लॉगस्टैश/बीट्स

आसान पिकर के लिए नोड्स पर बीट्स/फ्लेंट बिट का उपयोग करें, केंद्रीय ईटीएल के रूप में लॉगस्टैश (ग्रोक, डिसेक्ट, म्यूटेट, जियोप, ट्रांसलेट)।

लॉगस्टैश पूल: इनगेस्ट-ईटीएल, सिक्योरिटी-ईटीएल, पेमेंट-ईटीएल - लोड को अलग करने के लिए।

4. 2 Elasticsearch

शार्डिंग: ~ 20-50 जीबी प्रति शार्ड पर ध्यान केंद्रित करें; "शार्द विस्फोट" से बचें।

निर्देशिका रणनीति: 'लॉग्स- <किरायेदार> - -YYYY। एमएम डीडी 'या डेटा स्ट्रीम; आकार/समय द्वारा रोलओवर।

ILM (गर्म/गर्म/ठंडा/जमे हुए):
  • गर्म: एसएसडी, 1-7 दिन; गर्म: एचडीडी, 7-30 दिन; ठंड: वॉल्यूमेट्रिक; जमे हुए: धीमी पहुंच के साथ न्यूनतम लागत।
  • मैपिंग - हार्ड-प्रकार के क्षेत्र, फील्डडेटा को प्रतिबंधित करें, और गतिशील क्षेत्र बनाएं।
  • कैश और प्रश्न: कीवर्ड फ़ील्ड द्वारा फ़िल्टर, समुच्चय - बड़े करीने से; उच्च आवृत्ति खोज के लिए पिन-टू-हॉट।

4. 3 किबाना

मल्टी-टेनेंसी के लिए रिक्त स्थान।

सहेजे गए खोज, लेंस/टीएसवीबी, थ्रेशोल्ड/अलर्ट मेट्रिक्स।

इंडेक्स-पैटर्न ('लॉग-टेनेंट-') द्वारा RBAC।

5) लोकी: प्रमुख निर्णय

5. 1 लेबल मॉडल

लेबल लोकी के "इंडेक्स" हैं। "कम कार्डिनैलिटी का उपयोग करें: 'क्लस्टर', 'नेमस्पेस', 'ऐप', 'लेवल', 'एनवी', 'किरायेदार'।

उच्च कार्डिनैलिटी वाले क्षेत्र (uid, request_id) - एक पंक्ति में; LogQL के माध्यम से चुटकी लेने पर ' =', 'json', 'regexp' को पुनः प्राप्त करें।

5. 2 घटक

प्रोमेल: сбор stdout, files, जर्नल; पार्सर्स (JSON, regex, cri)।

वितरक/इंजेस्टर/क्वेरियर/क्वेरी-फ्रंटेंड: भूमिका द्वारा स्केलिंग; कैशिंग का अनुरोध करें।

चम्क लॉग के दीर्घकालिक भंडारण के लिए वस्तु भंडारण (S3/GCS/MinIO)।

5. 3 LogQL तकनीक

फास्ट ग्रेप: '{app = "भुगतान," स्तर =" त्रुटि"} = "अस्वीकृत"

JSON: ' {app =" api"} json code =" 5xx" unwrap अवधि avg ()'

मेट्रिक्स के साथ सहसंबंध: 'दर ({app = "nginx"} = "200" [5 मी]')

6) ईएलके बनाम लोकी तुलना (संक्षिप्त में)

खोज/एकत्रीकरण: ईएलके जटिल पूर्ण-पाठ और मुखर प्रश्नों के लिए मजबूत है; लोकी - ग्रेप जैसा, तेज और सस्ता।

लागत: लोकी अक्सर बड़ी मात्रा (वस्तु भंडारण + छोटा सूचकांक) पर सस्ता होता है।

परिचालन जटिलता: ELK को सूचकांकों/ILM, Javu-hips में अनुशासन की आवश्यकता होती है; लोकी - लेबल विषय।

मेट्रिक्स/निशान के साथ सहसंबंध: लोकी स्वाभाविक रूप से ग्राफाना/ओटेल स्टैक के साथ एकीकृत करता है; ईएलके यह भी जानता है कि कैसे, लेकिन एकीकरण के माध्यम से अधिक बार।

7) सुरक्षा और अनुपालन

किनारे पर पीआईआई संस्करण (शिपर): मास्क पैन, ई-मेल, फोन, पते, टोकन।

टीएलएस इन-ट्रांजिट, एजेंटों और बसों के बीच एमटीएलएस।

RBAC: प्रति-किरायेदार सूचकांक/लेबल; neimspaces/रिक्त स्थान का अलगाव।

रहस्य स्वच्छता: रहस्य के बिना पर्यावरण चर, व्यक्तिगत गुप्त प्रबंधक।

कानूनी पकड़: खंड/सूचकांक ठंड तंत्र; विवादित अवधि के लिए एक बार लिखें।

विलोपन/प्रतिधारण: डेटा वर्ग द्वारा टीटीएल नीतियां (प्रोड/स्टेटफुल/पेमेंट/ऑडिट)।

लॉग एक्सेस ऑडिट ट्रेल्स।

8) विश्वसनीयता और थ्रूपुट

बफरिंग और बैकप्रेशर: एजेंटों के लिए स्थानीय फ़ाइलें/डिस्क; घातीय बैकऑफ के साथ पीछे हटता है।

दोहराव के दौरान डुप्लिकेट से बचने के लिए 'ingest _ id '/' log _ id' fields।

HA: लोकी ES मास्टर्स/ingesters के लिए न्यूनतम 3 नोड्स; Antiaffinity AZ।

किरायेदार/सेवा द्वारा कोटा और दर-सीमा; "तूफान" लॉगिंग के खिलाफ सुरक्षा।

लॉग स्तर योजना: 'ERROR' सीमित, 'DEBUG' केवल अस्थायी रूप से गतिशील फ्लैग के माध्यम से.

9) प्रदर्शन और ट्यूनिंग

ईएलके:
  • जेवीएम 50% रैम (लेकिन ≤ ~ 30-32 जीबी प्रति नोड), पृष्ठ कैश महत्वपूर्ण है।
  • स्मार्ट रोलओवर (20-50 जीबी/शार्ड), 'रिफ्रेश _ इंटरवल' - इंडेक्स के लिए।
  • लॉगस्टैश में, "भारी" कराहने से बचें; यदि संभव हो, तो स्रोत पर JSON लॉगिंग।
लोकी:
  • सही लेबल सेट गति की कुंजी है।
  • बड़े टुकड़े - सस्ता भंडारण, लेकिन ingester पर अधिक महंगी स्मृति; संतुलन।
  • बार-बार निवेदन के लिए क्वैरी-फ्रंटेंड + कैश (मेमे/रेडिस).

10) लॉग के लिए फिनोप्स (लागत)

क्षेत्रों/लेबलों की कार्डिनैलिटी में कमी।

DEBUG नमूना और गतिशील "लॉग स्विच"।

घूर्णन: वस्तु के लिए छोटा गर्म, लंबा ठंडा।

Deduplication और समेकित संदेश (बैच)।

सस्ते भंडारण कक्षाओं में शायद ही कभी लॉग का उपयोग किया जाता है।

मान डैशबोर्ड: वॉल्यूम/डेटा स्ट्रीम/लेबल/इंडेक्स/किरायेदार।

11) अवलोकन 3-इन -1

प्रत्येक लॉग के लिए ट्रेस-आईडी/स्पैन-आईडी (एपीआई गेटवे और सेवाओं पर मिडिलवेयर)।

OpenTelemetry: एकल संदर्भ; टेम्पो/जैगर के निर्यातकों, प्रोमेथियस/मिमिर को मैट्रिक्स, लोकी/ईएलके को लॉग।

त्वरित परिदृश्य: "मीट्रिक द्वारा सतर्क संबंधित लॉग में कूदें - ट्रैक में कूदें।"

12) बहु-किरायेदारी और अलगाव

Namespace-आधारित अलगाव (K8s लेबल), अलग सूचकांक पैटर्न/लेबल 'किरायेदार'।

किरायेदार द्वारा अलर्ट/डैशबोर्ड/रेटेंस्चना का पृथक्करण।

खपत बिलिंग: निगलना, भंडारण, अनुरोध की मात्रा।

13) कन्वेयर के लिए निगरानी और एसएलओ

SLO निगेस्ट: "99। 9% लॉग वितरित

SLO खोजें: "p95 प्रश्न

तकनीकी मैट्रिक्स: कतार की गहराई, गिराए गए लॉग, पुनर्संरचना दर, पार्सर त्रुटि दर, इंजेस्टर/ईएस नोड विफलता।

14) विशिष्ट तैनाती योजनाएं

प्रबंधित: Elasticsearch Service/Opensearch, Grafana Cloud Loki।

स्व-होस्ट : ES/Loki के लिए Stat Set, AZ के लिए विरोधी आत्मीयता, PersistentVolums, वस्तु भंडारण।

एज एजेंट (क्षेत्रों में अनुप्रयोग): केंद्रीय निगरानी के लिए स्थानीय बफर + टीएलएस चैनल।

15) कॉन्फ़िगरेशन उदाहरण

15. 1 प्रोमेल (K8s, CRI JSON)

yaml scrape_configs:
- job_name: kubernetes-pods kubernetes_sd_configs:
- role: pod pipeline_stages:
- cri: {}
- json:
expressions:
level: level msg: message trace: trace_id
- labels:
level:
app:
namespace:
- match:
selector: '{namespace="prod"}'
stages:
- regex:
expression: '(?P<pan>\b[0-9]{12,19}\b)'
- replace:
expression: '(?P<pan>\b[0-9]{12,19}\b)'
replace: '[REDACTED_PAN]'
relabel_configs:
- action: replace source_labels: [__meta_kubernetes_pod_label_app]
target_label: app
- action: replace source_labels: [__meta_kubernetes_namespace]
target_label: namespace
- action: replace source_labels: [__meta_kubernetes_pod_node_name]
target_label: node

15. 2 लॉगस्टैश (इनगेस्ट और मास्किंग)

ruby input {
beats { port => 5044 }
}
filter {
json { source => "message" skip_on_invalid_json => true }
mutate { add_field => { "env" => "%{[kubernetes][labels][env]}" } }
PII mutate {
gsub => [
"message", "\b[0-9]{12,19}\b", "[REDACTED_PAN]",
"message", "(?i)(authorization: Bearer)([A-Za-z0-9\.\-_]+)", "\1[REDACTED_TOKEN]"
]
}
}
output {
elasticsearch {
hosts => ["https://es-hot-1:9200","https://es-hot-2:9200"]
index => "logs-%{[fields][tenant]}-%{[app]}-%{+YYYY. MM. dd}"
ilm_enabled => true ssl => true cacert => "/etc/ssl/certs/ca. crt"
user => "${ES_USER}"
password => "${ES_PASS}"
}
}

16) अलर्टिंग और डैशबोर्ड (टेम्पलेट)

Ошибки एपीआई: 'दर ({app = "api ", स्तर =" त्रुटि"} [5 मीटर]> सीमा '→ PagerDuty/Telegram।

Nginx/Envoy में 5xx स्पलैश; एजेंटों में निगलना; विलंबता खोज की वृद्धि।

डैशबोर्ड:
  • सेवाओं/किरायेदारों द्वारा लॉग की मात्रा।
  • शीर्ष त्रुटि पैटर्न (कोड/अपवाद/समापन बिंदु)।
  • प्रतिधारण/भंडारण कक्षाओं द्वारा लागत।

17) गुणवत्ता जांच (लॉग-क्यूए)

लॉगिंग अनुबंध: JSON प्रारूप, आवश्यक फ़ील्ड ('ts', 'level', 'service', 'env', 'trace _ id', 'msg').

CI में लिंटर लॉग: समझौते के बिना उच्च कार्डिनैलिटी के साथ नए क्षेत्रों पर प्रतिबंध लगाना।

कैनरी सेवाएं: रेग्रेशन के शुरुआती पता लगाने के लिए संदर्भ लॉग का उत्पादन।

18) लगातार त्रुटियां और विरोधी पैटर्न

उच्च कार्डिनैलिटी ('उपयोगकर्ता _ आईडी', 'अनुरोध _ आईडी') के साथ लोकी लेबल - मेमोरी का एक विस्फोट।

मैपिंग के बिना ईएस में गतिशील क्षेत्र - "सूचकांक विस्फोट"।

बिक्री में DEBUG "हमेशा के लिए "झंडे द्वारा और टीटीएल के साथ चालू करें।

पीआईआई संशोधन की अनुपस्थिति।

हर चीज के लिए एक सामान्य "अखंड" पाइपलाइन - डोमेन द्वारा बेहतर खंड।

19) कार्यान्वयन योजना (पुनरावृत्ति)

1. एमवीपी: एजेंट + एक पाइपलाइन (अनुप्रयोग), बुनियादी डैशबोर्ड, पीआईआई संस्करण।

2. विस्तार: नेटवर्क/infra-logs, SLO अलर्ट, पटरियों के साथ सहसंबंध।

3. FinOps: प्रतिधारण मैट्रिक्स, लागत रिपोर्ट, लेबल/सूचकांक अनुकूलन।

4. मल्टी-किरायेदार: रिक्त स्थान, आरबीएसी, खपत बिलिंग।

5. विश्वसनीयता: एचए, आपदा-अभ्यास, कानूनी पकड़।

20) उत्पादन में लॉन्च की चेकलिस्ट

  • JSON प्रारूप और सभी सेवाओं में आवश्यक क्षेत्र।
  • PII पर मास्किंग/निगरानी एजेंट।
  • प्रतिधारण/ILM या बाल्टी-जीवनचक्र नीतियां।
  • RBAC/रिक्त स्थान/किरायेदार।
  • SLO निगरानी/खोज और अलर्ट।
  • कैनरी लॉग और लोड टेस्ट रन।
  • मूल्य डैशबोर्ड और सेवा मालिकों पर रिपोर्ट।
  • रनबुक: "अगर अंतर्ग्रहण धीमी गति से/खोज लाल हो जाए तो क्या करें।"

21) मिनी-एफएक्यू

क्या चुनें - ईएलके या लोकी?

Contact

हमसे संपर्क करें

किसी भी प्रश्न या सहायता के लिए हमसे संपर्क करें।हम हमेशा मदद के लिए तैयार हैं!

Telegram
@Gamble_GC
इंटीग्रेशन शुरू करें

Email — अनिवार्य है। Telegram या WhatsApp — वैकल्पिक हैं।

आपका नाम वैकल्पिक
Email वैकल्पिक
विषय वैकल्पिक
संदेश वैकल्पिक
Telegram वैकल्पिक
@
अगर आप Telegram डालते हैं — तो हम Email के साथ-साथ वहीं भी जवाब देंगे।
WhatsApp वैकल्पिक
फॉर्मैट: देश कोड और नंबर (उदा. +91XXXXXXXXXX)।

बटन दबाकर आप अपने डेटा की प्रोसेसिंग के लिए सहमति देते हैं।