Log mərkəzləşdirilməsi
1) Niyə log mərkəzləşdirmək
Mərkəzləşdirilmiş qeydlər müşahidə, audit və uyğunluğun təməlidir. Onlar:- hadisələrin köklərinin axtarışını sürətləndirir (request-id/trace-id ilə korrelyasiya);
- simptomlar (səhvlər, anomaliyalar) üzərində siqnal alertləri qurmağa imkan verir;
- audit izi (kim/nə vaxt/nə etdi);
- retensiya və saxlama unifikasiyası ilə dəyəri azaldır.
2) Əsas prinsiplər
1. Yalnız strukturlaşdırılmış qeydlər (JSON/RFC5424) - açarları olmayan «free-text» yoxdur.
2. Vahid açar sxemi: 'ts, level, service, env, region, tenant, trace_id, span_id, request_id, user_id (masked), msg, kv...'.
3. Default korrelyasiya: trace_id gateway-dən arxa planlara və girişlərə atın.
4. Minimum səs-küy: düzgün səviyyələr, sampling, təkrarların deduksiyası.
5. Təhlükəsizlik by design: PII-maskalama, RBAC/ABAC, dəyişməzlik.
6. İqtisadiyyat: hot/warm/cold, sıxılma, aqreqasiya, TTL və rehydration.
3) Tipik arxitekturalar
EFK/ELK: (Fluent Bit/Fluentd/Filebeat) → (Kafka — опц.) → (Elasticsearch/OpenSearch) → (Kibana/OpenSearch Dashboards). Universal axtarış və aqreqasiya.
Loki-bənzər (log-indeksasiya etiketləri): Promtail/Fluent Bit → Loki → Grafana. Böyük həcmli, güclü etiket filtri + xətti görünüş üçün daha ucuzdur.
Buludlar: CloudWatch/Cloud Logging/Log Analytics + soyuq saxlama (S3/GCS/ADLS) və/və ya SIEM-ə ixrac.
Data Lake yanaşma: shippers → obyekt saxlama (parquet/iceberg) → ucuz analitik sorğular (Athena/BigQuery/Spark) + son N gün üçün online qat (OpenSearch/Loki).
Tövsiyə: Prod-onkoll üçün onlayn təbəqə (7-14 gün hot) və arxiv (ay/illər) rehydrate imkanı ilə lake saxlayın.
4) Log sxemi və formatı (tövsiyə)
Minimum JSON formatı:json
{
"ts":"2025-11-01T13:45:12.345Z",
"level":"ERROR",
"service":"payments-api",
"env":"prod",
"region":"eu-central",
"tenant":"tr",
"trace_id":"0af7651916cd43dd8448eb211c80319c",
"span_id":"b7ad6b7169203331",
"request_id":"r-7f2c",
"user_id":"", // masked
"route":"/v1/payments/charge",
"code":"PSP_TIMEOUT",
"latency_ms":1200,
"msg":"upstream PSP timeout",
"kv":{"provider":"psp-a","attempt":2,"timeout_ms":800}
}
Standartlar: vaxt üçün RFC3339, 'TRACE/DEBUG/INFO/WARN/ERROR/FATAL' dəstindən level, snake_case açarları.
5) Log səviyyələri və sampling
DEBUG - yalnız dev/stage; bayraq və TTL ilə prod.
INFO - sorğuların/hadisələrin həyat dövrü.
WARN - SLO-ya təsir etmədən şübhəli hallar.
ERROR/FATAL - sorğuya/istifadəçiyə təsir.
- təkrar səhvlər üçün rate-limit (məsələn, 1/san/açar).
- tail-sampling yolları (yalnız «pis» sorğular üçün tam giriş/treys buraxın).
- dinamik: səhvlər fırtınasında detalları azaltmaq, birləşdirilmiş saxlamaq.
6) Logların çatdırılması (agentlər və şipperlər)
Node: Fluent Bit/Filebeat/Promtail stdout faylları/jurnalları toplayır, parsing, maskalama, bufer edir.
Şəbəkə növbələri: Kafka/NATS pik, retraj və nizamlama üçün.
Etibarlılıq: backpressure, disk buferləri, çatdırılma təsdiqləri (at-least-once), idempotent indeksləri (açar-hash).
Kənarda filtrasiya: şəbəkəyə girməmişdən əvvəl «söhbət» və sirlərin atılması.
7) Indeksasiya və saxlama
Partisioning time (daily/weekly) + po 'env/region/tenant' (indeks-şablon və ya etiket vasitəsilə).
Saxlama qatları:- Hot (SSD, 3-14 gün): sürətli axtarış və alert.
- Warm (HDD/dondurucu, 30-90 gün): bəzən axtarırıq.
- Cold/Archive (obyekt, ay/illər): uyğunluq və nadir araşdırmalar.
- Sıxılma və rotasiya: ILM/ISM (həyat dövrü siyasəti), gzip/zstd, downsampling (aqreqasiya cədvəlləri).
- Rehydration: araşdırma üçün «isti» klasterə arxiv hissələrinin müvəqqəti yüklənməsi.
8) Axtarış və analitika: tipik sorğular
Hadisə: × 'service =...' × 'level> = ERROR' × 'trace _ id '/' request _ id'.
Provayderlər: 'code: PSP _' və 'kv. provider: psp-a 's bölgə qruplaşması ilə.
Anomaliyalar: mesajların tezliyinin artması və ya sahələrin paylanmasının dəyişdirilməsi (ML-detektorlar, rule-based).
Audit: 'category: audit' + 'actor '/' resource' + nəticə.
9) Metrlər və izlər ilə korrelyasiya
Eyni identifikatorlar: hər üç siqnalda 'trace _ id/span _ id' (metriklər, qeydlər, treyslər).
Qrafik linkləri: p99 panelindən 'trace _ id' loqlarına klikabel keçid.
Relizlərin şərhləri: sürətli bağlama üçün metrik və log versiyaları/kanaryalar.
10) Təhlükəsizlik, PII və komplayens
Sahələrin təsnifatı: PII/Secrets/Finance - girişdə maskalamaq və ya silmək (Fluent Bit/Lua filtrləri, Re2).
RBAC/ABAC: rollar üzrə indekslərə/etiketlərə giriş, row-/field-level-security.
Audit və tənzimləyicilərin tələbləri üçün dəyişməzlik (WORM/append-only).
Retence və «unudulmaq hüququ»: TTL/açar silinməsi, 'user _ id' tokenizasiyası.
İmzalar/Hash: Kritik jurnalların bütövlüyü (inzibati fəaliyyət, ödənişlər).
11) SLO və Paypline Loads Metrics
Çatdırılma: 99. 9% isti təbəqə hadisələri ≤ 30-60 san.
Zərər: <0. 24 saat ərzində 01% (nəzarət nişanları üzrə).
Axtarış mövcudluğu: ≥ 99. 28 gün ərzində 9%.
Sorğuların gecikməsi: p95 ≤ 2-5 saniyə standart filtrlərdə.
Dəyəri: $/1M hadisə və $/depolama/GB qat.
12) Daşbordlar (minimum)
Paypline sağlamlığı: giriş/çıxış şipperləri, retralar, buferlərin doldurulması, lag Kafka.
Services/kodlar üzrə səhvlər: Top-N, trendlər, persentili 'latency _ ms'.
Audit fəaliyyəti: inzibati hərəkətlər, provayder səhvləri, girişlər.
İqtisadiyyat: həcm/gün, indeks-artım, qat-qat dəyəri, «bahalı» sorğular.
13) Əməliyyat və playbook
Fırtına Log: Agressive sampling/rate-limit agent, bufer qaldırmaq, müvəqqəti warm axını bir hissəsi köçürmək.
Drift sxemləri: yeni açarların/tiplərin görünüşü, sxemlərin koordinasiyasının başlaması (schema-catalog).
Yavaş axtarış: indekslərin yenidən yığılması, replikaların artırılması, «ağır» sorğuların təhlili, köhnə partiyaların arxivləşdirilməsi.
Təhlükəsizlik hadisəsi: dəyişməzliyin dərhal aktivləşdirilməsi, artefaktların boşaldılması, rollara girişin məhdudlaşdırılması, RCA.
14) FinOps: qovuqlarda iflas etməmək üçün necə
Verbozluğu aradan qaldırın: çox sətirli stacktrace-i 'stack' sahəsinə çevirin və təkrarları sample edin.
TTL daxil edin: 'env '/' level '/' category' üçün fərqlidir.
Nadir giriş üçün Loki/Arxiv + on-demand rehydrate istifadə edin.
Partizan və sıxılma: böyük partizanlar daha ucuzdur, lakin SLA axtarışını izləyin.
Tez-tez analitik hesabatları (gündəlik aqreqatlar) materiallaşdırın.
15) Alət nümunələri
Fluent Bit (maskalanma və OpenSearch göndərilməsi)
ini
[INPUT]
Name tail
Path /var/log/app/.log
Parser json
Mem_Buf_Limit 256MB
[FILTER]
Name modify
Match
Remove_key credit_card, password
[OUTPUT]
Name es
Host opensearch.svc
Port 9200
Index logs-${tag}-${date}
Logstash_Format On
Suppress_Type_Name On
Nginx access log в JSON с trace_id
nginx log_format json escape=json '{ "ts":"$time_iso8601","remote":"$remote_addr",'
'"method":"$request_method","path":"$uri","status":$status,'
'"bytes":$body_bytes_sent,"ua":"$http_user_agent","trace_id":"$http_trace_id"}';
access_log /var/log/nginx/access.json json;
OpenSearch ILM siyasəti (hot → warm → delete)
json
{
"policy": {
"phases": {
"hot": { "actions": { "rollover": { "max_age": "7d", "max_size": "50gb" } } },
"warm": { "min_age": "7d", "actions": { "forcemerge": { "max_num_segments": 1 } } },
"delete":{ "min_age": "90d", "actions": { "delete": {} } }
}
}
}
16) Giriş çek siyahısı
- Sahə sxemi və log səviyyələri qəbul edilmişdir; trace/request-id korrelyasiyası aktivdir.
- Maskalanma və tamponlar ilə xüsusi agentlər (Fluent Bit/Promtail).
- Online qat (OpenSearch/Loki/bulud) və arxiv (S3/GCS + parquet) seçilmişdir.
- ILM/ISM + hot/warm/cold retention siyasəti, rehydrate prosesi.
- RBAC/ABAC, audit üçün dəyişməzlik, giriş jurnalı.
- Paypline Dashboard, itki/lag/disk buferləri üçün həyəcan.
- Playbook: fırtına yuvaları, sürüklənmə sxemləri, yavaş axtarış, təhlükəsizlik hadisəsi.
- Maliyyə limitləri: $/1M hadisələr, «bahalı» sorğular üçün kvotalar.
17) Anti-nümunələr
Struktursuz mətn qeydləri → süzülmək və yığmaq mümkün deyil.
INFO → həcmi partlayış nəhəng stacktrace.
Korrelyasiya yoxdur → Bütün xidmətlər üzrə «çırpma».
Saxlama «hər zaman» → təyyarə kimi bulud hesab.
Sirləri/PII log → komplayens riskləri.
Prod → sürüklənmə və uzun axtarış fasilələrində indekslərin əl ilə düzəlişləri.
18) Yekun
Log mərkəzləşdirilməsi sadəcə yığın deyil, sistemdir. Standartlaşdırılmış sxem, korrelyasiya, təhlükəsiz şipperlər, qat-qat saxlama və ciddi giriş siyasəti loqləri SRE, təhlükəsizlik və məhsul üçün güclü bir vasitəyə çevirir. Düzgün retansiyalar və FinOps büdcəni saxlayır və SLO payplayns və playbukları araşdırmaları sürətli və təkrarlanabilir edir.