Özet - Logging
- Docker & Kubernetes kursu
- İleri seviye
- Ders 60/70
- 5 dk
Fluentd, Elasticsearch ve Kibana'yı birleştirerek bir logging akışı yazarsın.
Özet: logging
Bu grupta:
- Merkezi loglama: toplayıcı (DaemonSet) → depo ve arama → arayüz; silinen pod'ların log'ları da korunur.
- Uygulamalar stdout'a, tercihen JSON ve istek kimliğiyle yazar.
- Fluent Bit/Fluentd:
[INPUT] tail,[FILTER] kubernetes,[OUTPUT] es. - Elasticsearch günlük indekslerde saklar (ILM ile temizlik); Loki daha ucuz bir etiket tabanlı alternatiftir.
- Kibana data view ve KQL ile arama; toplayıcı hostPath, RBAC ve toleration ister.
node log -> Fluent Bit -> Elasticsearch -> Kibana
-> Promtail -> Loki -> GrafanaUygulama Toplayıcının izni
Bir ClusterRole YAML'ı yaz: rbac.authorization.k8s.io/v1; adı fluent-bit; tek kural: apiGroups: [""], resources: ["pods", "namespaces"], verbs: ["get", "list", "watch"].
Başlangıç kodu
# buraya yazÖrnek çözüm
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: fluent-bit
rules:
- apiGroups: [""]
resources: ["pods", "namespaces"]
verbs: ["get", "list", "watch"]Beklenen çıktı
clusterrole.rbac.authorization.k8s.io/fluent-bit created
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir uygulama log'larını container içindeki /app/log.txt dosyasına yazarsa merkezi loglama ne görür?
- Yalnızca hataları
- Dosya adını
- Hiçbir şey; toplayıcı yalnızca stdout/stderr'den gelen dosyaları okur Doğru cevap
- Tüm satırları
Açıklama: Çözüm stdout'a yazmak ya da dosyayı okuyan bir sidecar eklemektir.
2 Log'lara Kubernetes meta verisini ekleyen süzgeci yaz.
[FILTER]
Name ____
Match kube.*
[FILTER]
Name kubernetes
Match kube.*
Açıklama: kubernetes süzgeci pod/namespace/etiket ekler.
3 Eşleştir.
| Kavram | Anlamı |
|---|---|
Fluent Bit |
Topla |
Elasticsearch |
Sakla |
Kibana |
Ara |
Loki |
Etiket indeksi |