Promtail Customize & Pipeline
Last updated
Was this helpful?
Last updated
Was this helpful?
Kubernetes üzerinde çalışan Promtail’in varsayılan konfigürasyon dosyası (promtail.yaml
), base64 formatında saklandığı için önce decode edilerek ham içeriğine ulaşılabilir. Ardından, logları daha zengin etiketleyebilmek (örneğin method
ve code
gibi değerleri yakalamak) amacıyla ek pipeline_stages
tanımlanarak, JSON içindeki belirli alanlar parse edilip Loki’ye label olarak gönderilebilir. Sonraki adımda, güncellenmiş promtail.yaml
içeren bir Secret yeniden oluşturulup Promtail Pod’u yeniden başlatılarak, yeni konfigürasyonun devreye girmesi sağlanır.
Mevcut promtail.yaml
Dosyasını Alma (Decode)
Promtail yapılandırması varsayılan olarak, bir Secret içinde (örneğin loki-promtail
) saklanır.
Bu komut, base64 kodlu içeriği “promtail.yaml” dosyasına yazar. Böylece varsayılan veya mevcut Promtail yapılandırması düz metin (YAML) olarak düzenlenebilir hale gelir.
Düzenleme: Loglardan Ek Verileri Label Olarak Çıkarmak
promtail.yaml
içindeki scrape_configs
altında, pipeline_stages
bölümüne match
ve json
gibi ek aşamalar eklenir.
match
ile belirli bir label’e (örneğin app="api"
) sahip logların ekstra işlem görmesi sağlanır.
Ardından iç içe json
parse aşamaları kullanılarak log mesajından code
, method
gibi alanlar ayrıştırılır.
Son olarak labels:
altında code
ve method
tanımlanır. Bu sayede Loki, bu alanları label olarak saklar ve Grafana’da etiket bazlı filtreleme yapmak mümkün hale gelir.
Secret’ı Güncelleme Yeni “promtail.yaml” kaydedildikten sonra mevcut Secret silinir:
Ardından aşağıdaki komutla yeniden oluşturulur:
Böylece Promtail Pod’una yeni YAML konfigürasyonu enjekte edilir.
Tüm Pod’ları Sırasıyla Yeniden Başlatma (Tek bir pod varsa direkt olarak delete yapabilirsiniz)
loki-promtail
yerine kendi DaemonSet adınızı yazın (örn. loki-promtail
, promtail-daemonset
vs.).
Bu komut, DaemonSet’in bağlı olduğu tüm Pod’ları sırasıyla silip tekrar oluşturur. Yeni Pod’lar ayağa kalkarken güncellenmiş Secret’tan promtail.yaml
dosyasını okur.
Sonuç: Yeni Etiketler (Labels)
Grafana’daki Explore ekranında sorgu yaptığınızda, log satırlarının label kısmında code
ve method
gibi ek alanlar görünür. Bu sayede code=200
gibi etiket bazlı filtrelerle loglara daha hızlı ve verimli ulaşılabilir.
Kısacası, bu yöntemle Promtail, log içindeki alanları JSON olarak parse edip Loki’ye label biçiminde aktarır. Böylece logları yalnızca metin bazlı aramak yerine, eklenen etiketlere göre de sorgulama yapılabilir (örneğin method="GET"
, code="200"
).