Viewing Kubernetes logs
Last updated
Was this helpful?
Last updated
Was this helpful?
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.
Explore’a Erişim
Grafana arayüzünde sol menüdeki “Explore” sekmesine giderek veri kaynağını (Loki) seçin.
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.
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.
Bu sayede Kubernetes kümesinde çalışan herhangi bir pod’un ya da uygulamanın log’larına hızla ulaşabilirsiniz.
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:
Kubernetes Service Discovery
promtail.yaml
içerisinde yer alan kubernetes_sd_configs
bölümü, tüm pod’ları otomatik olarak keşfeder.
Varsayılan Etiketleme (Relabeling)
relabel_configs
sayesinde pod ismi, namespace, container adı gibi bilgileri label olarak loglara ekler.
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.
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.
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.