# Architecture of Loki

<figure><img src="/files/VWlqcMAZdGCrWkC7a8tK" alt=""><figcaption></figcaption></figure>

#### 1. Log’ları Toplamak İçin Agent’lar

* **Promtail**: Grafana ekosistemi tarafından Loki için özel olarak geliştirilen bir log toplama aracıdır.
* **FluentD, Logstash vb.**: Loki, Promtail haricindeki yaygın log toplama çözümleriyle de **entegrasyon** sunar. Yani mevcut log altyapınızı tamamen değiştirmek zorunda değilsiniz.

Bu araçlar (agent’lar), **sunucu üzerinde** çalışan uygulamaların veya işletim sisteminin ürettiği log’ları toplayıp **Loki’ye** gönderir.

#### 2. Loki’ye Giden Veri: Loglar + Etiketler (Labels)

* Agent tarafından toplanan her bir log satırı, yanında **etiketler** (labels) adı verilen **metaveri** bilgileriyle birlikte Loki’ye ulaşır.
  * Örnek etiketler: `{ job="syslog", env="production", app="frontend" }`
* **Loki sadece etiketleri indeksler**, log metninin tamamını değil. Log içeriği ise “chunk” adı verilen bloklarda **sıkıştırılmış** biçimde saklanır.
  * Bu yöntem, özellikle indeks boyutunu küçük tutarak hem performansa hem de maliyete olumlu yansır.

#### 3. Depolama Seçenekleri

* **Yerel Dosya Sistemi (Filesystem)**: Dilerseniz Loki’nin kurulu olduğu sunucunun diskinde depolama yapabilirsiniz; ancak büyük ölçekli loglar için yönetimi zorlaşabilir.
* **Nesne Depolama (Object Storage)**: AWS S3, MinIO gibi sistemlerde log “chunk”larını saklamak mümkündür.

Bu sayede, Elasticsearch gibi bir tam metin indeks veritabanını yönetmek yerine, Loki veriyi **daha ucuz** bir biçimde saklar.

#### 4. Sorgulama (Query) ve LogQL

* Log’lara erişmek ve analiz etmek için **LogQL** adında özel bir sorgu dili kullanılır.
  * Örnek sorgularla belirli etiketlere, zaman aralıklarına veya içerik parçalarına göre filtre yapılabilir.
* **Grafana Entegrasyonu**: Loki, Grafana ile **doğrudan** entegre olur ve “Data Source” olarak eklenebilir.
  * Böylece GUI üzerinden (Grafana arayüzü) LogQL sorguları yazılabilir, sonuçlar görsel olarak incelenebilir.

#### 5. Senaryo: Birden Fazla Sunucudan Log Toplama

* Birkaç farklı sunucudan (örneğin node-1, node-2) agent’lar aracılığıyla loglar toplanıp **tek bir Loki servisine** gönderilebilir.
* Loki, gelen logları etiketleriyle birlikte kabul eder ve uygun depolama altyapısına kaydeder.
* Sonrasında herhangi bir sorun veya hata analizi gerekince, LogQL sorgularıyla ilgili log satırlarına hızla erişilebilir.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://note.onurbolatoglu.com/loki/architecture-of-loki.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
