Günlüklerin merkezileştirilmesi
1) Günlükleri neden merkezileştirir
Merkezi günlükler gözlemlenebilirlik, denetim ve uyumluluğun temelidir. Olanlar:- Olay köklerini aramayı hızlandırın (request-id/trace-id ile korelasyon);
- Belirtiler hakkında sinyal uyarıları oluşturmanıza izin verir (hatalar, anomaliler);
- Bir denetim izi verin (kim/ne zaman/ne yaptı);
- Saklama ve depolamanın birleştirilmesi nedeniyle daha düşük maliyet.
2) Temel ilkeler
1. Sadece yapılandırılmış günlükler (JSON/RFC5424) - anahtarsız "serbest metin" yok.
2. Anahtarların tekdüze şeması: 'ts, seviye, hizmet, env, bölge, kiracı, trace_id, span_id, request_id, user_id (maskeli), msg, kv...'.
3. Varsayılan korelasyon: trace_id ağ geçidinden arka uçlara ve günlüklere çevirin.
4. Gürültü azaltma: doğru seviyeler, örnekleme, tekrarlama veri tekilleştirme.
5. Tasarım gereği güvenlik: PII maskeleme, RBAC/ABAC, değişmezlik.
6. Ekonomi: Sıcak/sıcak/soğuk, sıkıştırma, toplama, TTL ve rehidrasyon.
3) Tipik mimariler
EFK/ELK: (Fluent Bit/Fluentd/Filebeat) - (Kafka - опц.) - (Elasticsearch/OpenSearch) - (Kibana/OpenSearch Gösterge Tabloları). Evrensel arama ve toplama.
Loki benzeri (etiketlerle log indeksleme): Promtail/Fluent Bit - Loki - Grafana. Büyük hacimler için daha ucuz, güçlü etiket filtresi + doğrusal görüntüleme.
Cloud: CloudWatch/Cloud Logging/Log Analytics + soğuk depoya (S3/GCS/ADLS) ve/veya SIEM'e dışa aktarma.
Data Lake yaklaşımı: Son N gün için göndericiler - nesne depolama (parke/buzdağı) - ucuz analitik sorgular (Athena/BigQuery/Spark) + çevrimiçi katman (OpenSearch/Loki).
Öneri: Online katman (7-14 gün sıcak) ve arşiv (ay/yıl) rehidrate yeteneği ile gölde tutmak için.
4) Diyagram ve günlüklerin biçimi (öneri)
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: Zaman için RFC3339, 'TRACE/DEBUG/INFO/WARN/ERROR/FATAL' kümesinden seviye, snake_case tuşları.
5) Günlük tutma seviyeleri ve örnekleme
DEBUG - sadece dev/aşamasında; Bayrakla ve TTL ile prod.
BİLGİ - taleplerin/olayların yaşam döngüsü.
UYARI - SLO'yu etkilemeden şüpheli durumlar.
HATA/ÖLÜMCÜL - İstek/kullanıcı üzerindeki etkisi.
- Tekrarlanan hatalar için hız sınırı (örneğin, 1/sn/anahtar).
- İzlerin kuyruk örneklemesi (tam günlükleri/izleri yalnızca "kötü" istekler için bırakın).
- Dynamic: hata fırtınası durumunda, ayrıntıyı azaltın, özeti kaydedin.
6) Kütüklerin teslimi (acenteler ve nakliyeciler)
Düğümde: Akıcı Bit/Filebeat/Promtail stdout dosyaları/juntrals, ayrıştırma, maskeleme, tamponlama toplar.
Ağ kuyrukları: Tepe düzgünleştirme, geri alma ve sipariş için Kafka/NATS.
Güvenilirlik: Backpressure, disk tamponları, teslimat onayları (en az bir kez), idempotent indeksleri (key-hash).
Kenarda filtreleme: Ağa çarpmadan önce "sohbet've sırları atmak.
7) Endeksleme ve depolama
Zaman bölümleme (günlük/haftalık) + 'env/bölge/kiracı' (dizin şablonları veya etiketler aracılığıyla).
Depolama katmanları:- Sıcak (SSD, 3-14 gün): hızlı arama ve uyarılar.
- Sıcak (HDD/dondurucu, 30-90 gün): bazen bakarız.
- Soğuk/Arşiv (nesne, aylar/yıllar): uyumluluk ve nadir araştırmalar.
- Sıkıştırma ve döndürme: ILM/ISM (yaşam döngüsü ilkeleri), gzip/zstd, altörnekleme (toplama tabloları).
- Rehidrasyon: Arşivlenmiş yığınların soruşturma için "sıcak'bir kümeye geçici olarak yüklenmesi.
8) Arama ve Analiz: Örnek Sorgular
Olay: Zaman filtresi × 'service =...' × 'level> = ERROR' × 'trace _ id'/' request _ id'.
Sağlayıcılar: 'Kod: PSP _' ve' kv. sağlayıcı: psp-a 'bölgeye göre gruplandırılmış.
Anomaliler: Mesajların sıklığında bir artış veya alan dağılımlarında bir değişiklik (ML-dedektörleri, kural tabanlı).
Denetim: 'kategori: denetim' + 'aktör'/' kaynak' + sonuç.
9) Metrikler ve izlerle korelasyon
Özdeş tanımlayıcılar: Her üç sinyalde de (metrikler, günlükler, izler) 'trace _ id/span _ id'.
Grafiklerden bağlantılar: p99 panelinden 'trace _ id'tarafından günlüklere tıklanabilir geçiş.
Sürüm ek açıklamaları: Hızlı bağlanma için metrikler ve günlüklerdeki sürümler/kanaryalar.
10) Güvenlik, PII ve Uyumluluk
Alan sınıflandırması: PII/sırlar/finans - girişte maske veya silme (Fluent Bit/Lua filtreleri, Re2).
RBAC/ABAC: role göre dizin/etiket erişimi, row-/field-level-security.
Denetim ve düzenleyici gereklilikler için değişmezlik (WORM/append-only).
Saklama ve "unutma hakkı": TTL/anahtarlarla silme, tokenization 'user _ id'.
İmzalar/hash'ler: Kritik dergilerin bütünlüğü (yönetici eylemleri, ödemeler).
11) SLO ve boru hattı günlük metrikleri
Teslimat: 99. Sıcak katmandaki olayların %9'u 30-60 saniye ≤.
Kayıplar: <0. 24 saatte %01 (referans işaretlerine göre).
Arama kullanılabilirliği: ≥ 99. 28 günde %9.
İsteklerin gecikmesi: Tipik filtrelerde p95 ≤ 2-5 saniye.
Maliyet: $/1M olaylar ve katmanlarda $/depolama/GB.
12) Gösterge panoları (minimum)
Boru hattı sağlığı: nakliyecilerin giriş/çıkışı, retrays, dolum tamponları, Kafka lag.
Hizmetlere/kodlara göre hatalar: üst N, eğilimler, yüzdelik dilimleri 'latency _ ms'.
Denetim etkinliği: yönetici eylemleri, sağlayıcı hataları, erişim.
Ekonomi: hacim/gün, indeks büyümesi, katman bazında değer, "pahalı" sorgular.
13) İşlemler ve oyun kitapları
Günlük fırtınası: aracıda agresif örnekleme/hız sınırını etkinleştirin, tamponları yükseltin, akışın bir kısmını geçici olarak ısınmaya aktarın.
Şema sürüklenmesi: yeni anahtarların/tiplerin görünümü için uyarı, şema-katalog müzakeresini başlat.
Yavaş arama: dizinleri yeniden oluşturma, kopyaları artırma,'ağır "sorguları analiz etme, eski yığınları arşivleme.
Güvenlik Olayı: Anında değişmezlik etkinleştirildi, eserler boşaltıldı, role göre erişim kısıtlandı, RCA.
14) FinOps: kütüklerde nasıl kırılmayacağı
Verbosity'yi kaldırın: çok satırlı stacktrace'i bir 'stack' alanına ve örnek tekrarlara dönüştürün.
TTL'yi etkinleştir: 'env'/' level'/' category' için farklı.
Nadir erişim için Loki/archive + on-demand rehidrate kullanın.
Partiler ve sıkıştırma: Daha büyük partiler daha ucuzdur, ancak arama SLA'larına dikkat edin.
Sık yapılan değerlendirmeleri (günlük toplamları) gerçekleştirin.
15) Enstrümantal örnekler
Akıcı Bit (maskeleme ve OpenSearch'e gönderme)
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 erişim günlüğü в 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 Politikası (sıcak, sıcak, sil)
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) Uygulama kontrol listesi
- Kabul edilen alan düzeni ve günlük seviyeleri; trace/request-id korelasyonu etkinleştirildi.
- Maskeleme ve tamponlarla yapılandırılmış aracılar (Fluent Bit/Promtail).
- Çevrimiçi katman (OpenSearch/Loki/Cloud) ve arşiv (S3/GCS + parke) seçildi.
- ILM/ISM + sıcak/sıcak/soğuk tutma politikaları, rehidrat işlemi.
- RBAC/ABAC, denetim değişmezliği, erişim günlüğü.
- Boru hattı panoları, kayıp uyarıları/gecikme/disk tamponları.
- Playbooks: günlük fırtına, şema sürüklenme, yavaş arama, güvenlik olayı.
- Finansal limitler: $/1M etkinlikleri, "pahalı" istekler için kotalar.
17) Anti-desenler
Yapısız metin günlükleri - filtreleme ve toplama yetersizliği.
INFO'da dev stacktrace - hacim patlaması.
Korelasyon eksikliği - tüm hizmetler için "çırpınan".
"Her şeyi sonsuza dek" saklamak - bir uçak gibi bulut faturası.
Kayıtlardaki sırlar/PII - uyumluluk riskleri.
Satışlarda manuel dizin düzenlemeleri - sürüklenme ve uzun arama duruş süresi.
18) Alt satır
Log merkezileştirme sadece bir yığın değil, bir sistemdir. Standartlaştırılmış şema, korelasyon, güvenli göndericiler, katmanlı depolama ve sıkı erişim politikaları, günlükleri SRE, güvenlik ve ürün için güçlü bir araç haline getirir. Doğru retentions ve FinOps bütçe tutmak ve boru hattı SLOs ve playbooks araştırmaları hızlı ve tekrarlanabilir yapmak.