> For the complete documentation index, see [llms.txt](https://note.onurbolatoglu.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://note.onurbolatoglu.com/loki/viewing-kubernetes-logs.md).

# Viewing Kubernetes logs

**Viewing Kubernetes Logs** başlığı altında, Kubernetes üzerinde Loki ve Promtail kurulumunu tamamladıktan sonra log’ları **Grafana** üzerinden nasıl görüntüleyebileceğinizi anlatacağım.

### 1. Grafana Explore Ekranı ile Log Sorgulama

1. **Explore’a Erişim**
   * Grafana arayüzünde sol menüdeki **“Explore”** sekmesine giderek veri kaynağını (Loki) seçin.
2. **Label Filtreleri**
   * `pod`, `app`, `namespace`, `node_name` gibi etiketlere göre log sorgusu yapabilirsiniz.
   * Örneğin, `pod="etcd-controlplane"` etiketiyle filtreleyerek ilgili pod’un ürettiği log’ları listeleyebilirsiniz.
3. **Log’ların İncelenmesi**
   * Zaman dilimini “Last 1 hour” veya farklı bir aralığa getirerek anlık veya geçmiş log’ları görüntüleyebilirsiniz.
   * **“Run Query”** butonuna tıkladığınızda, etiketlerle eşleşen log satırları aşağıda listelenir.

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

Bu sayede Kubernetes kümesinde çalışan herhangi bir pod’un ya da uygulamanın log’larına hızla ulaşabilirsiniz.

### 2. Varsayılan Promtail Konfigürasyonu

Helm chart (örneğin `grafana/loki-stack`) kullanarak **Promtail** kurduğunuzda, Promtail **DaemonSet** olarak atanır ve her Kubernetes node’unda çalışıp log toplar. Bu varsayılan kurulum:

1. **Kubernetes Service Discovery**
   * `promtail.yaml` içerisinde yer alan `kubernetes_sd_configs` bölümü, tüm pod’ları otomatik olarak keşfeder.
2. **Varsayılan Etiketleme (Relabeling)**
   * `relabel_configs` sayesinde pod ismi, namespace, container adı gibi bilgileri **label** olarak loglara ekler.
3. **Varsayılan Dizinler**
   * Kubernetes’in genellikle `/var/log/pods` veya `/var/log/containers` altında tuttuğu container loglarını otomatik yakalar.

Özellikle `scrape_configs` bölümü, Promtail’in hangi yolları tarayacağı ve hangi etiketleri ekleyeceğini belirler.

### 3. Promtail Konfigürasyonunu Görüntüleme

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

1. **Pod Ayrıntıları**
   * `kubectl describe pod <promtail-pod-ismi>` komutuyla Promtail pod’unun kullandığı volume ve mount noktalarını görebilirsiniz (örn. `/etc/promtail`).
   * Bu volumelerin büyük kısmı, Kubernetes node’undaki log dizinlerini, konfigürasyon dosyalarını vs. barındırır.
2. **Secret İçerisine Gömülü Config**
   * Helm chart, Promtail’in `promtail.yaml` dosyasını bir **Secret** (örn. `loki-promtail`) içinde base64 olarak saklar.
   * `kubectl get secret loki-promtail -o jsonpath="{.data.promtail\.yaml}" | base64 --decode`komutuyla bu dosyanın içeriğini düz metin olarak görebilirsiniz.

Bu `promtail.yaml` içeriğinde, `scrape_configs`’in **kubernetes-pods** job’uyla otomatik discovery yapıldığını ve relabeling kurallarının tanımlı olduğunu göreceksiniz.

***

`loki-stack` chart’ını kurarken `values.yaml` dosyasında sadece `promtail.enabled: true` ayarını yapıp promtail ile alakalı geri kalan her şeyi varsayılan (default) bırakırsanız, **helm chart’ın kendi içindeki** (yani paketlenmiş varsayılan) `promtail.yaml`devreye girer. Bu varsayılan konfigürasyon:

* Kubernetes node’larında **DaemonSet** olarak Promtail’i çalıştırır,
* **kubernetes\_sd\_configs** ile tüm pod’ların loglarını otomatik keşfeder,
* Log’ları etiketlendirmek (relabel) ve Loki’ye göndermek için temel ayarları içerir.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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/viewing-kubernetes-logs.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.
