GH GambleHub

Кондукторлор: ELK жана Loki

1) Эмне үчүн жана качан: Логин максаттары

байкоо жана RCA: тездетүү Дебаг, Post-Мортем, SLO/SLA контролдоо.
Коопсуздук жана аудит: кирүү издери, аномалиялар, тергөө.
Бизнес-метрика: конверсия, төлөм флоу, PSP каталары, колдонуучулардын жүрүм-туруму.
Комплаенс: сактоо, PII жаап-жашыруу, Retenshn саясаты, Legal Hold.

Логдордун түрлөрү: тиркемелик, инфраструктуралык (kubelet, kube-proxy, CNI, ingress), тармактык, аудитордук, төлөм, веб-окуялар, Nginx/Envoy, DD.

2) Жогорку даражалуу архитектура

Вариант А: ELK

Producers → Logshipper (Filebeat/Fluent Bit/Vector) → Logstash/Beats input → Elasticsearch → Kibana/Алертинг

Вариант B: Loki

Producers → Promtail/Fluent Bit → Loki distributor/ingester/querier → Grafana/Алертинг

Гибрид

ELK толук текст/фасет боюнча издөө үчүн, Loki үчүн арзан масштабдуу сактоо жана тез grep сыяктуу суроолор; Графанадагы метриктер/жолдор менен корреляция.

3) маалымат агымы жана иштетүү деңгээл

1. Чогултуу: Биткойн tail файлдар, journald, syslog, stdout контейнерлер, HTTP.
2. Байытуу: timestamp нормалдаштыруу, host/pod/namespace, env (prod/stage), release, commit SHA, trace/span id.
3. Парсинг: JSON → flat fields; grok/regex; Nginx/Envoy форматтары; төлөм схемалары (PSP ката коддору).
4. чыпкалоо/өзгөртүү: PII кесип (PAN, CVV, электрондук почта, даректер), сырлар, токендер.
5. Роутинг: tenant/service/лог-деңгээл боюнча; hot/warm/cold; S3/объект сактоо.
6. Сактоо жана retenshn: маалымат класстары боюнча TTL саясаты.
7. Access/Analytics/Alerty.

4) ELK: негизги чечимдер

4. 1 Logstash/Beats

Колдонуңуз Beats/Fluent Bit үчүн жеңил жыйноочу, Logstash - борбордук ETL (grok, dissect, mutate, geoip, translate).
Logstash Pool: ingest-ETL, security-ETL, payments-ETL - жүктөрдү изоляциялоо үчүн.

4. 2 Elasticsearch

Charding: ~ 20-50 GB боюнча багыт; "шард жарылуудан" качыңыз.
Индекс стратегиясы: 'logs- <tenant> - <service> -YYYY. MM. DD 'же маалымат агымдары; rollover көлөмү/убактысы боюнча.

ILM (hot/warm/cold/frozen):
  • hot: SSD, 1-7 күн; warm: HDD, 7-30 күн; cold: көлөмдүк; frozen: жай кирүү менен минималдуу наркы.
  • Mappings: катуу талааларды типтештирүү, чектөө 'fielddata' жана динамикалык талааларды түзүү.
  • Кэш жана суроолор: keyword-талаа чыпкалар, агрегаттар - кылдат; жогорку жыштыктагы издөө үчүн pin-to-hot.

4. 3 Kibana

Мейкиндиктер (мейкиндиктер) көп тенанттуулук үчүн.
Сакталган searches, Lens/TSVB, threshold/metric-alert.
индекс-үлгүлөрү боюнча RBAC ('logs-tenant-').

5) Loki: негизги чечимдер

5. 1 этикеткалар модели

Лейблдер Loki "индекси" болуп саналат. Төмөнкү кардиналдуулукту колдонуңуз: 'cluster', 'namespace', 'app', 'level', 'env', 'tenant'.
Жогорку кардиналдуу талаалар (uid, request_id) - сапта; LogQL '=', '| json', '| regexp' аркылуу суроо-талапты алып салыңыз.

5. 2 компоненттери

Promtail: сбор stdout, files, journald; Parsers (JSON, regex, cri).
Distributor/Ingester/Querier/Query-frontend: ролдору боюнча масштабдоо; суроо-талаптарды кэш.
Object storage (S3/GCS/MinIO) узак мөөнөттүү чанк сактоо үчүн.

5. 3 LogQL ыкмалары

Тез grep: '{app = "payments", level =" error"} | = "declined"'

Парсинг JSON: `{app="api"} | json | code="5xx" | unwrap duration | avg()`

Метриктер менен корреляция: 'rate ({app = "nginx"} | = "200" [5m])'

6) Салыштыруу ELK vs Loki (кыскача)

Издөө/бириктирүү: ELK татаал толук текст жана фасет суроо үчүн күчтүү; Loki - grep-like, тез жана арзан.
Баасы: Loki көп учурда чоң көлөмдө арзан (объект сактоо + аз индекси).
Иштөө татаалдыгы: ELK индекстер/ILM, Javu-хипстер боюнча тартипти талап кылат; Loki - этикеткалар боюнча сабактар.
Метриктер/жолдор менен корреляция: Loki табигый Grafana/OTel айнек менен бириктирет; ELK да билет, бирок көбүнчө интеграция аркылуу.

7) Коопсуздук жана комплаенс

PII-түзөтүү четинде (shipper): PAN, электрондук почта, тел, даректери, токендерди жашыруу.
TLS in-transit, mTLS агенттер жана шиналар ортосунда.
RBAC: per-tenant индекстер/лейблдер; неймспейстерди/мейкиндиктерди изоляциялоо.
Secrets hygiene: сырсыз чөйрөнүн өзгөрмөлөрү, жеке жашыруун менеджерлер.
Legal Hold: сегменттерди/индекстерди тоңдуруу механизми; талаштуу мезгилдер үчүн write-once.
Алып салуу/retenshn: маалымат класстары боюнча TTL саясаты (prod/stateful/төлөмдөр/аудит).
Логторго кирүү үчүн аудит трейлерлери.

8) Ишенимдүүлүк жана кубаттуулугу

Буферизация жана backpressure: агенттердин жергиликтүү файлдары/дисктери; экспоненциалдык backoff менен retrains.
Idempotency: 'ingest _ id '/' log _ id' талаалары кайталанганда дубль болбош үчүн.
HA: ES-мастерлери/Loki Ингестерлери үчүн кеминде 3 Nodes; antiaffinity по AZ.
tenant/service боюнча квота жана rate-limits; "бороон-чапкындан" коргоо.
Логдордун деңгээлинин схемасы: 'ERROR' чектелген, 'DEBUG' динамикалык желектер аркылуу гана убактылуу.

9) аткаруу жана тюнинг

ELK:
  • JVM heap 50% RAM (бирок ≤ ~ 30-32 ГБ), page cache маанилүү.
  • акылдуу rollover (20-50 ГБ/шард), 'refresh _ interval' ↑ ingest-индекстери үчүн.
  • Logstash "оор" grok качуу; мүмкүн болсо, JSON-Логин булагы.
Loki:
  • Туура белги топтому - ылдамдыктын ачкычы.
  • Big Чанк → арзан сактоо, бирок Ingester үчүн кымбат эс; баланс.
  • Query-frontend + кэш (мем/Redis) үчүн кайталап суроо.

10) Логдор үчүн FinOps (наркы)

Талаалардын/лейблдердин кардиналдуулугун төмөндөтүү.
DEBUG Самплинг жана динамикалык "лог-кызылча".
Rotation: кыска Hot, объектиге узун cold.
Дедупликация жана консолидацияланган билдирүүлөр (batch).
Арзан сактоо класстарына сейрек колдонулган логдорду архивдөө.
Дашборд наркы: көлөмү/data-агымдар/лейблдер/индекстер/тенанттар.

11) Метриктер жана жолдор менен байланыш (Observability 3-жылы-1)

Ар бир журналда Trace-ID/Span-ID (API шлюздарында жана кызматтарында орто эсеп).
OpenTelemetry: бирдиктүү контекст; Tempo/Jaeger экспортерлор, Prometheus/Mimir метриктер, Loki/ELK Логи.
Fast Scripts: "Метрика боюнча алерт → тиешелүү Логи секирүү → трассага секирүү".

12) Көп-тенанттык жана изоляция

Namespace-негизделген изоляция (K8s labels), өзүнчө индекс-үлгүлөрү/' tenant 'лейблдери.
Алерттердин/дашборддордун/ретеншндун тенант боюнча бөлүнүшү.
Керектөө боюнча биллинг: ingest көлөмү, storage, суроолор.

13) Conveyor өзү үчүн мониторинг жана SLO

SLO ingest: «99. 9% логдор жеткирилди <X сек".
SLO издөө: "p95 суроолор <Y сек".
Техникалык көрсөткүчтөр: queue depth, dropped logs, reprocess rate, error rate parsers, ingester/ES nod.

14) типтүү жайгаштыруу схемалары

Managed: Elasticsearch Service/Opensearch, Grafana Cloud Loki.
Self-hosted K8s: StatefulSets үчүн ES/Loki, anti-affinity боюнча AZ, PersistentVolumes, объект сактоо.
Edge агенттери (региондордогу тиркемелер): жергиликтүү буфер + TLS канал боюнча борбордук ingest.

15) Конфигурация мисалдары

15. 1 Promtail (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 Logstash (ingest жана камуфляж)

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) Алертинг жана дашборддор (шаблондор)

Ошибки API: `rate({app="api",level="error"}[5m]) > threshold` → PagerDuty/Telegram.
Nginx/Envoy боюнча 5xx Splash; Ингест агенттер; издөө latency өсүшү.

Дашборддор:
  • Сервистер/тенанттар боюнча логдордун көлөмү.
  • Жогорку ката үлгүлөрү (код/өзгөчөлүк/endpoint).
  • Ретеншн/сактоо класстары боюнча баасы.

17) Сапатын текшерүү (лог-QA)

Логин келишимдери: JSON форматы, милдеттүү талаалар ('ts', 'level', 'service', 'env', 'trace _ id', 'msg').
CI Logs Linter: макулдашуу жок жогорку кардиналдуу менен жаңы талааларды тыюу.
Канарейка кызматтары: регрессияны эрте аныктоо үчүн эталондук логдорду түзүү.

18) Тез-тез каталар жана анти-үлгүлөрү

Жогорку кардиналдуу Loki лейблдери ('user _ id', 'request _ id') → эс жарылуу.
ES-жылы динамикалык талаалар эч кандай мэппинг → "индекстер жарылуу".
DEBUG "түбөлүккө". желектер жана TTL менен күйгүзүү.
PII редакциясынын жоктугу.
Бардык үчүн бир жалпы "монолиттүү" конвейер - домендердин мыкты сегменттери.

19) Ишке ашыруу планы (итерация)

1. MVP: агенттер + бир пайплайн (тиркемелер), базалык дашборддор, PII-чыгаруу.
2. Кеңейтүү: тармактык/инфра-логи, SLO алерттери, жолдор менен кореляция.
3. FinOps: retenshn-матрица, нарк отчету, этикеткаларды/индекстерди оптималдаштыруу.
4. Multitenant: мейкиндик, RBAC, керектөө боюнча биллинг.
5. Ишенимдүүлүк: HA, disaster-drills, Legal Hold.

20) Чек-тизмесин ишке киргизүү

  • JSON форматы жана бардык кызматтарда милдеттүү талаалар.
  • Агент/ingest боюнча PII жашыруу.
  • Retenshn/ILM же bucket-lifecycle саясаты.
  • RBAC/мейкиндик/тенанттар.
  • SLO ingest/издөө жана алерталар.
  • Канар жана сыноо жүгүрүү.
  • Дашборд наркы жана кызмат ээлери боюнча отчет.
  • Runbooks: "ingest түшүп/жай издөө/кызыл шарлар болсо эмне кылуу керек".

21) Mini-FAQ

Эмне тандоо керек - ELK же Loki?

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Telegram
@Gamble_GC
Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.