{"id":38159,"date":"2026-01-24T17:40:57","date_gmt":"2026-01-24T14:40:57","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38159"},"modified":"2026-01-24T17:40:57","modified_gmt":"2026-01-24T14:40:57","slug":"doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/","title":{"rendered":"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu"},"content":{"rendered":"<p><body><\/p>\n<h2>DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu<\/h2>\n<h3>Giri\u015f<\/h3>\n<p>Bulut tabanl\u0131 modern uygulamalar, genellikle Kubernetes gibi konteyner orkestrasyon platformlar\u0131 \u00fczerinde \u00e7al\u0131\u015f\u0131r. Bu platformlar, uygulamalar\u0131n da\u011f\u0131t\u0131m\u0131n\u0131, y\u00f6netimini ve \u00f6l\u00e7eklendirilmesini kolayla\u015ft\u0131r\u0131rken, ayn\u0131 zamanda karma\u015f\u0131kl\u0131klar\u0131n\u0131 da beraberinde getirir. Bir Kubernetes k\u00fcmesinde meydana gelen olaylar (events), k\u00fcmenin sa\u011fl\u0131\u011f\u0131, kaynak kullan\u0131m\u0131, uygulama davran\u0131\u015flar\u0131 ve potansiyel sorunlar hakk\u0131nda kritik bilgiler sa\u011flar. Pod&#8217;lar\u0131n neden ba\u015flat\u0131lamad\u0131\u011f\u0131, bir servisin neden eri\u015filemez oldu\u011fu veya bir birimin neden s\u00fcrekli yeniden ba\u015flat\u0131ld\u0131\u011f\u0131 gibi sorular\u0131n cevaplar\u0131 genellikle bu olay g\u00fcnl\u00fcklerinde gizlidir. Ancak, varsay\u0131lan Kubernetes olay saklama s\u00fcresi genellikle \u00e7ok k\u0131sad\u0131r (\u00e7o\u011fu durumda sadece bir saat), bu da ge\u00e7mi\u015f sorunlar\u0131 te\u015fhis etmeyi veya uzun vadeli e\u011filimleri analiz etmeyi imkans\u0131z hale getirir. \u0130\u015fte tam da bu noktada, &#8220;Events Explorer&#8221; konsepti ve uzun s\u00fcreli olay saklama ihtiyac\u0131 devreye girer.<\/p>\n<p>Bu makale, DigitalOcean Kubernetes Service (DOKS) k\u00fcmesinde olaylar\u0131n uzun s\u00fcreli saklanmas\u0131 ve ke\u015ffedilmesi i\u00e7in kapsaml\u0131 bir &#8220;Events Explorer&#8221; \u00e7\u00f6z\u00fcm\u00fcn\u00fcn nas\u0131l kurulaca\u011f\u0131n\u0131 detayland\u0131racakt\u0131r. Events Explorer, Kubernetes olaylar\u0131n\u0131 toplamak, merkezi bir yerde depolamak, sorgulamak ve g\u00f6rselle\u015ftirmek i\u00e7in kullan\u0131lan bir dizi ara\u00e7 ve mimarinin genel ad\u0131d\u0131r. Bu \u00e7\u00f6z\u00fcm, DOKS ortam\u0131nda kar\u015f\u0131la\u015f\u0131labilecek sorunlar\u0131 daha h\u0131zl\u0131 te\u015fhis etmenize, k\u00fcmenizin davran\u0131\u015f\u0131n\u0131 daha iyi anlaman\u0131za ve genel operasyonel verimlili\u011finizi art\u0131rman\u0131za olanak tan\u0131yacakt\u0131r. Odak noktam\u0131z, a\u00e7\u0131k kaynakl\u0131 ve yayg\u0131n olarak kullan\u0131lan Fluent Bit, Loki ve Grafana \u00fc\u00e7l\u00fcs\u00fc ile bir \u00e7\u00f6z\u00fcm olu\u015fturmak olacakt\u0131r. Bu mimari, maliyet etkinli\u011fi, \u00f6l\u00e7eklenebilirlik ve esneklik sunarak DOKS kullan\u0131c\u0131lar\u0131 i\u00e7in ideal bir se\u00e7imdir.<\/p>\n<h3>Kubernetes Olaylar\u0131 ve Neden Saklamal\u0131y\u0131z?<\/h3>\n<p>Kubernetes olaylar\u0131, k\u00fcme i\u00e7indeki kaynaklar\u0131n (Pod&#8217;lar, Deployments, Services vb.) ya\u015fam d\u00f6ng\u00fcs\u00fc boyunca meydana gelen durum de\u011fi\u015fikliklerini ve \u00f6nemli eylemleri kaydeden mesajlard\u0131r. Bu olaylar, <code>kubectl get events<\/code> komutu ile g\u00f6r\u00fcnt\u00fclenebilir ve genellikle bir kaynakla ilgili kritik bilgileri (\u00f6rne\u011fin, bir Pod&#8217;un neden <code>Pending<\/code> durumda kald\u0131\u011f\u0131 veya bir Deployment&#8217;\u0131n neden g\u00fcncellenemedi\u011fi) i\u00e7erir. Her olay, bir kaynak (Source), bir neden (Reason), bir mesaj (Message) ve bir zaman damgas\u0131 (Timestamp) gibi temel bilgilere sahiptir.<\/p>\n<p>Olaylar iki ana kategoriye ayr\u0131labilir:<br \/>\n*   <strong>Normal Olaylar:<\/strong> Ba\u015far\u0131l\u0131 durum de\u011fi\u015fikliklerini veya beklenen eylemleri g\u00f6sterir (\u00f6rne\u011fin, Pod&#8217;un ba\u015far\u0131yla olu\u015fturulmas\u0131, Image&#8217;\u0131n \u00e7ekilmesi).<br \/>\n*   <strong>Warning Olaylar:<\/strong> Sorunlar\u0131 veya beklenmedik durumlar\u0131 i\u015faret eder (\u00f6rne\u011fin, <code>CrashLoopBackOff<\/code>, <code>FailedScheduling<\/code>, <code>FailedMount<\/code>).<\/p>\n<p>Bu olaylar, k\u00fcme y\u00f6neticileri ve geli\u015ftiriciler i\u00e7in paha bi\u00e7ilmez bir hata ay\u0131klama ve sorun giderme arac\u0131d\u0131r. Ancak, Kubernetes API sunucusu bu olaylar\u0131 varsay\u0131lan olarak yaln\u0131zca k\u0131sa bir s\u00fcre (genellikle 1 saat) saklar. Bu ge\u00e7icilik, a\u015fa\u011f\u0131daki durumlarda ciddi s\u0131n\u0131rlamalar yarat\u0131r:<\/p>\n<p>*   <strong>Ge\u00e7mi\u015f Sorunlar\u0131 Te\u015fhis Etme:<\/strong> Bir sorun saatler veya g\u00fcnler sonra fark edildi\u011finde, ilgili olaylar \u00e7oktan silinmi\u015f olabilir. Bu durum, k\u00f6k neden analizi yapmay\u0131 son derece zorla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>Hata Modellerini Anlama:<\/strong> Belirli bir hatan\u0131n zaman i\u00e7inde ne s\u0131kl\u0131kla meydana geldi\u011fini veya belirli bir Pod&#8217;un neden s\u00fcrekli olarak \u00e7\u00f6kt\u00fc\u011f\u00fcn\u00fc anlamak i\u00e7in uzun vadeli olay verilerine ihtiya\u00e7 vard\u0131r.<br \/>\n*   <strong>Sistem Davran\u0131\u015f\u0131n\u0131 \u0130zleme:<\/strong> K\u00fcme genelindeki e\u011filimleri, kaynak tahsis sorunlar\u0131n\u0131 veya uygulama da\u011f\u0131t\u0131m sorunlar\u0131n\u0131 izlemek i\u00e7in olaylar\u0131n zaman i\u00e7indeki da\u011f\u0131l\u0131m\u0131n\u0131 g\u00f6rmek \u00f6nemlidir.<br \/>\n*   <strong>G\u00fcvenlik Denetimi:<\/strong> Kimin ne zaman hangi kaynak \u00fczerinde i\u015flem yapt\u0131\u011f\u0131n\u0131 veya \u015f\u00fcpheli etkinlikleri takip etmek i\u00e7in olay g\u00fcnl\u00fckleri bir denetim izi g\u00f6revi g\u00f6rebilir.<br \/>\n*   <strong>Performans Optimizasyonu:<\/strong> Belirli olaylar\u0131n s\u0131kl\u0131\u011f\u0131 veya zamanlamas\u0131, performans darbo\u011fazlar\u0131n\u0131 veya verimsiz yap\u0131land\u0131rmalar\u0131 ortaya \u00e7\u0131karabilir.<\/p>\n<p>Bu nedenlerle, Kubernetes olaylar\u0131n\u0131 uzun s\u00fcreli ve merkezi bir \u015fekilde saklamak, modern bir DOKS k\u00fcmesi y\u00f6netiminin temel bir bile\u015fenidir. Events Explorer, bu ihtiyac\u0131 kar\u015f\u0131lamak i\u00e7in tasarlanm\u0131\u015f bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<h3>Events Explorer Nedir?<\/h3>\n<p>Events Explorer, Kubernetes olaylar\u0131n\u0131 toplamak, depolamak, sorgulamak ve g\u00f6rselle\u015ftirmek i\u00e7in kullan\u0131lan entegre bir sistemdir. Tek bir \u00fcr\u00fcn olmaktan ziyade, belirli bir amaca hizmet eden \u00e7e\u015fitli ara\u00e7lar\u0131n bir araya gelmesiyle olu\u015fan bir mimaridir. Temel amac\u0131, Kubernetes&#8217;in k\u0131sa \u00f6m\u00fcrl\u00fc olaylar\u0131n\u0131 kal\u0131c\u0131 hale getirmek ve kullan\u0131c\u0131lar\u0131n bu verilere kolayca eri\u015fmesini sa\u011flamakt\u0131r.<\/p>\n<p>Bir Events Explorer mimarisi genellikle \u015fu bile\u015fenleri i\u00e7erir:<br \/>\n1.  <strong>Olay Toplay\u0131c\u0131 (Event Collector):<\/strong> Kubernetes API&#8217;sinden olaylar\u0131 dinleyen ve bunlar\u0131 bir sonraki a\u015famaya ileten bir ara\u00e7 (\u00f6rne\u011fin, Fluent Bit, kube-event-exporter).<br \/>\n2.  <strong>Olay Depolay\u0131c\u0131 (Event Storage):<\/strong> Toplanan olaylar\u0131 uzun s\u00fcreli ve sorgulanabilir bir \u015fekilde saklayan bir veritaban\u0131 veya depolama sistemi (\u00f6rne\u011fin, Loki, Elasticsearch, DigitalOcean Spaces).<br \/>\n3.  <strong>Olay Sorgulay\u0131c\u0131 ve G\u00f6rselle\u015ftirici (Event Query &#038; Visualizer):<\/strong> Depolanan olaylar\u0131 sorgulamak, filtrelemek, analiz etmek ve g\u00f6rsel panolar halinde sunmak i\u00e7in kullan\u0131lan bir aray\u00fcz (\u00f6rne\u011fin, Grafana, Kibana).<\/p>\n<p>Neden Events Explorer&#8217;a ihtiyac\u0131m\u0131z var? Varsay\u0131lan Kubernetes olay saklama mekanizmas\u0131, anl\u0131k sorun giderme i\u00e7in yeterli olabilir, ancak ge\u00e7mi\u015fe d\u00f6n\u00fck analiz, trend takibi, g\u00fcvenlik denetimi ve karma\u015f\u0131k sorunlar\u0131n k\u00f6k neden analizi i\u00e7in yetersizdir. Events Explorer, bu bo\u015flu\u011fu doldurarak k\u00fcme y\u00f6neticilerine ve geli\u015ftiricilere daha derinle\u015fimli bir g\u00f6r\u00fcn\u00fcrl\u00fck sunar.<\/p>\n<p>DigitalOcean, DOKS i\u00e7in do\u011frudan &#8220;Events Explorer&#8221; ad\u0131nda bir hizmet sunmasa da, kullan\u0131c\u0131lar a\u00e7\u0131k kaynakl\u0131 ara\u00e7lar\u0131 kullanarak kendi \u00e7\u00f6z\u00fcmlerini kolayca kurabilirler. Bu makalede ele alaca\u011f\u0131m\u0131z Fluent Bit, Loki ve Grafana kombinasyonu, DOKS \u00fczerinde Events Explorer kurmak i\u00e7in pop\u00fcler, g\u00fc\u00e7l\u00fc ve maliyet etkin bir yakla\u015f\u0131md\u0131r.<\/p>\n<h3>DOKS K\u00fcmesinde Events Explorer Kurulumu \u0130\u00e7in \u00d6n Gereksinimler<\/h3>\n<p>Events Explorer kurulumuna ba\u015flamadan \u00f6nce, a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n yerine getirildi\u011finden emin olmal\u0131s\u0131n\u0131z:<\/p>\n<p>*   <strong>Aktif Bir DOKS K\u00fcmesi:<\/strong> DigitalOcean hesab\u0131n\u0131zda en az bir adet \u00e7al\u0131\u015fan Kubernetes k\u00fcmesi bulunmal\u0131d\u0131r. Bu k\u00fcmenin yeterli kaynaklara (CPU, RAM, Disk) sahip oldu\u011fundan emin olun, \u00f6zellikle Loki gibi depolama bile\u015fenleri i\u00e7in.<br \/>\n*   <strong><code>kubectl<\/code> Eri\u015fimi:<\/strong> Yerel makinenizde <code>kubectl<\/code> komut sat\u0131r\u0131 arac\u0131n\u0131n kurulu ve DOKS k\u00fcmenize eri\u015fim i\u00e7in yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekmektedir. K\u00fcme yap\u0131land\u0131rma dosyas\u0131n\u0131 DigitalOcean kontrol panelinden indirerek <code>~\/.kube\/config<\/code> dosyas\u0131na ekleyebilirsiniz.<br \/>\n*   <strong>Helm Kurulumu:<\/strong> Kubernetes paket y\u00f6neticisi Helm, Events Explorer bile\u015fenlerini DOKS k\u00fcmenize kolayca da\u011f\u0131tmak i\u00e7in kullan\u0131lacakt\u0131r. Helm&#8217;in yerel makinenizde kurulu ve yap\u0131land\u0131r\u0131lm\u0131\u015f olmas\u0131 gerekmektedir.<br \/>\n*   <strong>DigitalOcean API Token (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nerilir):<\/strong> Baz\u0131 durumlarda (\u00f6rne\u011fin, DigitalOcean Block Storage veya Spaces gibi hizmetleri do\u011frudan entegre etmek i\u00e7in), DigitalOcean API token&#8217;\u0131na ihtiyac\u0131n\u0131z olabilir. Bu token&#8217;\u0131 DigitalOcean kontrol panelinden olu\u015fturabilirsiniz.<br \/>\n*   <strong>Depolama \u00c7\u00f6z\u00fcm\u00fc Se\u00e7imi:<\/strong> Bu makalede Loki&#8217;yi depolama \u00e7\u00f6z\u00fcm\u00fc olarak kullanaca\u011f\u0131z. Loki&#8217;nin kal\u0131c\u0131 veri depolamas\u0131 i\u00e7in DigitalOcean Block Storage kullan\u0131lacakt\u0131r.<\/p>\n<h3>Events Explorer Mimarisi (\u00d6rnek: Fluent Bit, Loki, Grafana)<\/h3>\n<p>DOKS \u00fczerinde Events Explorer kurmak i\u00e7in kullanaca\u011f\u0131m\u0131z mimari, \u00fc\u00e7 ana bile\u015fenden olu\u015fur:<\/p>\n<h4>a. Olay Toplama (Event Collection): Fluent Bit<\/h4>\n<p>*   <strong>Fluent Bit:<\/strong> Hafif, y\u00fcksek performansl\u0131 ve \u00f6l\u00e7eklenebilir bir log i\u015flemcisi ve ileticisidir. Kubernetes ortam\u0131nda loglar\u0131 ve olaylar\u0131 toplamak i\u00e7in genellikle DaemonSet olarak da\u011f\u0131t\u0131l\u0131r. Fluent Bit, do\u011frudan Kubernetes API&#8217;sinden olaylar\u0131 \u00e7ekebilen \u00f6zel bir <code>kubernetes_events<\/code> input eklentisine sahiptir. Bu eklenti, her bir Kubernetes olay\u0131n\u0131 bir log kayd\u0131na d\u00f6n\u00fc\u015ft\u00fcrerek Fluent Bit&#8217;in di\u011fer eklentileri (filtreler ve \u00e7\u0131kt\u0131lar) arac\u0131l\u0131\u011f\u0131yla i\u015flenmesini sa\u011flar.<br \/>\n*   <strong>Da\u011f\u0131t\u0131m \u015eekli:<\/strong> Fluent Bit, DOKS k\u00fcmesindeki her bir worker node&#8217;da \u00e7al\u0131\u015fan bir DaemonSet olarak da\u011f\u0131t\u0131lacakt\u0131r. Bu sayede her node&#8217;daki olaylar toplanabilir.<br \/>\n*   <strong>Yap\u0131land\u0131rma:<\/strong> Fluent Bit, toplad\u0131\u011f\u0131 olaylar\u0131 belirli etiketlerle (\u00f6rne\u011fin, k\u00fcme ad\u0131, namespace, olay nedeni) zenginle\u015ftirecek ve ard\u0131ndan bunlar\u0131 depolama \u00e7\u00f6z\u00fcm\u00fcne (Loki) iletecek \u015fekilde yap\u0131land\u0131r\u0131lacakt\u0131r.<\/p>\n<h4>b. Olay Depolama (Event Storage): Loki<\/h4>\n<p>*   <strong>Loki:<\/strong> Grafana Labs taraf\u0131ndan geli\u015ftirilen, Prometheus&#8217;tan ilham alan bir log toplama sistemidir. Loglar\u0131, Prometheus&#8217;un metrikleri depolad\u0131\u011f\u0131 gibi etiketler (labels) kullanarak depolar. Loki, log i\u00e7eri\u011fini indekslemek yerine sadece etiketleri indeksledi\u011fi i\u00e7in olduk\u00e7a maliyet etkin ve \u00f6l\u00e7eklenebilir bir depolama \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. \u00d6zellikle Kubernetes olaylar\u0131 gibi yap\u0131land\u0131r\u0131lm\u0131\u015f loglar i\u00e7in \u00e7ok uygundur.<br \/>\n*   <strong>Kal\u0131c\u0131l\u0131k:<\/strong> DOKS k\u00fcmesinde Loki&#8217;nin verilerini kal\u0131c\u0131 olarak saklamak i\u00e7in DigitalOcean Block Storage kullan\u0131lacakt\u0131r. Bu, Loki pod&#8217;lar\u0131 yeniden ba\u015flat\u0131lsa veya ta\u015f\u0131nsa bile olay verilerinin kaybolmamas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong>\u00d6l\u00e7eklenebilirlik:<\/strong> Loki, bile\u015fenlerini (ingester, querier, distributor) ba\u011f\u0131ms\u0131z olarak \u00f6l\u00e7eklendirme yetene\u011fine sahiptir, bu da onu b\u00fcy\u00fck \u00f6l\u00e7ekli DOKS k\u00fcmeleri i\u00e7in uygun hale getirir.<\/p>\n<h4>c. Olay G\u00f6rselle\u015ftirme ve Sorgulama (Event Visualization &#038; Querying): Grafana<\/h4>\n<p>*   <strong>Grafana:<\/strong> Metrikleri, loglar\u0131 ve olaylar\u0131 g\u00f6rselle\u015ftirmek i\u00e7in kullan\u0131lan pop\u00fcler bir a\u00e7\u0131k kaynakl\u0131 analiz ve izleme platformudur. Loki ile do\u011fal bir entegrasyona sahiptir ve LogQL (Loki Query Language) kullanarak depolanan olaylar\u0131 sorgulamak, filtrelemek ve panolar olu\u015fturmak i\u00e7in idealdir.<br \/>\n*   <strong>Veri Kayna\u011f\u0131 Entegrasyonu:<\/strong> Grafana, bir veri kayna\u011f\u0131 olarak Loki&#8217;ye ba\u011flanacak ve b\u00f6ylece Loki&#8217;deki olay verilerine eri\u015febilecektir.<br \/>\n*   <strong>Panolar ve Uyar\u0131lar:<\/strong> Grafana&#8217;da, belirli olay t\u00fcrlerini, s\u0131kl\u0131klar\u0131n\u0131 veya kritik uyar\u0131lar\u0131 g\u00f6steren \u00f6zel panolar olu\u015fturulabilir. Ayr\u0131ca, belirli ko\u015fullar sa\u011fland\u0131\u011f\u0131nda bildirim g\u00f6ndermek i\u00e7in uyar\u0131 kurallar\u0131 da tan\u0131mlanabilir.<\/p>\n<p>Bu mimari, olaylar\u0131n u\u00e7tan uca toplanmas\u0131n\u0131, g\u00fcvenli bir \u015fekilde depolanmas\u0131n\u0131 ve g\u00fc\u00e7l\u00fc bir \u015fekilde sorgulan\u0131p g\u00f6rselle\u015ftirilmesini sa\u011flar.<\/p>\n<h3>DOKS K\u00fcmesinde Ad\u0131m Ad\u0131m Kurulum (Fluent Bit + Loki + Grafana)<\/h3>\n<p>\u015eimdi, bu mimariyi DOKS k\u00fcmenize ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131m\u0131z\u0131 inceleyelim.<\/p>\n<h4>a. Loki Kurulumu<\/h4>\n<p>Loki, Helm ile DOKS k\u00fcmenize kolayca da\u011f\u0131t\u0131labilir. Helm chart&#8217;\u0131, Loki&#8217;nin t\u00fcm bile\u015fenlerini (ingester, querier, distributor, gateway) ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 (\u00f6rne\u011fin, boltdb-shipper veya object storage i\u00e7in yap\u0131land\u0131rma) i\u00e7erir.<\/p>\n<p>1.  <strong>Loki Helm Repository&#8217;sini Ekleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">helm repo add grafana https:\/\/grafana.github.io\/helm-charts\n    helm repo update<\/code><\/pre>\n<p>2.  <strong>Loki \u0130\u00e7in De\u011ferler Dosyas\u0131 Olu\u015fturma (<code>loki-values.yaml<\/code>):<\/strong><br \/>\n    Loki&#8217;nin kal\u0131c\u0131 depolama kullanabilmesi i\u00e7in <code>persistence<\/code> ayarlar\u0131n\u0131 yap\u0131land\u0131rmam\u0131z gerekir. DigitalOcean Block Storage, Kubernetes&#8217;in <code>ReadWriteOnce<\/code> eri\u015fim modunu destekler ve Loki i\u00e7in uygun bir se\u00e7enektir.<\/p>\n<pre><code class=\"language-yaml\"># loki-values.yaml\n    loki:\n      # Loki'nin kendisi i\u00e7in persistence ayarlar\u0131\n      # production modunda birden fazla replica \u00e7al\u0131\u015ft\u0131r\u0131rken, object storage kullanmak daha iyidir.\n      # Basit kurulum i\u00e7in tek replica ve block storage kullanabiliriz.\n      persistence:\n        enabled: true\n        size: 50Gi # Olay boyutuna g\u00f6re ayarlanabilir\n        storageClassName: do-block-storage # DigitalOcean Block Storage s\u0131n\u0131f\u0131\n\n      # Loki'nin boltdb-shipper'\u0131 i\u00e7in persistence ayarlar\u0131\n      # Bu k\u0131s\u0131m, Loki'nin index verilerini saklamas\u0131 i\u00e7in kullan\u0131l\u0131r.\n      # E\u011fer object storage kullan\u0131l\u0131yorsa bu k\u0131s\u0131m genellikle devre d\u0131\u015f\u0131 b\u0131rak\u0131l\u0131r.\n      # Basit kurulumda, ingester'\u0131n yerel diski yeterli olabilir.\n      # Ancak uzun vadeli ve HA i\u00e7in object storage (S3 uyumlu, Spaces gibi) \u00f6nerilir.\n      # Bu \u00f6rnekte, basit bir kurulum i\u00e7in persistence etkinle\u015ftirilmi\u015ftir.\n      # Daha b\u00fcy\u00fck \u00f6l\u00e7ekler i\u00e7in DigitalOcean Spaces gibi S3 uyumlu bir depolama kullanmak daha iyi olacakt\u0131r.\n      # Bunun i\u00e7in Loki'nin <code>loki.config.chunk_store_config.aws<\/code> veya <code>gcs<\/code> ayarlar\u0131 yap\u0131land\u0131r\u0131lmal\u0131d\u0131r.\n      # Bu makalede basitlik ad\u0131na tek ingester ve block storage varsay\u0131lm\u0131\u015ft\u0131r.\n      # E\u011fer HA bir kurulum istenirse, a\u015fa\u011f\u0131daki persistence ayarlar\u0131 yerine object storage kullan\u0131lmal\u0131d\u0131r.\n      # \u00d6rne\u011fin, DigitalOcean Spaces i\u00e7in:\n      # loki:\n      #   config:\n      #     chunk_store_config:\n      #       aws:\n      #         s3: s3:\/\/<REGION>\/<BUCKET>\n      #         s3forcepathstyle: true\n      #         s3endpoint: https:\/\/<REGION>.digitaloceanspaces.com\n      #         s3accesskeyid: <YOUR_SPACES_KEY>\n      #         s3secretaccesskey: <YOUR_SPACES_SECRET>\n      #   persistence:\n      #     enabled: false # Object storage kullan\u0131ld\u0131\u011f\u0131nda persistence gerekmez\n      \n    singleBinary:\n      persistence:\n        enabled: true\n        size: 50Gi\n        storageClassName: do-block-storage\n\n    # E\u011fer tek bir replica ile \u00e7al\u0131\u015f\u0131yorsan\u0131z, bu ayar genellikle yeterlidir.\n    # Production ortamlar\u0131nda HA i\u00e7in birden fazla ingester replica ve object storage \u00f6nerilir.<\/code><\/pre>\n<p>    <strong>\u00d6nemli Not:<\/strong> Yukar\u0131daki <code>loki-values.yaml<\/code> dosyas\u0131, Loki&#8217;yi tek bir Pod olarak ve DigitalOcean Block Storage kullanarak \u00e7al\u0131\u015ft\u0131r\u0131r. Bu, k\u00fc\u00e7\u00fck ve orta \u00f6l\u00e7ekli k\u00fcmeler i\u00e7in uygun olabilir. Ancak, y\u00fcksek kullan\u0131labilirlik (HA) ve daha b\u00fcy\u00fck veri hacimleri i\u00e7in, Loki&#8217;yi DigitalOcean Spaces gibi S3 uyumlu bir object storage ile yap\u0131land\u0131rmak daha iyidir. Bu durumda, <code>persistence<\/code> ayarlar\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131l\u0131r ve Loki&#8217;nin <code>chunk_store_config<\/code> ayarlar\u0131 Spaces kimlik bilgileriyle doldurulur. Bu makalenin kapsam\u0131n\u0131 basitle\u015ftirmek ad\u0131na, Block Storage ile tek Pod&#8217;lu kurulumu ele alaca\u011f\u0131z.<\/p>\n<p>3.  <strong>Loki&#8217;yi Da\u011f\u0131tma:<\/strong><\/p>\n<pre><code class=\"language-bash\">helm install loki grafana\/loki -n loki --create-namespace -f loki-values.yaml<\/code><\/pre>\n<p>    Bu komut, <code>loki<\/code> ad alan\u0131nda Loki&#8217;yi kuracak ve belirtti\u011finiz kal\u0131c\u0131 depolama alan\u0131n\u0131 kullanacakt\u0131r.<\/p>\n<h4>b. Grafana Kurulumu<\/h4>\n<p>Grafana da Helm ile kolayca kurulabilir.<\/p>\n<p>1.  <strong>Grafana \u0130\u00e7in De\u011ferler Dosyas\u0131 Olu\u015fturma (<code>grafana-values.yaml<\/code>):<\/strong><br \/>\n    Grafana&#8217;ya d\u0131\u015far\u0131dan eri\u015febilmek i\u00e7in bir LoadBalancer servisi kullanabilir ve varsay\u0131lan kullan\u0131c\u0131 ad\u0131\/parolas\u0131n\u0131 ayarlayabiliriz. Ayr\u0131ca, Loki&#8217;yi bir veri kayna\u011f\u0131 olarak \u00f6nceden yap\u0131land\u0131rabiliriz.<\/p>\n<pre><code class=\"language-yaml\"># grafana-values.yaml\n    admin:\n      user: admin\n      password: your_secure_password # G\u00fcvenli bir parola ile de\u011fi\u015ftirin!\n\n    service:\n      type: LoadBalancer # D\u0131\u015far\u0131dan eri\u015fim i\u00e7in LoadBalancer servisi\n      port: 80\n\n    # Loki'yi varsay\u0131lan veri kayna\u011f\u0131 olarak ekle\n    datasources:\n      datasources.yaml:\n        apiVersion: 1\n        datasources:\n        - name: Loki\n          type: loki\n          access: proxy\n          url: http:\/\/loki.loki.svc.cluster.local:3100 # Loki servis adresi\n          isDefault: true<\/code><\/pre>\n<p>2.  <strong>Grafana&#8217;y\u0131 Da\u011f\u0131tma:<\/strong><\/p>\n<pre><code class=\"language-bash\">helm install grafana grafana\/grafana -n grafana --create-namespace -f grafana-values.yaml<\/code><\/pre>\n<p>    Kurulum tamamland\u0131ktan sonra, <code>kubectl get svc -n grafana<\/code> komutuyla Grafana LoadBalancer servisinin d\u0131\u015f IP adresini alabilirsiniz. Bu IP adresini kullanarak web taray\u0131c\u0131n\u0131zdan Grafana&#8217;ya eri\u015febilirsiniz (<code>admin<\/code> kullan\u0131c\u0131 ad\u0131 ve belirledi\u011finiz parola ile).<\/p>\n<h4>c. Fluent Bit Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>Fluent Bit, Kubernetes olaylar\u0131n\u0131 do\u011frudan Kubernetes API&#8217;sinden toplayacak ve bunlar\u0131 Loki&#8217;ye g\u00f6nderecek \u015fekilde yap\u0131land\u0131r\u0131lacakt\u0131r.<\/p>\n<p>1.  <strong>Fluent Bit Helm Repository&#8217;sini Ekleme:<\/strong><\/p>\n<pre><code class=\"language-bash\">helm repo add fluent https:\/\/fluent.github.io\/helm-charts\n    helm repo update<\/code><\/pre>\n<p>2.  <strong>Fluent Bit \u0130\u00e7in De\u011ferler Dosyas\u0131 Olu\u015fturma (<code>fluentbit-values.yaml<\/code>):<\/strong><br \/>\n    Bu dosyada, Fluent Bit&#8217;in <code>kubernetes_events<\/code> input eklentisini etkinle\u015ftirecek ve \u00e7\u0131kt\u0131y\u0131 Loki&#8217;ye y\u00f6nlendirecek \u015fekilde yap\u0131land\u0131raca\u011f\u0131z.<\/p>\n<pre><code class=\"language-yaml\"># fluentbit-values.yaml\n    config:\n      inputs: |\n        [INPUT]\n            Name                kubernetes_events\n            Tag                 kube.events\n            Interval_Sec        10 # Her 10 saniyede bir olaylar\u0131 kontrol et\n            Kube_URL            https:\/\/kubernetes.default.svc:443\n            Kube_Token_File     \/var\/run\/secrets\/kubernetes.io\/serviceaccount\/token\n            Kube_CA_File        \/var\/run\/secrets\/kubernetes.io\/serviceaccount\/ca.crt\n            Buffer_Chunk_Size   2M\n            Buffer_Max_Size     10M\n            # Daha fazla olay meta verisi eklemek i\u00e7in:\n            # Kube_Meta_Cache_TTL 5m\n            # Kube_Meta_Namespace_Cache_TTL 5m\n            # Kube_Meta_Pod_Cache_TTL 5m\n            # Kube_Meta_Container_Cache_TTL 5m\n\n      filters: |\n        [FILTER]\n            Name                kubernetes\n            Match               kube.events\n            Kube_URL            https:\/\/kubernetes.default.svc:443\n            Kube_Token_File     \/var\/run\/secrets\/kubernetes.io\/serviceaccount\/token\n            Kube_CA_File        \/var\/run\/secrets\/kubernetes.io\/serviceaccount\/ca.crt\n            Merge_Log           On\n            Merge_Log_Key       log_processed\n            K8S-Logging.Parser  On\n            K8S-Logging.Exclude Off\n            # Bu filtre, olaylara Kubernetes meta verilerini ekler (Pod ad\u0131, namespace vb.).\n\n      outputs: |\n        [OUTPUT]\n            Name                loki\n            Match               kube.events\n            Host                loki.loki.svc.cluster.local # Loki servis adresi\n            Port                3100\n            Labels              job=kube-events,namespace=$kubernetes['namespace_name'],pod=$kubernetes['pod_name']\n            # Olaylar\u0131 Loki'ye g\u00f6nderirken eklenecek etiketler\n            # Bu etiketler, Grafana'da sorgulama yaparken kullan\u0131l\u0131r.\n            # \u00d6rne\u011fin, bir namespace'deki t\u00fcm olaylar\u0131 filtrelemek i\u00e7in.\n            Label_Keys          reason,type,involvedObject.kind,involvedObject.name,involvedObject.namespace\n            # Olay i\u00e7eri\u011findeki hangi alanlar\u0131n etiket olarak eklenece\u011fini belirler\n            BatchWait           1s\n            BatchSize           1MB\n            Buffer_Chunk_Size   2M\n            Buffer_Max_Size     10M\n            # Http_User           <LOKI_USER> # E\u011fer Loki kimlik do\u011frulamas\u0131 gerektiriyorsa\n            # Http_Passwd         <LOKI_PASSWORD><\/code><\/pre>\n<p>    Bu yap\u0131land\u0131rma, Fluent Bit&#8217;in Kubernetes olaylar\u0131n\u0131 toplamas\u0131n\u0131, onlara Kubernetes meta verileri eklemesini ve ard\u0131ndan bunlar\u0131 <code>job=kube-events<\/code> etiketiyle Loki&#8217;ye g\u00f6ndermesini sa\u011flar. <code>Label_Keys<\/code> ile olay i\u00e7eri\u011finden al\u0131nan belirli alanlar\u0131 da etiket olarak ekleyerek sorgulama yetene\u011fini art\u0131r\u0131yoruz.<\/p>\n<p>3.  <strong>Fluent Bit&#8217;i Da\u011f\u0131tma:<\/strong><\/p>\n<pre><code class=\"language-bash\">helm install fluent-bit fluent\/fluent-bit -n fluent-bit --create-namespace -f fluentbit-values.yaml<\/code><\/pre>\n<p>    Bu komut, <code>fluent-bit<\/code> ad alan\u0131nda Fluent Bit&#8217;i DaemonSet olarak da\u011f\u0131tacak ve her worker node&#8217;da \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p>\n<p>Kurulum tamamland\u0131ktan sonra, Fluent Bit pod&#8217;lar\u0131n\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve herhangi bir hata vermedi\u011fini <code>kubectl get pods -n fluent-bit<\/code> ve <code>kubectl logs -n fluent-bit <fluent-bit-pod-ad\u0131><\/code> komutlar\u0131yla kontrol edebilirsiniz.<\/p>\n<h3>Yap\u0131land\u0131rma Detaylar\u0131 ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>Kurulumu yapt\u0131ktan sonra, sistemin verimli ve g\u00fcvenli \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in baz\u0131 ek yap\u0131land\u0131rma detaylar\u0131 ve ipu\u00e7lar\u0131:<\/p>\n<p>*   <strong>Saklama Politikalar\u0131 (Retention Policies):<\/strong> Loki&#8217;de varsay\u0131lan olarak loglar sonsuza kadar saklan\u0131r. Ancak bu, maliyet ve depolama alan\u0131 a\u00e7\u0131s\u0131ndan sorun yaratabilir. Loki&#8217;nin <code>table_manager<\/code> veya <code>compactor<\/code> bile\u015fenlerini yap\u0131land\u0131rarak belirli bir s\u00fcre sonra eski olaylar\u0131 silme (TTL &#8211; Time To Live) politikalar\u0131 belirleyebilirsiniz. Bu, <code>loki-values.yaml<\/code> dosyas\u0131nda <code>loki.config.table_manager.retention_deletes_enabled<\/code> ve <code>loki.config.table_manager.retention_period<\/code> ayarlar\u0131yla yap\u0131l\u0131r.<br \/>\n*   <strong>Kaynak T\u00fcketimi Optimizasyonu:<\/strong> Fluent Bit ve Loki, \u00f6zellikle yo\u011fun olay trafi\u011fi olan k\u00fcmelerde \u00f6nemli miktarda CPU, bellek ve disk kayna\u011f\u0131 t\u00fcketebilir.<br \/>\n    *   <strong>Fluent Bit:<\/strong> <code>Buffer_Chunk_Size<\/code>, <code>Buffer_Max_Size<\/code> gibi tampon ayarlar\u0131n\u0131 ve <code>Interval_Sec<\/code> gibi toplama aral\u0131klar\u0131n\u0131 ayarlayarak kaynak kullan\u0131m\u0131n\u0131 optimize edebilirsiniz. Ayr\u0131ca, <code>resources<\/code> limitlerini ve isteklerini uygun \u015fekilde ayarlay\u0131n.<br \/>\n    *   <strong>Loki:<\/strong> <code>singleBinary<\/code> yerine bile\u015fen baz\u0131nda da\u011f\u0131t\u0131m (ingester, querier, distributor) yaparak ve her bir bile\u015fenin kaynaklar\u0131n\u0131 ayr\u0131 ayr\u0131 optimize ederek daha iyi performans elde edebilirsiniz. Object storage kullan\u0131m\u0131, ingester&#8217;lar\u0131n yerel disk kullan\u0131m\u0131n\u0131 azalt\u0131r.<br \/>\n*   <strong>G\u00fcvenlik:<\/strong><br \/>\n    *   <strong>Eri\u015fim Kontrolleri:<\/strong> Grafana&#8217;ya eri\u015fimi k\u0131s\u0131tlamak i\u00e7in Ingress Controller ile kimlik do\u011frulama (OAuth, LDAP) entegrasyonu yap\u0131n. Varsay\u0131lan <code>admin:admin<\/code> parolas\u0131n\u0131 de\u011fi\u015ftirmeyi unutmay\u0131n.<br \/>\n    *   <strong>TLS\/SSL:<\/strong> Grafana ve Loki aras\u0131ndaki ileti\u015fimi ve d\u0131\u015far\u0131dan eri\u015fimi TLS\/SSL ile \u015fifreleyin. Bu genellikle bir Ingress Controller (\u00f6rne\u011fin, NGINX Ingress) ve Let&#8217;s Encrypt gibi bir sertifika y\u00f6neticisi (Cert-Manager) kullan\u0131larak yap\u0131l\u0131r.<br \/>\n    *   <strong>Kubernetes RBAC:<\/strong> Fluent Bit&#8217;in Kubernetes API&#8217;sine eri\u015fimi i\u00e7in kullan\u0131lan Service Account&#8217;\u0131n yaln\u0131zca gerekli izinlere sahip oldu\u011fundan emin olun (read-only eri\u015fim yeterlidir).<br \/>\n*   <strong>\u00d6l\u00e7eklenebilirlik:<\/strong><br \/>\n    *   <strong>Loki:<\/strong> Y\u00fcksek hacimli olaylar i\u00e7in Loki&#8217;yi birden fazla ingester ve querier replikas\u0131 ile da\u011f\u0131tabilirsiniz. DigitalOcean Spaces gibi bir object storage kullanarak ingester&#8217;lar\u0131n durumsuz olmas\u0131n\u0131 sa\u011flayabilir ve yatay \u00f6l\u00e7eklendirmeyi kolayla\u015ft\u0131rabilirsiniz.<br \/>\n    *   <strong>Fluent Bit:<\/strong> DaemonSet oldu\u011fu i\u00e7in, yeni bir worker node eklendi\u011finde otomatik olarak \u00f6l\u00e7eklenir.<br \/>\n*   <strong>Maliyet Optimizasyonu:<\/strong><br \/>\n    *   <strong>DigitalOcean Block Storage\/Spaces:<\/strong> Do\u011fru boyutta depolama alan\u0131 se\u00e7mek ve retention politikalar\u0131yla gereksiz veri saklamaktan ka\u00e7\u0131nmak maliyetleri d\u00fc\u015f\u00fcr\u00fcr. DigitalOcean Spaces, b\u00fcy\u00fck veri hacimleri i\u00e7in genellikle Block Storage&#8217;dan daha uygun maliyetli olabilir.<br \/>\n    *   <strong>Node Boyutlar\u0131:<\/strong> DOKS k\u00fcmenizdeki node&#8217;lar\u0131n boyutlar\u0131n\u0131, Fluent Bit, Loki ve Grafana&#8217;n\u0131n yan\u0131 s\u0131ra uygulamalar\u0131n\u0131z\u0131n da kaynak ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131layacak \u015fekilde optimize edin.<br \/>\n*   <strong>Y\u00fcksek Eri\u015filebilirlik (HA):<\/strong> Loki&#8217;yi \u00fcretim ortam\u0131nda HA modunda \u00e7al\u0131\u015ft\u0131rmak i\u00e7in birden fazla ingester replikas\u0131 ve object storage (DigitalOcean Spaces) kullanmak \u00f6nemlidir. Bu, bir ingester pod&#8217;unun \u00e7\u00f6kmesi durumunda veri kayb\u0131n\u0131 \u00f6nler ve sorgu performans\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<h3>Olaylar\u0131 Sorgulama ve Analiz Etme<\/h3>\n<p>Grafana&#8217;ya eri\u015ftikten sonra, sol men\u00fcden &#8220;Explore&#8221; b\u00f6l\u00fcm\u00fcne gidin. Burada, varsay\u0131lan veri kayna\u011f\u0131 olarak yap\u0131land\u0131rd\u0131\u011f\u0131n\u0131z Loki&#8217;yi se\u00e7in. LogQL (Loki Query Language) kullanarak olaylar\u0131 sorgulayabilirsiniz.<\/p>\n<p><strong>\u00d6rnek Sorgular:<\/strong><\/p>\n<p>*   <strong>T\u00fcm Kubernetes olaylar\u0131n\u0131 g\u00f6rmek i\u00e7in:<\/strong><\/p>\n<pre><code class=\"language-logql\">{job=\"kube-events\"}<\/code><\/pre>\n<p>*   <strong>Belirli bir <code>namespace<\/code>&#8216;deki olaylar\u0131 filtrelemek i\u00e7in:<\/strong><\/p>\n<pre><code class=\"language-logql\">{job=\"kube-events\", namespace=\"my-app-namespace\"}<\/code><\/pre>\n<p>*   <strong><code>CrashLoopBackOff<\/code> olaylar\u0131n\u0131 bulmak i\u00e7in:<\/strong><\/p>\n<pre><code class=\"language-logql\">{job=\"kube-events\"} |= \"CrashLoopBackOff\"<\/code><\/pre>\n<p>    Veya daha spesifik olarak <code>reason<\/code> etiketini kullanarak:<\/p>\n<pre><code class=\"language-logql\">{job=\"kube-events\", reason=\"CrashLoopBackOff\"}<\/code><\/pre>\n<p>*   <strong>Belirli bir Pod&#8217;dan gelen olaylar\u0131 g\u00f6rmek i\u00e7in:<\/strong><\/p>\n<pre><code class=\"language-logql\">{job=\"kube-events\", pod=\"my-pod-name-xxxx\"}<\/code><\/pre>\n<p>*   <strong>Uyar\u0131 (Warning) t\u00fcr\u00fcndeki olaylar\u0131 filtrelemek i\u00e7in:<\/strong><\/p>\n<pre><code class=\"language-logql\">{job=\"kube-events\", type=\"Warning\"}<\/code><\/pre>\n<p>*   <strong>Son 1 saatteki olaylar\u0131n da\u011f\u0131l\u0131m\u0131n\u0131 g\u00f6rmek i\u00e7in:<\/strong><\/p>\n<pre><code class=\"language-logql\">sum by (reason) (count_over_time({job=\"kube-events\"}[1h]))<\/code><\/pre>\n<p>    Bu sorgu, son bir saat i\u00e7inde her bir olay nedeninin ka\u00e7 kez meydana geldi\u011fini g\u00f6sterir.<\/p>\n<p><strong>Dashboard Olu\u015fturma:<\/strong><\/p>\n<p>Grafana&#8217;da, bu sorgular\u0131 kullanarak \u00f6zel panolar (dashboards) olu\u015fturabilirsiniz. \u00d6rne\u011fin:<br \/>\n*   En s\u0131k g\u00f6r\u00fclen olay nedenlerini g\u00f6steren bir pasta grafik.<br \/>\n*   Zaman i\u00e7indeki uyar\u0131 olaylar\u0131n\u0131n say\u0131s\u0131n\u0131 g\u00f6steren bir \u00e7izgi grafik.<br \/>\n*   Belirli bir Pod veya namespace i\u00e7in t\u00fcm olaylar\u0131 listeleyen bir tablo.<\/p>\n<p><strong>Uyar\u0131 Kurallar\u0131 (Alerting):<\/strong><\/p>\n<p>Grafana&#8217;n\u0131n uyar\u0131 mekanizmas\u0131n\u0131 kullanarak, belirli bir e\u015fi\u011fi a\u015fan olaylar i\u00e7in bildirimler (e-posta, Slack, PagerDuty vb.) alabilirsiniz. \u00d6rne\u011fin, &#8220;son 5 dakika i\u00e7inde 10&#8217;dan fazla <code>CrashLoopBackOff<\/code> olay\u0131 meydana gelirse uyar&#8221; gibi kurallar tan\u0131mlayabilirsiniz.<\/p>\n<h3>S\u0131k Kar\u015f\u0131la\u015f\u0131lan Sorunlar ve \u00c7\u00f6z\u00fcmleri<\/h3>\n<p>Kurulum ve kullan\u0131m s\u0131ras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve olas\u0131 \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>*   <strong>Olaylar\u0131n Toplanamamas\u0131:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Grafana&#8217;da hi\u00e7 olay g\u00f6r\u00fcnm\u00fcyor veya eksik olaylar var.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Fluent Bit pod&#8217;lar\u0131n\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun ve loglar\u0131n\u0131 kontrol edin. Fluent Bit&#8217;in Kubernetes API&#8217;sine eri\u015fim izinlerini (ServiceAccount ve ClusterRole\/ClusterRoleBinding) kontrol edin. Fluent Bit yap\u0131land\u0131rma dosyas\u0131ndaki (fluentbit-values.yaml) <code>kubernetes_events<\/code> input ve <code>loki<\/code> output ayarlar\u0131n\u0131n do\u011fru oldu\u011fundan emin olun. Loki pod&#8217;lar\u0131n\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve sa\u011fl\u0131kl\u0131 oldu\u011fundan emin olun.<br \/>\n*   <strong>Depolama Sorunlar\u0131:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Loki pod&#8217;u <code>Pending<\/code> durumda kal\u0131yor veya disk dolu hatas\u0131 veriyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> DigitalOcean Block Storage PersistentVolumeClaim (PVC) ve PersistentVolume (PV) durumlar\u0131n\u0131 kontrol edin (<code>kubectl get pvc,pv -n loki<\/code>). Block Storage&#8217;\u0131n yeterli alana sahip oldu\u011fundan emin olun. E\u011fer object storage (Spaces) kullan\u0131yorsan\u0131z, kimlik bilgilerinin do\u011fru oldu\u011fundan ve eri\u015fim izinlerinin mevcut oldu\u011fundan emin olun.<br \/>\n*   <strong>Performans Darbo\u011fazlar\u0131:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Grafana&#8217;da sorgular yava\u015f \u00e7al\u0131\u015f\u0131yor veya Loki pod&#8217;lar\u0131 y\u00fcksek CPU\/bellek t\u00fcketiyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Loki ve Fluent Bit i\u00e7in kaynak limitlerini ve isteklerini art\u0131r\u0131n. Loki&#8217;yi object storage ile HA modunda (birden fazla ingester replikas\u0131) da\u011f\u0131tmay\u0131 d\u00fc\u015f\u00fcn\u00fcn. Fluent Bit&#8217;in <code>BatchSize<\/code> ve <code>BatchWait<\/code> ayarlar\u0131n\u0131 optimize edin. Grafana sorgular\u0131n\u0131 daha spesifik hale getirerek ve daha az veri taramas\u0131n\u0131 sa\u011flayarak performans\u0131 art\u0131r\u0131n.<br \/>\n*   <strong>Eri\u015fim Problemleri:<\/strong><br \/>\n    *   <strong>Sorun:<\/strong> Grafana&#8217;ya web taray\u0131c\u0131s\u0131ndan eri\u015filemiyor.<br \/>\n    *   <strong>\u00c7\u00f6z\u00fcm:<\/strong> Grafana LoadBalancer servisinin d\u0131\u015f IP adresini kontrol edin (<code>kubectl get svc -n grafana<\/code>). G\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131n (DigitalOcean Cloud Firewall) Grafana&#8217;ya eri\u015fime izin verdi\u011finden emin olun. E\u011fer Ingress kullan\u0131yorsan\u0131z, Ingress kurallar\u0131n\u0131 ve sertifikalar\u0131 kontrol edin.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Kubernetes k\u00fcmelerinde olaylar\u0131n ge\u00e7ici do\u011fas\u0131, operasyonel g\u00f6r\u00fcn\u00fcrl\u00fck ve sorun giderme yetene\u011fi a\u00e7\u0131s\u0131ndan \u00f6nemli bir zorluk te\u015fkil eder. Bu makalede ele ald\u0131\u011f\u0131m\u0131z Fluent Bit, Loki ve Grafana \u00fc\u00e7l\u00fcs\u00fc ile DOKS k\u00fcmenizde kurdu\u011funuz Events Explorer, bu zorlu\u011fun \u00fcstesinden gelmek i\u00e7in g\u00fc\u00e7l\u00fc, maliyet etkin ve \u00f6l\u00e7eklenebilir bir \u00e7\u00f6z\u00fcm sunar.<\/p>\n<p>Bu kurulum sayesinde, DOKS k\u00fcmenizde meydana gelen t\u00fcm olaylar\u0131 uzun s\u00fcreli olarak saklayabilir, g\u00fc\u00e7l\u00fc sorgulama yetenekleriyle ge\u00e7mi\u015f sorunlar\u0131 te\u015fhis edebilir, sistem davran\u0131\u015f\u0131ndaki e\u011filimleri analiz edebilir ve olas\u0131 sorunlar i\u00e7in proaktif uyar\u0131lar olu\u015fturabilirsiniz. Bu, k\u00fcmenizin sa\u011fl\u0131\u011f\u0131n\u0131 daha iyi anlaman\u0131za, hata ay\u0131klama s\u00fcre\u00e7lerini h\u0131zland\u0131rman\u0131za, operasyonel verimlili\u011fi art\u0131rman\u0131za ve genel olarak daha sa\u011flam ve g\u00fcvenilir bir Kubernetes ortam\u0131 y\u00f6netmenize olanak tan\u0131r.<\/p>\n<p>Unutmay\u0131n ki bu mimari, ihtiya\u00e7lar\u0131n\u0131za g\u00f6re daha da geli\u015ftirilebilir ve optimize edilebilir. DigitalOcean Spaces gibi object storage kullan\u0131m\u0131yla Loki&#8217;nin y\u00fcksek eri\u015filebilirli\u011fini ve \u00f6l\u00e7eklenebilirli\u011fini art\u0131rabilir, Grafana&#8217;ya ek panolar ve uyar\u0131lar ekleyerek izleme yeteneklerinizi geni\u015fletebilirsiniz. Events Explorer, DOKS k\u00fcmenizin kalbindeki g\u00f6r\u00fcnmez olaylar\u0131 g\u00f6r\u00fcn\u00fcr k\u0131larak, karma\u015f\u0131k bulut ortamlar\u0131nda ba\u015far\u0131l\u0131 olman\u0131z i\u00e7in size kritik bir ara\u00e7 sa\u011flar.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu\nGiri\u015f\nBulut tabanl\u0131 modern uygulamalar, genellikle Kubernetes gibi konteyner orkestras","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-38159","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu\" \/>\n<meta property=\"og:description\" content=\"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu Giri\u015f Bulut tabanl\u0131 modern uygulamalar, genellikle Kubernetes gibi konteyner orkestras\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-24T14:40:57+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"20 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu\",\"datePublished\":\"2026-01-24T14:40:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/\"},\"wordCount\":3407,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/\",\"name\":\"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-24T14:40:57+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/","og_locale":"tr_TR","og_type":"article","og_title":"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu","og_description":"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu Giri\u015f Bulut tabanl\u0131 modern uygulamalar, genellikle Kubernetes gibi konteyner orkestras","og_url":"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-24T14:40:57+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"20 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu","datePublished":"2026-01-24T14:40:57+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/"},"wordCount":3407,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/","url":"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/","name":"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-24T14:40:57+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/doks-kumesinde-olay-saklama-icin-events-explorer-kurulumu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"DOKS K\u00fcmesinde Olay Saklama i\u00e7in Events Explorer Kurulumu"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38159"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38159\/revisions"}],"predecessor-version":[{"id":38160,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38159\/revisions\/38160"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38159"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38159"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}