Grafana'nın yerel günlük toplayıcısı Loki hakkında ne kadar bilginiz var?
sobes.tech yapay zeka
AI'dan gelen yanıt
Loki’yi iyi biliyorum. Grafana Labs tarafından geliştirilen yatay ölçeklenebilir, yüksek erişilebilirlikte ve çok kiracılı bir log toplama sistemidir. Ana özellik, tüm log içeriği yerine sadece meta verilerin (etiketlerin) indekslenmesidir; bu, depolama ve indeksleme maliyetlerini önemli ölçüde azaltır.
Loki’nin mimarisi birkaç ana bileşeni içerir:
- Distributor: Gelen logları alır, doğrular, parçalara ayırır ve Ingester’a yönlendirir.
- Ingester: Logların uzun vadeli depolanmasından (S3, GCS, MinIO veya yerel depolama gibi) sorumludur ve sorguları hızlandırmak için en son verileri bellekte önbelleğe alır.
- Querier/Query-Frontend: Log okuma sorgularını işler. Querier, hem Ingesters’tan (son loglar için) hem de uzun vadeli depolamadan veri isteyebilir. Query-Frontend, sonuçları önbelleğe alabilir ve karmaşık sorguları daha küçük parçalara bölebilir.
- Compactor: Parquet gibi depolama alanları için, küçük log parçalarını daha büyük bloklara sıkıştırır ve okuma işlemini optimize eder.
Loki, logların indekslenmesi için Prometheus benzeri bir etiket sistemi kullanır. Sorgular LogQL dilinde yapılır; bu dil, PromQL’ye benzer sözdizimine sahiptir ve etiketlere ve içeriğe göre filtreleme ile toplulaştırma yapmaya olanak tanır.
Grafana ile entegrasyonu çok sıkıdır, Loki bir veri kaynağı olarak çalışır. Loglar, aynı etiketler kullanılarak Prometheus’taki metriklere kolayca bağlanabilir.
LogQL kullanım örnekleri:
// "production" isim alanındaki tüm logları seç
{namespace="production"}
// "production" isim alanındaki ve "error" kelimesini içeren logları seç
{namespace="production"} |= "error"
// Son bir saatteki log girişlerinin sayısını, konteynerlere göre gruplayarak hesapla
sum by (container) (count_over_time({namespace="production"}[1h]))
Loki, Kubernetes kümelerinde Promtail (daemonset) veya Fluentd/Fluent Bit çıkış eklentileri kullanılarak logların toplanması ve Loki’ye gönderilmesi için kullanılır. S3 uyumlu depolama, arka uç olarak kullanılır.
Loki’nin avantajları:
- Sadece meta verilerin indekslenmesi sayesinde maliyet tasarrufu
- Yüksek ölçeklenebilirlik
- Daha ağır sistemlere kıyasla kolay dağıtım ve işletim (örneğin ELK)
- Grafana/Prometheus ekosistemiyle sıkı entegrasyon
Dezavantajlar:
- Loglar içinde tam metin eşleşmesine göre arama, gelişmiş arama özellikleri olmadan (Elasticsearch gibi)
- Etiketlerin kalitesi ve tutarlılığına bağlılık, etkin indeksleme ve arama için
Genel olarak, Loki, ölçeklenebilirlik ve Grafana ile entegrasyon ihtiyacı olan, ve logların her alanında tam metin arama gereksinimi olmayan merkezi log toplama çözümleri için mükemmel bir seçimdir.