GH GambleHub

خطوط أنابيب السجل: ELK و Loki

1) لماذا ومتى: أهداف قطع الأشجار

إمكانية الرصد و RCA: تسارع Debag وتشريح الجثة ومراقبة SLO/SLA.
الأمن ومراجعة الحسابات: آثار الوصول، والشذوذ، والتحقيقات.
مقاييس الأعمال: التحويل، تدفق الدفع، أخطاء PSP، سلوك المستخدم.
الامتثال: التخزين، إخفاء PII، سياسات الاحتفاظ، Legal Hold.

أنواع السجلات: التطبيق، البنية التحتية (kubelet، kube-proxy، CNI، الدخول)، الشبكة، التدقيق، الدفع، أحداث الويب، Nginx/Envoy، قاعدة البيانات.

2) هياكل معمارية رفيعة المستوى

الخيار أ: ELK

المنتجون → Logshipper (Filebeat/Fluent Bit/Vector) → Logstash/Beats input → Elasticsearch → Kibana/Алертинг

الخيار ب: لوكي

المنتجون → Promtail/Pluent Bit → Loki distributor/ingester/querier → Grafana/Алертинг

هجين

ELK للبحث عن النص الكامل/الوجه، Loki للتخزين القابل للتطوير منخفض التكلفة، والاستفسارات السريعة الشبيهة بالرسم البياني ؛ الارتباط مع المقاييس/الآثار في غرافانا.

3) مستويات تدفق البيانات ومعالجتها

1. المجموعة: ملفات ذيل البايت، المجلة، syslog، حاويات stdout، HTTP.
2. الإثراء: تطبيع الطابع الزمني، المضيف/الكبسولة/مساحة الاسم، env (prod/stage)، الإصدار، الالتزام SHA، التتبع/span id.
3. الإعراب: JSON → الحقول المسطحة ؛ grok/regex ؛ أشكال Nginx/المبعوث ؛ مخططات الدفع (رموز خطأ PSP).
4. الترشيح/التحرير: قطع PII (PAN، CVV، البريد الإلكتروني، العناوين)، الأسرار، الرموز.
5. المسار: حسب مستوى المستأجر/الخدمة/السجل ؛ الساخنة/الدافئة/الباردة ؛ إلى التخزين S3/object.
6. التخزين والاحتفاظ: سياسة TTL حسب فئة البيانات.
7. الوصول/التحليلات/التنبيهات.

4) ELK: الحلول الرئيسية

4. 1 لوجستاش/دقات

استخدم Beats/Fluent Bit على العقد لسهولة انتقاء، Logstash as central ETL (grok، discuct، mutate، geoip، translate).
برك Logstash: interst-ETL، security-ETL، payments-ETL - لعزل الأحمال.

4. 2 مرن

الشحن: التركيز على ~ 20-50 جيجابايت لكل قطعة ؛ تجنب «انفجار شظية».
استراتيجية الفهرس: "logs- <المستأجر> - <الخدمة> - YYYY. MM. DD 'أو تدفقات البيانات ؛ التمديد حسب الحجم/الوقت.

ILM (ساخن/دافئ/بارد/مجمد):
  • الساخنة: SSD، 1-7 أيام ؛ دافئ: HDD، 7-30 يومًا ؛ الباردة: حجمية ؛ مجمدة: الحد الأدنى للتكلفة مع تباطؤ الوصول.
  • الخرائط - الحقول الصلبة، وتقييد fieldata، وإنشاء حقول ديناميكية.
  • المخبأ والاستفسارات: المرشحات حسب حقول الكلمات الرئيسية، المجاميع - بدقة ؛ دبوس إلى ساخن للبحث عالي التردد.

4. 3 كيبانا

مساحات للإيجار المتعدد.
عمليات البحث المحفوظة، عدسة/TSVB، مقاييس العتبة/التنبيه.
RBAC حسب أنماط الفهرس (logs-tenant-).

5) لوكي: القرارات الرئيسية

5. 1 نموذج التسمية

التسميات هي فهرس لوكي. "استخدم الكاردينالية المنخفضة:" العنقود "،" مساحة الاسم "،" التطبيق "،" المستوى "،" env "،" المستأجر ".
الحقول ذات الكرازة العالية (أويد، request_id) - على التوالي ؛ استرجاع '| ='، '| json'، '| regexp' عند الاستفسار من خلال LogQL.

5. 2 مكونات

Promtail: сбор stdout, files, journald; المحللون (JSON، regex، cri).
الموزع/Ingester/Querier/Query-frontend: التوسع حسب الدور ؛ طلب التخزين المؤقت.
تخزين الكائنات (S3/GCS/MinIO) للتخزين الطويل الأجل لسجلات القطع.

5. 3 تقنيات LogQL

Fast grep: '{app = "payments', level =" خطأ "} | =" رفض "

Парсинг JSON: ' {app =» api»} | json | code =» 5xx» | unwrap term | avg ()'

الارتباط بالمقاييس: 'المعدل ({app = «nginx»} | = «200» [5 م])'

6) مقارنة ELK vs Loki (باختصار)

البحث/التجميع: تعتبر ELK أقوى بالنسبة للاستفسارات المعقدة عن النص الكامل والأوجه ؛ Loki - مثل grep، سريع ورخيص.
التكلفة: غالبًا ما يكون Loki أرخص على الأحجام الأكبر (تخزين الكائن + مؤشر أصغر).
التعقيد التشغيلي: يتطلب التعليم المهني للجميع الانضباط في المؤشرات/ILM، Javu-hips ؛ Loki - تخصصات التسمية.
الارتباط مع المقاييس/الآثار: يتكامل لوكي بشكل طبيعي مع مكدس Grafana/OTel ؛ تعرف ELK أيضًا كيف، ولكن في كثير من الأحيان من خلال التكامل.

7) السلامة والامتثال

إصدار PII على الحافة (الشاحن): قناع PAN، البريد الإلكتروني، الهاتف، العناوين، الرموز.
TLS أثناء العبور، mTLS بين الوكلاء والحافلات.
المكتب الإقليمي لآسيا والمحيط الهادئ: الفهارس/العلامات لكل مستأجر ؛ عزل المساحات/المساحات.
نظافة الأسرار: متغيرات بيئية بدون أسرار، مديرون سريون فرديون.
الحجز القانوني: آلية تجميد القطاعات/المؤشرات ؛ مرة واحدة لفترات متنازع عليها.
الحذف/الاحتفاظ: سياسات TTL حسب فئة البيانات (برود/دولة/مدفوعات/مراجعة حسابات).
سجل الوصول مسارات التدقيق.

8) الموثوقية والإنتاجية

التخزين المؤقت والضغط الخلفي: ملفات/أقراص محلية للوكلاء ؛ التراجع مع التراجع الأسي.
الخصوصية: حقول «infest _ id »/« log _ id» لتجنب التكرار أثناء النسخ المكررة.
HA: 3 عقد على الأقل لأساتذة/مبتدعي Loki ES ؛ مكافحة التقارب по AZ.
الحصص وحدود الأسعار حسب المستأجر/الخدمة ؛ الحماية من «العواصف» قطع الأشجار.
مخطط مستوى السجل: «خطأ» محدود، «DEBUG» فقط مؤقتًا من خلال الأعلام الديناميكية.

9) الأداء والضبط

ELK:
  • JVM كومة 50٪ ذاكرة الوصول العشوائي (ولكن ≤ ~ 30-32 جيجابايت لكل عقدة)، وذاكرة التخزين المؤقت للصفحة مهمة.
  • انقلاب ذكي (20-50 جيجابايت/شارد)، «تحديث _ فاصل زمني» ↑ لأصغر الفهارس.
  • في Logstash، تجنب الأخدود «الثقيل» ؛ إذا أمكن، يقوم JSON بتسجيل الدخول إلى المصدر.
لوكي:
  • مجموعة الملصقات الصحيحة هي مفتاح السرعة.
  • قطع كبيرة → تخزين أرخص، ولكن ذاكرة أكثر تكلفة في ingester ؛ التوازن.
  • Query-frontend + cache (meme/Redis) للطلبات المتكررة.

10) FinOps للسجلات (التكلفة)

تناقص كاردينية الحقول/الملصقات.
أخذ عينات DEBUG و «مفاتيح تسجيل» ديناميكية.
الدوران: قصير ساخن، طويل بارد للاعتراض.
التفريغ والرسائل الموحدة (دفعة).
نادرًا ما تستخدم الأرشفة السجلات لفصول التخزين الرخيصة.
لوحة متابعة القيمة: الحجم/تدفقات البيانات/الملصقات/الفهارس/المستأجرين.

11) إمكانية الرصد 3 في 1

تتبع المعرف/المعرف الشامل لكل سجل (البرامج الوسطى على بوابات وخدمات واجهة برمجة التطبيقات).
OpenTelemetry: سياق واحد ؛ المصدرين إلى Tempo/Jaeger، المقاييس إلى Prometheus/Mimir، سجلات إلى Loki/ELK.
السيناريوهات السريعة: «يقفز التنبيه بمقياس → إلى السجلات المقابلة → يقفز إلى المسار».

12) تعدد الإيجارات والعزلة

العزل القائم على فضاء الأسماء (ملصقات K8s)، أنماط الفهرس/العلامات المنفصلة «المستأجر».
فصل التنبيهات/لوحات القيادة/الريتنشنا حسب المستأجر.
فواتير الاستهلاك: حجم الابتلاع والتخزين والطلبات.

13) الرصد و SLO للناقل نفسه

تناول SLO: "99. 9٪ سجلات تم تسليمها

Search SLO: «p95 queseries <Y sec».
المقاييس التقنية: عمق قائمة الانتظار، جذوع الأشجار المتساقطة، معدل إعادة المعالجة، معدل خطأ المحلل، فشل عقدة ingester/ES.

14) مخططات النشر النموذجية

تمت إدارته: Elasticsearch Service/Opensearch، Grafana Cloud Loki.
K8s المستضافة ذاتيًا: StatefulSets لـ ES/Loki، ومكافحة التقارب لـ AZ، و PersententVolumes، وتخزين الكائنات.
عوامل الحافة (التطبيقات في المناطق): قناة عازلة محلية + TLS إلى المبتلع المركزي.

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.
5xx splash in Nginx/Investoy; الانخفاض في تناول العملاء ؛ نمو البحث عن الكمون.

لوحات القيادة:
  • حجم جذوع الأشجار حسب الخدمات/المستأجرين.
  • أعلى أنماط الخطأ (رمز/استثناء/نقطة النهاية).
  • التكلفة حسب فئات الاحتفاظ/التخزين.

17) فحوصات الجودة (سجل الجودة)

عقود قطع الأشجار: شكل نظام JSON، الحقول المطلوبة ('ts' و 'level' و' service 'و' env 'و' trace _ id 'و' msg ').
سجلات البطانة في CI: حظر الحقول الجديدة ذات الكاردينالية العالية دون اتفاق.
خدمات الكناري: توليد سجلات مرجعية للكشف المبكر عن الانحدارات.

18) الأخطاء المتكررة والأنماط المضادة

ملصقات Loki ذات الكاردينالية العالية («المستخدم _ معرف»، «طلب _ معرف») → انفجار في الذاكرة.
حقول ديناميكية في ES دون رسم خرائط → «انفجار المؤشر».
DEBUG في البيع "إلى الأبد. "قم بتشغيل الأعلام ومع TTL.
غياب تنقيح مؤشر الاستثمار الدولي.
خط أنابيب «متجانس» شائع لكل شيء - شرائح أفضل حسب المجال.

19) خطة التنفيذ (تكرارات)

1. أفضل لاعب: وكلاء + خط أنابيب واحد (تطبيقات)، لوحات القيادة الأساسية، إصدار PII.
2. الامتداد: الشبكة/السجلات الداخلية، تنبيهات SLO، الارتباط بالمسارات.
3. FinOps: مصفوفة الاحتفاظ، تقرير التكلفة، التسمية/تحسين الفهرس.
4. متعدد المستأجرين: المساحات، RBAC، فواتير الاستهلاك.
5. الموثوقية: HA، تدريبات الكوارث، Legal Hold.

20) قائمة مرجعية للإطلاق في الإنتاج

  • شكل JSON والمجالات المطلوبة في جميع الخدمات.
  • PII إخفاء/ابتلاع وكيل.
  • الاحتفاظ/ILM أو سياسات دورة حياة الدلو.
  • RBAC/الأماكن/المستأجرين.
  • SLO تناول/البحث والتنبيهات.
  • سجلات الكناري وتشغيل اختبار التحميل.
  • لوحات القيادة القيمة والإبلاغ عن مالكي الخدمات.
  • كتب التشغيل: «ماذا تفعل إذا سقط/بحث ببطء/شظايا حمراء».

21) الأسئلة الشائعة الصغيرة

ماذا تختار - ELK أم Loki ؟

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

Telegram
@Gamble_GC
بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.