{"id":31556,"date":"2025-10-11T07:40:50","date_gmt":"2025-10-11T04:40:50","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=31556"},"modified":"2025-10-11T07:40:50","modified_gmt":"2025-10-11T04:40:50","slug":"digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/","title":{"rendered":"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi<\/h2>\n<p>Kubernetes k\u00fcmeleri, modern bulut tabanl\u0131 uygulamalar\u0131n temelini olu\u015fturur ve bu karma\u015f\u0131k sistemlerin sorunsuz \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in etkili bir izleme stratejisi vazge\u00e7ilmezdir. DigitalOcean Kubernetes (DOKS), geli\u015ftiricilere ve operasyon ekiplerine g\u00fc\u00e7l\u00fc ve y\u00f6netilebilir bir Kubernetes deneyimi sunarken, bu k\u00fcmelerin performans\u0131n\u0131, sa\u011fl\u0131\u011f\u0131n\u0131 ve kaynak kullan\u0131m\u0131n\u0131 s\u00fcrekli olarak g\u00f6zlemlemek kritik \u00f6neme sahiptir. Bu makalede, DigitalOcean Kubernetes k\u00fcmenizi Helm ve Prometheus Operator kullanarak nas\u0131l kapsaml\u0131 bir \u015fekilde izleyece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayaca\u011f\u0131z. Prometheus Operator, Kubernetes \u00fczerinde Prometheus, Alertmanager ve ilgili bile\u015fenlerin y\u00f6netimini otomatize eden g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r, Helm ise bu bile\u015fenlerin kurulumunu ve y\u00f6netimini b\u00fcy\u00fck \u00f6l\u00e7\u00fcde basitle\u015ftirir.<\/p>\n<h3>Neden \u0130zleme \u00d6nemlidir?<\/h3>\n<p>Kubernetes gibi dinamik ve da\u011f\u0131t\u0131k bir ortamda izleme, sadece sorunlar\u0131 tespit etmekle kalmaz, ayn\u0131 zamanda proaktif bir \u015fekilde m\u00fcdahale etmenize ve sistem performans\u0131n\u0131 optimize etmenize olanak tan\u0131r. \u0130\u015fte izlemenin temel faydalar\u0131:<\/p>\n<p>*   <strong>Performans Sorunlar\u0131n\u0131 Tespit Etme:<\/strong> Uygulama veya altyap\u0131daki darbo\u011fazlar\u0131, y\u00fcksek gecikmeleri veya d\u00fc\u015f\u00fck verimi an\u0131nda belirleyerek kullan\u0131c\u0131 deneyiminin k\u00f6t\u00fcle\u015fmesini \u00f6nler.<br \/>\n*   <strong>Kaynak Kullan\u0131m\u0131n\u0131 Optimize Etme:<\/strong> CPU, bellek, disk ve a\u011f gibi kaynaklar\u0131n kullan\u0131m\u0131n\u0131 izleyerek gereksiz t\u00fcketimi azalt\u0131r ve maliyetleri d\u00fc\u015f\u00fcr\u00fcr. Ayr\u0131ca, uygulamalar\u0131n ihtiya\u00e7 duydu\u011fu kaynaklar\u0131 do\u011fru bir \u015fekilde tahsis etmeye yard\u0131mc\u0131 olur.<br \/>\n*   <strong>Hata Ay\u0131klama ve Sorun Giderme:<\/strong> Bir sorun ortaya \u00e7\u0131kt\u0131\u011f\u0131nda, kapsaml\u0131 metrikler ve loglar sayesinde sorunun k\u00f6k nedenini h\u0131zl\u0131ca bulup \u00e7\u00f6zebilirsiniz.<br \/>\n*   <strong>Uygulama Sa\u011fl\u0131\u011f\u0131n\u0131 ve Kullan\u0131labilirli\u011fini Sa\u011flama:<\/strong> Uygulamalar\u0131n ve altyap\u0131 bile\u015fenlerinin s\u00fcrekli olarak sa\u011fl\u0131kl\u0131 \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak, kesinti s\u00fcrelerini minimize eder ve y\u00fcksek kullan\u0131labilirlik sa\u011flar.<br \/>\n*   <strong>Proaktif M\u00fcdahale:<\/strong> Belirlenen e\u015fik de\u011ferlerinin a\u015f\u0131lmas\u0131 durumunda otomatik uyar\u0131lar alarak, sorunlar kullan\u0131c\u0131lar\u0131 etkilemeden \u00f6nce m\u00fcdahale etme \u015fans\u0131 verir.<\/p>\n<h3>Prometheus Operator ve Helm&#8217;e Genel Bak\u0131\u015f<\/h3>\n<p>\u0130zleme altyap\u0131m\u0131z\u0131 kurmak i\u00e7in iki temel arac\u0131 kullanaca\u011f\u0131z: Prometheus Operator ve Helm. Bu ara\u00e7lar, Kubernetes ortam\u0131nda izleme \u00e7\u00f6z\u00fcmlerini da\u011f\u0131tma ve y\u00f6netme s\u00fcre\u00e7lerini \u00f6nemli \u00f6l\u00e7\u00fcde kolayla\u015ft\u0131r\u0131r.<\/p>\n<h4>Prometheus Operator Nedir?<\/h4>\n<p>Prometheus Operator, CoreOS taraf\u0131ndan geli\u015ftirilen ve Prometheus izleme ekosistemini Kubernetes \u00fczerinde y\u00f6netmek i\u00e7in tasarlanm\u0131\u015f bir Kubernetes Operator&#8217;\u0131d\u0131r. Kubernetes&#8217;in geni\u015fletilebilirli\u011fini kullanarak, Prometheus, Alertmanager, ServiceMonitor, PodMonitor ve PrometheusRule gibi \u00f6zel kaynak tan\u0131mlar\u0131 (CRD&#8217;ler &#8211; Custom Resource Definitions) arac\u0131l\u0131\u011f\u0131yla izleme bile\u015fenlerini y\u00f6netir.<\/p>\n<p>*   <strong>Otomatik Ke\u015fif:<\/strong> Prometheus Operator, <code>ServiceMonitor<\/code> ve <code>PodMonitor<\/code> gibi CRD&#8217;ler sayesinde Kubernetes servisleri ve pod&#8217;lar\u0131 \u00fczerindeki metrik u\u00e7 noktalar\u0131n\u0131 otomatik olarak ke\u015ffedebilir ve Prometheus yap\u0131land\u0131rmas\u0131na ekleyebilir. Bu, yeni uygulamalar da\u011f\u0131t\u0131ld\u0131\u011f\u0131nda veya mevcut uygulamalar g\u00fcncellendi\u011finde manuel yap\u0131land\u0131rma ihtiyac\u0131n\u0131 ortadan kald\u0131r\u0131r.<br \/>\n*   <strong>Kolay Yap\u0131land\u0131rma:<\/strong> Prometheus ve Alertmanager gibi bile\u015fenlerin yap\u0131land\u0131rmas\u0131, Kubernetes API&#8217;si \u00fczerinden deklaratif bir \u015fekilde y\u00f6netilebilir. Bu, yap\u0131land\u0131rma de\u011fi\u015fikliklerinin versiyonlanmas\u0131n\u0131 ve da\u011f\u0131t\u0131m\u0131n\u0131 kolayla\u015ft\u0131r\u0131r.<br \/>\n*   <strong>\u00d6l\u00e7eklenebilirlik ve Y\u00fcksek Eri\u015filebilirlik:<\/strong> Operator, Prometheus ve Alertmanager \u00f6rneklerinin \u00f6l\u00e7eklenmesini ve y\u00fcksek eri\u015filebilirlik i\u00e7in yedekli da\u011f\u0131t\u0131mlar\u0131n\u0131 y\u00f6netebilir.<br \/>\n*   <strong>Uyar\u0131 Y\u00f6netimi:<\/strong> <code>PrometheusRule<\/code> CRD&#8217;leri ile uyar\u0131 kurallar\u0131 kolayca tan\u0131mlanabilir ve Alertmanager&#8217;a iletilir.<\/p>\n<h4>Helm Nedir?<\/h4>\n<p>Helm, Kubernetes uygulamalar\u0131 i\u00e7in bir paket y\u00f6neticisidir. Uygulamalar\u0131n ve hizmetlerin Kubernetes k\u00fcmelerine da\u011f\u0131t\u0131m\u0131n\u0131, y\u00fckseltilmesini, yap\u0131land\u0131r\u0131lmas\u0131n\u0131 ve kald\u0131r\u0131lmas\u0131n\u0131 basitle\u015ftiren &#8220;Chart&#8221; ad\u0131 verilen \u00f6nceden yap\u0131land\u0131r\u0131lm\u0131\u015f paketler kullan\u0131r.<\/p>\n<p>*   <strong>Kolay Kurulum:<\/strong> Karma\u015f\u0131k uygulamalar\u0131 tek bir komutla da\u011f\u0131tman\u0131z\u0131 sa\u011flar.<br \/>\n*   <strong>S\u00fcr\u00fcm Y\u00f6netimi:<\/strong> Uygulamalar\u0131n farkl\u0131 s\u00fcr\u00fcmlerini kolayca y\u00f6netebilir ve gerekti\u011finde \u00f6nceki s\u00fcr\u00fcmlere geri d\u00f6nebilirsiniz.<br \/>\n*   <strong>Ba\u011f\u0131ml\u0131l\u0131k Y\u00f6netimi:<\/strong> Bir uygulaman\u0131n ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 otomatik olarak kurar ve y\u00f6netir.<br \/>\n*   <strong>\u00d6zelle\u015ftirme:<\/strong> <code>values.yaml<\/code> dosyalar\u0131 arac\u0131l\u0131\u011f\u0131yla Chart&#8217;lar\u0131 k\u00fcmenizin ve uygulaman\u0131z\u0131n \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re \u00f6zelle\u015ftirebilirsiniz.<\/p>\n<p>Prometheus Operator&#8217;\u0131 Helm ile da\u011f\u0131tmak, kurulum s\u00fcrecini son derece basitle\u015ftirir ve &#8220;kube-prometheus-stack&#8221; Helm Chart&#8217;\u0131, Prometheus Operator&#8217;\u0131n yan\u0131 s\u0131ra Prometheus, Alertmanager, Grafana, Node Exporter ve Kube State Metrics gibi t\u00fcm temel izleme bile\u015fenlerini tek bir pakette sunar.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Bu rehbere ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n kar\u015f\u0131land\u0131\u011f\u0131ndan emin olun:<\/p>\n<p>*   <strong>DigitalOcean Hesab\u0131 ve DOKS K\u00fcmesi:<\/strong> Aktif bir DigitalOcean hesab\u0131n\u0131z olmal\u0131 ve en az bir adet DigitalOcean Kubernetes k\u00fcmesi olu\u015fturmu\u015f olmal\u0131s\u0131n\u0131z. E\u011fer bir k\u00fcmeniz yoksa, DigitalOcean kontrol panelinden veya <code>doctl<\/code> CLI arac\u0131yla kolayca olu\u015fturabilirsiniz.<br \/>\n*   <strong><code>kubectl<\/code> Kurulumu ve K\u00fcme Eri\u015fimi:<\/strong> Yerel makinenizde <code>kubectl<\/code> komut sat\u0131r\u0131 arac\u0131 kurulu ve DigitalOcean Kubernetes k\u00fcmenize eri\u015fim i\u00e7in yap\u0131land\u0131r\u0131lm\u0131\u015f olmal\u0131d\u0131r. <code>kubeconfig<\/code> dosyan\u0131z\u0131 do\u011fru bir \u015fekilde ayarlad\u0131\u011f\u0131n\u0131zdan emin olun. <code>kubectl get nodes<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak k\u00fcmenize ba\u015far\u0131yla ba\u011flanabildi\u011finizi do\u011frulayabilirsiniz.<br \/>\n*   <strong><code>helm<\/code> Kurulumu:<\/strong> Yerel makinenizde Helm CLI arac\u0131 kurulu olmal\u0131d\u0131r. Helm kurulum talimatlar\u0131 i\u00e7in resmi Helm web sitesine (helm.sh) ba\u015fvurabilirsiniz.<br \/>\n*   <strong><code>doctl<\/code> (iste\u011fe ba\u011fl\u0131):<\/strong> DigitalOcean CLI arac\u0131 olan <code>doctl<\/code>, k\u00fcme olu\u015fturma ve y\u00f6netme gibi i\u015flemleri komut sat\u0131r\u0131ndan yapman\u0131z\u0131 sa\u011flar. Bu rehberde <code>doctl<\/code> zorunlu olmamakla birlikte, k\u00fcme ile etkile\u015fim i\u00e7in faydal\u0131 olabilir.<\/p>\n<h3>DigitalOcean Kubernetes K\u00fcmesi Kurulumu (K\u0131sa Bir \u00d6zet)<\/h3>\n<p>E\u011fer hen\u00fcz bir DOKS k\u00fcmeniz yoksa, h\u0131zl\u0131ca olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyebilirsiniz:<\/p>\n<p>1.  <strong>DigitalOcean Kontrol Paneli:<\/strong> DigitalOcean hesab\u0131n\u0131za giri\u015f yap\u0131n, sol men\u00fcden &#8220;Kubernetes&#8221; se\u00e7ene\u011fine t\u0131klay\u0131n ve &#8220;Create Kubernetes Cluster&#8221; d\u00fc\u011fmesini kullan\u0131n. \u0130stedi\u011finiz b\u00f6lgeyi, Kubernetes s\u00fcr\u00fcm\u00fcn\u00fc ve d\u00fc\u011f\u00fcm havuzu (node pool) boyutunu\/say\u0131s\u0131n\u0131 se\u00e7erek k\u00fcmenizi olu\u015fturun.<br \/>\n2.  <strong><code>doctl<\/code> CLI:<\/strong> <code>doctl<\/code> kuruluysa, a\u015fa\u011f\u0131daki gibi bir komutla k\u00fcme olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">doctl kubernetes cluster create my-doks-cluster \\\n      --region nyc1 \\\n      --version 1.28.2-do.0 \\\n      --node-pool \"name=worker-pool,size=s-2vcpu-4gb,count=2\"<\/code><\/pre>\n<p>    (S\u00fcr\u00fcm ve b\u00f6lgeyi g\u00fcncel DigitalOcean se\u00e7eneklerine g\u00f6re ayarlay\u0131n.)<\/p>\n<p>K\u00fcme olu\u015fturulduktan sonra, <code>kubeconfig<\/code> dosyan\u0131z\u0131 indirmeniz veya <code>doctl<\/code> ile otomatik olarak yap\u0131land\u0131rman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">doctl kubernetes cluster kubeconfig save my-doks-cluster<\/code><\/pre>\n<p>Bu komut, <code>~\/.kube\/config<\/code> dosyan\u0131za k\u00fcme eri\u015fim bilgilerini ekleyecektir. Ard\u0131ndan, k\u00fcme ba\u011flant\u0131n\u0131z\u0131 test edin:<\/p>\n<pre><code class=\"language-bash\">kubectl get nodes<\/code><\/pre>\n<p>D\u00fc\u011f\u00fcmlerinizin &#8220;Ready&#8221; durumunda oldu\u011funu g\u00f6rmelisiniz.<\/p>\n<h3>Prometheus Operator&#8217;\u0131 Helm ile Kurulum<\/h3>\n<p>\u015eimdi DigitalOcean Kubernetes k\u00fcmemize Prometheus Operator&#8217;\u0131 ve t\u00fcm ba\u011f\u0131ml\u0131 izleme bile\u015fenlerini Helm kullanarak kurmaya ba\u015flayabiliriz.<\/p>\n<h4>Helm Repository Ekleme<\/h4>\n<p>\u0130lk ad\u0131m olarak, Prometheus Operator&#8217;\u0131 i\u00e7eren &#8220;kube-prometheus-stack&#8221; Helm Chart&#8217;\u0131n\u0131n bulundu\u011fu Helm repository&#8217;sini eklememiz gerekiyor:<\/p>\n<pre><code class=\"language-bash\">helm repo add prometheus-community https:\/\/prometheus-community.github.io\/helm-charts\nhelm repo update<\/code><\/pre>\n<p><code>helm repo add<\/code> komutu, <code>prometheus-community<\/code> ad\u0131nda bir repository&#8217;yi yerel Helm yap\u0131land\u0131rman\u0131za ekler. <code>helm repo update<\/code> ise t\u00fcm eklenmi\u015f repository&#8217;lerdeki Chart bilgilerini g\u00fcnceller.<\/p>\n<h4>Namespace Olu\u015fturma<\/h4>\n<p>\u0130zleme bile\u015fenlerini di\u011fer uygulamalar\u0131n\u0131zdan ayr\u0131 tutmak ve daha iyi organizasyon sa\u011flamak i\u00e7in \u00f6zel bir namespace olu\u015fturmak iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">kubectl create namespace monitoring<\/code><\/pre>\n<p>Bu komut, <code>monitoring<\/code> ad\u0131nda yeni bir Kubernetes namespace&#8217;i olu\u015fturur.<\/p>\n<h4>Prometheus Operator Kurulumu<\/h4>\n<p>Art\u0131k Prometheus Operator&#8217;\u0131 ve t\u00fcm izleme y\u0131\u011f\u0131n\u0131n\u0131 <code>kube-prometheus-stack<\/code> Helm Chart&#8217;\u0131 ile kurabiliriz. Bu Chart, Prometheus, Alertmanager, Grafana, Kube State Metrics ve Node Exporter gibi t\u00fcm gerekli bile\u015fenleri i\u00e7erir.<\/p>\n<pre><code class=\"language-bash\">helm install prometheus-operator prometheus-community\/kube-prometheus-stack \\\n  --namespace monitoring \\\n  --set prometheus.prometheusSpec.serviceMonitorSelectorNilUsesPods=false \\\n  --set grafana.ingress.enabled=true \\\n  --set grafana.ingress.hosts[0]=\"grafana.your-domain.com\" \\\n  --set grafana.adminPassword=\"your-secure-password\" \\\n  --set prometheus.ingress.enabled=true \\\n  --set prometheus.ingress.hosts[0]=\"prometheus.your-domain.com\" \\\n  --set alertmanager.ingress.enabled=true \\\n  --set alertmanager.ingress.hosts[0]=\"alertmanager.your-domain.com\"<\/code><\/pre>\n<p>Bu komut olduk\u00e7a kapsaml\u0131d\u0131r ve birka\u00e7 \u00f6nemli parametre i\u00e7erir:<\/p>\n<p>*   <code>helm install prometheus-operator prometheus-community\/kube-prometheus-stack<\/code>: <code>prometheus-operator<\/code> ad\u0131yla <code>kube-prometheus-stack<\/code> Chart&#8217;\u0131n\u0131 kurar.<br \/>\n*   <code>--namespace monitoring<\/code>: T\u00fcm bile\u015fenlerin <code>monitoring<\/code> namespace&#8217;ine da\u011f\u0131t\u0131lmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <code>--set prometheus.prometheusSpec.serviceMonitorSelectorNilUsesPods=false<\/code>: Bu parametre, Prometheus&#8217;un t\u00fcm ServiceMonitor&#8217;lar\u0131 otomatik olarak ke\u015ffetmesini sa\u011flar. Varsay\u0131lan olarak, Prometheus sadece kendi namespace&#8217;indeki ServiceMonitor&#8217;lar\u0131 ke\u015ffeder. <code>false<\/code> olarak ayarland\u0131\u011f\u0131nda, t\u00fcm namespace&#8217;lerdeki ServiceMonitor&#8217;lar\u0131 dinleyecektir.<br \/>\n*   <code>--set grafana.ingress.enabled=true<\/code>, <code>--set grafana.ingress.hosts[0]=\"grafana.your-domain.com\"<\/code>: Grafana i\u00e7in bir Ingress kayna\u011f\u0131 olu\u015fturur. <code>grafana.your-domain.com<\/code> yerine kendi alan ad\u0131n\u0131z\u0131 kullanmal\u0131s\u0131n\u0131z. Bu, Grafana&#8217;ya bir d\u0131\u015f IP adresi veya Load Balancer \u00fczerinden eri\u015fmenizi sa\u011flar.<br \/>\n*   <code>--set grafana.adminPassword=\"your-secure-password\"<\/code>: Grafana&#8217;n\u0131n varsay\u0131lan admin \u015fifresini belirler. <strong>Bu \u015fifreyi kesinlikle g\u00fc\u00e7l\u00fc ve benzersiz bir \u015fifreyle de\u011fi\u015ftirin.<\/strong><br \/>\n*   <code>--set prometheus.ingress.enabled=true<\/code>, <code>--set prometheus.ingress.hosts[0]=\"prometheus.your-domain.com\"<\/code>: Prometheus Web UI i\u00e7in bir Ingress kayna\u011f\u0131 olu\u015fturur.<br \/>\n*   <code>--set alertmanager.ingress.enabled=true<\/code>, <code>--set alertmanager.ingress.hosts[0]=\"alertmanager.your-domain.com\"<\/code>: Alertmanager Web UI i\u00e7in bir Ingress kayna\u011f\u0131 olu\u015fturur.<\/p>\n<p><strong>\u00d6nemli Not:<\/strong> Ingress kaynaklar\u0131n\u0131n \u00e7al\u0131\u015fabilmesi i\u00e7in k\u00fcmenizde bir Ingress Controller&#8217;\u0131n (\u00f6rne\u011fin NGINX Ingress Controller) kurulu olmas\u0131 gerekmektedir. DigitalOcean Load Balancer ile entegre olan NGINX Ingress Controller&#8217;\u0131 kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz (e\u011fer hen\u00fcz kurulu de\u011filse):<\/p>\n<pre><code class=\"language-bash\">helm upgrade --install ingress-nginx ingress-nginx \\\n  --repo https:\/\/kubernetes.github.io\/ingress-nginx \\\n  --namespace ingress-nginx --create-namespace \\\n  --set controller.service.type=LoadBalancer \\\n  --set controller.service.annotations.\"service\\.beta\\.kubernetes\\.io\/do-loadbalancer-protocol\"=\"https\" \\\n  --set controller.service.annotations.\"service\\.beta\\.kubernetes\\.io\/do-loadbalancer-tls-passthrough\"=\"true\"<\/code><\/pre>\n<p>Bu komut, NGINX Ingress Controller&#8217;\u0131 kurar ve DigitalOcean Load Balancer&#8217;\u0131 kullanarak d\u0131\u015far\u0131dan eri\u015filebilir hale getirir. Load Balancer&#8217;\u0131n bir d\u0131\u015f IP adresi almas\u0131 birka\u00e7 dakika s\u00fcrebilir. Bu IP adresini, DNS sa\u011flay\u0131c\u0131n\u0131zda yukar\u0131daki <code>your-domain.com<\/code> yerine kulland\u0131\u011f\u0131n\u0131z alan adlar\u0131 i\u00e7in A kayd\u0131 olarak tan\u0131mlaman\u0131z gerekecektir.<\/p>\n<p>Kurulumun tamamland\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in a\u015fa\u011f\u0131daki komutu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">kubectl get pods -n monitoring<\/code><\/pre>\n<p>T\u00fcm Pod&#8217;lar\u0131n <code>Running<\/code> durumunda oldu\u011funu g\u00f6rmelisiniz.<\/p>\n<h3>Kurulan Bile\u015fenlere Eri\u015fim<\/h3>\n<p>Prometheus Operator, Prometheus, Grafana ve Alertmanager gibi ana bile\u015fenler art\u0131k k\u00fcmenizde \u00e7al\u0131\u015f\u0131yor olmal\u0131. Bu bile\u015fenlere nas\u0131l eri\u015fece\u011finizi g\u00f6relim.<\/p>\n<h4>Prometheus Web UI<\/h4>\n<p>Prometheus&#8217;un web aray\u00fcz\u00fcne eri\u015fmek i\u00e7in Ingress yap\u0131land\u0131rmas\u0131n\u0131 kulland\u0131ysan\u0131z, taray\u0131c\u0131n\u0131zdan <code>prometheus.your-domain.com<\/code> adresine gidebilirsiniz. E\u011fer Ingress kullanmad\u0131ysan\u0131z veya ge\u00e7ici olarak eri\u015fmek istiyorsan\u0131z, <code>kubectl port-forward<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">kubectl port-forward svc\/prometheus-kube-prometheus-prometheus -n monitoring 9090:9090<\/code><\/pre>\n<p>Ard\u0131ndan taray\u0131c\u0131n\u0131zda <code>http:\/\/localhost:9090<\/code> adresine giderek Prometheus UI&#8217;a eri\u015febilirsiniz. Burada, toplanan metrikleri sorgulayabilir, uyar\u0131 kurallar\u0131n\u0131 ve hedef durumlar\u0131n\u0131 inceleyebilirsiniz.<\/p>\n<h4>Grafana Paneli<\/h4>\n<p>Grafana, Prometheus&#8217;tan toplanan metrikleri g\u00f6rselle\u015ftirmek i\u00e7in kullan\u0131lan g\u00fc\u00e7l\u00fc bir g\u00f6sterge tablosu arac\u0131d\u0131r. Ingress yap\u0131land\u0131rmas\u0131n\u0131 kulland\u0131ysan\u0131z, taray\u0131c\u0131n\u0131zdan <code>grafana.your-domain.com<\/code> adresine gidebilirsiniz. Kullan\u0131c\u0131 ad\u0131 <code>admin<\/code>, \u015fifre ise kurulum s\u0131ras\u0131nda <code>--set grafana.adminPassword<\/code> ile belirledi\u011finiz \u015fifredir.<\/p>\n<p>E\u011fer Ingress kullanmad\u0131ysan\u0131z veya ge\u00e7ici olarak eri\u015fmek istiyorsan\u0131z, <code>kubectl port-forward<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">kubectl port-forward svc\/prometheus-grafana -n monitoring 3000:80<\/code><\/pre>\n<p>Ard\u0131ndan taray\u0131c\u0131n\u0131zda <code>http:\/\/localhost:3000<\/code> adresine giderek Grafana paneline eri\u015febilirsiniz. \u0130lk giri\u015fte \u015fifrenizi de\u011fi\u015ftirmeniz \u015fiddetle tavsiye edilir.<\/p>\n<p>Grafana, <code>kube-prometheus-stack<\/code> ile birlikte bir\u00e7ok \u00f6nceden yap\u0131land\u0131r\u0131lm\u0131\u015f g\u00f6sterge tablosu (dashboard) ile gelir. Bu panolar, k\u00fcme sa\u011fl\u0131\u011f\u0131, d\u00fc\u011f\u00fcm performans\u0131, Pod metrikleri ve daha fazlas\u0131 hakk\u0131nda kapsaml\u0131 bilgiler sunar.<\/p>\n<h4>Alertmanager Web UI<\/h4>\n<p>Alertmanager&#8217;\u0131n web aray\u00fcz\u00fcne eri\u015fmek i\u00e7in Ingress yap\u0131land\u0131rmas\u0131n\u0131 kulland\u0131ysan\u0131z, taray\u0131c\u0131n\u0131zdan <code>alertmanager.your-domain.com<\/code> adresine gidebilirsiniz. E\u011fer Ingress kullanmad\u0131ysan\u0131z veya ge\u00e7ici olarak eri\u015fmek istiyorsan\u0131z, <code>kubectl port-forward<\/code> komutunu kullanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">kubectl port-forward svc\/prometheus-kube-prometheus-alertmanager -n monitoring 9093:9093<\/code><\/pre>\n<p>Ard\u0131ndan taray\u0131c\u0131n\u0131zda <code>http:\/\/localhost:9093<\/code> adresine giderek Alertmanager UI&#8217;a eri\u015febilirsiniz. Burada, aktif uyar\u0131lar\u0131, susturulmu\u015f uyar\u0131lar\u0131 ve Alertmanager yap\u0131land\u0131rmas\u0131n\u0131 g\u00f6rebilirsiniz.<\/p>\n<h3>DigitalOcean Specific Monitoring (Opsiyonel ama \u00d6nemli)<\/h3>\n<p>DigitalOcean Kubernetes k\u00fcmeleri, temel Kubernetes bile\u015fenlerinin yan\u0131 s\u0131ra DigitalOcean&#8217;a \u00f6zg\u00fc entegrasyonlar da i\u00e7erir. Bu entegrasyonlar\u0131n metriklerini izlemek, k\u00fcmenizin genel sa\u011fl\u0131\u011f\u0131 hakk\u0131nda daha derinlemesine bilgi edinmenizi sa\u011flar.<\/p>\n<p>*   <strong>DigitalOcean Cloud Controller Manager (CCM):<\/strong> DOKS k\u00fcmelerindeki Load Balancer&#8217;lar, PersistentVolume&#8217;lar ve di\u011fer DigitalOcean kaynaklar\u0131n\u0131 y\u00f6neten bir bile\u015fendir. CCM&#8217;in kendi metrik u\u00e7 noktas\u0131 vard\u0131r.<br \/>\n*   <strong>DigitalOcean CSI (Container Storage Interface):<\/strong> DOKS k\u00fcmelerinde Block Storage ve Spaces gibi depolama \u00e7\u00f6z\u00fcmlerini y\u00f6neten CSI s\u00fcr\u00fcc\u00fcs\u00fcd\u00fcr. CSI s\u00fcr\u00fcc\u00fcs\u00fc de performans metrikleri sa\u011flar.<\/p>\n<p><code>kube-prometheus-stack<\/code> genellikle bu DigitalOcean&#8217;a \u00f6zg\u00fc metrikleri otomatik olarak toplamaz. Bunlar\u0131 Prometheus&#8217;a dahil etmek i\u00e7in ek <code>ServiceMonitor<\/code> veya <code>PodMonitor<\/code> kaynaklar\u0131 tan\u0131mlaman\u0131z gerekebilir. Ancak, \u00e7o\u011fu durumda, Node Exporter ve Kube State Metrics gibi standart bile\u015fenler DOKS d\u00fc\u011f\u00fcmlerinizin ve genel k\u00fcme durumunuzun b\u00fcy\u00fck bir b\u00f6l\u00fcm\u00fcn\u00fc zaten kapsayacakt\u0131r. DigitalOcean&#8217;\u0131n kendi izleme ara\u00e7lar\u0131 (DigitalOcean Monitoring) da temel d\u00fc\u011f\u00fcm metriklerini sa\u011flar ve bu, Prometheus ile tamamlay\u0131c\u0131 bir rol oynayabilir.<\/p>\n<p>E\u011fer spesifik DigitalOcean bile\u015fenlerinden metrik toplaman\u0131z gerekirse, ilgili bile\u015fenin metrik u\u00e7 noktas\u0131n\u0131 (genellikle <code>\/metrics<\/code> yolu \u00fczerinde) bulup ona y\u00f6nelik bir <code>ServiceMonitor<\/code> veya <code>PodMonitor<\/code> olu\u015fturman\u0131z gerekecektir. \u00d6rne\u011fin, bir DigitalOcean CSI s\u00fcr\u00fcc\u00fcs\u00fc Pod&#8217;unun metriklerini toplamak i\u00e7in:<\/p>\n<pre><code class=\"language-yaml\">apiVersion: monitoring.coreos.com\/v1\nkind: PodMonitor\nmetadata:\n  name: do-csi-monitor\n  namespace: monitoring\nspec:\n  selector:\n    matchLabels:\n      app: do-csi-driver # CSI s\u00fcr\u00fcc\u00fcs\u00fc Pod'unuzun etiketini kontrol edin\n  podMetricsEndpoints:\n  - port: metrics # CSI s\u00fcr\u00fcc\u00fcs\u00fcn\u00fcn metrik portu\n    path: \/metrics\n  namespaceSelector:\n    matchNames:\n    - kube-system # CSI s\u00fcr\u00fcc\u00fcs\u00fc genellikle kube-system namespace'inde \u00e7al\u0131\u015f\u0131r<\/code><\/pre>\n<p>Bu, sadece bir \u00f6rnek olup, ger\u00e7ek etiketler ve portlar i\u00e7in DOKS k\u00fcmenizdeki CSI s\u00fcr\u00fcc\u00fcs\u00fc Pod&#8217;unu incelemeniz gerekebilir (<code>kubectl describe pod <csi-driver-pod> -n kube-system<\/code>).<\/p>\n<h3>\u00d6zelle\u015ftirme ve Geli\u015fmi\u015f Konfig\u00fcrasyonlar<\/h3>\n<p><code>kube-prometheus-stack<\/code> Helm Chart&#8217;\u0131, <code>values.yaml<\/code> dosyas\u0131 arac\u0131l\u0131\u011f\u0131yla son derece \u00f6zelle\u015ftirilebilir. Bu, izleme y\u0131\u011f\u0131n\u0131n\u0131z\u0131 k\u00fcmenizin ve uygulaman\u0131z\u0131n \u00f6zel ihtiya\u00e7lar\u0131na g\u00f6re ince ayar yapman\u0131z\u0131 sa\u011flar.<\/p>\n<h4><code>values.yaml<\/code> Dosyas\u0131 ile \u00d6zelle\u015ftirme<\/h4>\n<p><code>kube-prometheus-stack<\/code> Chart&#8217;\u0131n\u0131n varsay\u0131lan <code>values.yaml<\/code> dosyas\u0131n\u0131 <code>helm show values prometheus-community\/kube-prometheus-stack > values.yaml<\/code> komutuyla indirip d\u00fczenleyebilirsiniz. Ard\u0131ndan, <code>helm upgrade<\/code> komutuyla bu dosyay\u0131 kullanarak kurulumu g\u00fcncelleyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">helm upgrade prometheus-operator prometheus-community\/kube-prometheus-stack \\\n  --namespace monitoring \\\n  -f values.yaml<\/code><\/pre>\n<p>Baz\u0131 yayg\u0131n \u00f6zelle\u015ftirme alanlar\u0131 \u015funlard\u0131r:<\/p>\n<p>*   <strong>PersistentVolumeClaim Boyutlar\u0131:<\/strong> Prometheus ve Alertmanager&#8217;\u0131n metrik ve durum verilerini depolad\u0131\u011f\u0131 PersistentVolumeClaim (PVC) boyutlar\u0131n\u0131 ayarlayabilirsiniz. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-yaml\">prometheus:\n      prometheusSpec:\n        storageSpec:\n          volumeClaimTemplate:\n            spec:\n              resources:\n                requests:\n                  storage: 50Gi # Prometheus i\u00e7in 50GB depolama\n    alertmanager:\n      alertmanagerSpec:\n        storage:\n          volumeClaimTemplate:\n            spec:\n              resources:\n                requests:\n                  storage: 5Gi # Alertmanager i\u00e7in 5GB depolama<\/code><\/pre>\n<p>    DigitalOcean Block Storage, DOKS k\u00fcmelerinde varsay\u0131lan depolama s\u0131n\u0131f\u0131d\u0131r ve bu PVC&#8217;ler otomatik olarak DigitalOcean Block Storage birimleri olarak sa\u011flanacakt\u0131r.<br \/>\n*   <strong>Resource Limitleri:<\/strong> Her bir bile\u015fenin (Prometheus, Grafana, Alertmanager vb.) CPU ve bellek limitlerini ve isteklerini ayarlayarak kaynak kullan\u0131m\u0131n\u0131 optimize edebilirsiniz.<\/p>\n<pre><code class=\"language-yaml\">prometheus:\n      prometheusSpec:\n        resources:\n          requests:\n            cpu: 200m\n            memory: 1Gi\n          limits:\n            cpu: 1000m\n            memory: 4Gi<\/code><\/pre>\n<p>*   <strong>Alertmanager Konfig\u00fcrasyonu:<\/strong> Alertmanager&#8217;\u0131 Slack, Email, PagerDuty gibi bildirim kanallar\u0131yla entegre edebilirsiniz. Bu yap\u0131land\u0131rmalar <code>alertmanager.config<\/code> alt\u0131nda yap\u0131l\u0131r.<\/p>\n<pre><code class=\"language-yaml\">alertmanager:\n      config:\n        global:\n          resolve_timeout: 5m\n        route:\n          group_by: ['alertname', 'cluster', 'service']\n          group_wait: 30s\n          group_interval: 5m\n          repeat_interval: 1h\n          receiver: 'slack-notifications'\n        receivers:\n        - name: 'slack-notifications'\n          slack_configs:\n          - channel: '#alerts'\n            send_resolved: true\n            api_url: 'https:\/\/hooks.slack.com\/services\/T00000000\/B00000000\/XXXXXXXXXXXXXXXXXXXXXXXX'<\/code><\/pre>\n<p>*   <strong>Grafana Panelleri ve Veri Kaynaklar\u0131:<\/strong> \u00d6zel Grafana panelleri ekleyebilir veya ek veri kaynaklar\u0131 tan\u0131mlayabilirsiniz.<br \/>\n*   <strong>Node Exporter ve Kube State Metrics Ayarlar\u0131:<\/strong> Bu bile\u015fenlerin kaynak t\u00fcketimini veya toplad\u0131\u011f\u0131 metrikleri \u00f6zelle\u015ftirebilirsiniz.<\/p>\n<h4>PrometheusRule Olu\u015fturma<\/h4>\n<p>Prometheus Operator, <code>PrometheusRule<\/code> CRD&#8217;si arac\u0131l\u0131\u011f\u0131yla uyar\u0131 kurallar\u0131n\u0131 y\u00f6netir. Bu kurallar, belirli metrik e\u015fikleri a\u015f\u0131ld\u0131\u011f\u0131nda veya belirli durumlar olu\u015ftu\u011funda Alertmanager&#8217;a uyar\u0131lar g\u00f6nderir.<\/p>\n<p>\u00d6rnek bir CPU kullan\u0131m uyar\u0131s\u0131 kural\u0131:<\/p>\n<pre><code class=\"language-yaml\">apiVersion: monitoring.coreos.com\/v1\nkind: PrometheusRule\nmetadata:\n  name: kubernetes-cpu-alert\n  namespace: monitoring\nspec:\n  groups:\n  - name: kubernetes-cpu-usage\n    rules:\n    - alert: HighNodeCPUUsage\n      expr: 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode=\"idle\"}[5m])) * 100) > 80\n      for: 5m\n      labels:\n        severity: warning\n      annotations:\n        summary: \"Node {{ $labels.instance }} \u00fczerindeki CPU kullan\u0131m\u0131 \u00e7ok y\u00fcksek.\"\n        description: \"Node {{ $labels.instance }} \u00fczerindeki CPU kullan\u0131m\u0131 son 5 dakikad\u0131r %80'in \u00fczerinde.\"<\/code><\/pre>\n<p>Bu kural\u0131 bir <code>.yaml<\/code> dosyas\u0131na kaydedip <code>kubectl apply -f your-rule.yaml -n monitoring<\/code> komutuyla uygulayabilirsiniz.<\/p>\n<h4>ServiceMonitor ve PodMonitor Kullan\u0131m\u0131<\/h4>\n<p>Uygulamalar\u0131n\u0131zdan metrik toplamak i\u00e7in <code>ServiceMonitor<\/code> veya <code>PodMonitor<\/code> kullan\u0131rs\u0131n\u0131z. <code>ServiceMonitor<\/code>, bir Kubernetes Service&#8217;i taraf\u0131ndan sunulan metrik u\u00e7 noktalar\u0131n\u0131 ke\u015ffederken, <code>PodMonitor<\/code> do\u011frudan Pod&#8217;lardaki metrik u\u00e7 noktalar\u0131n\u0131 hedefler.<\/p>\n<p>\u00d6rnek bir uygulaman\u0131n metriklerini izlemek i\u00e7in <code>ServiceMonitor<\/code> tan\u0131m\u0131:<\/p>\n<pre><code class=\"language-yaml\">apiVersion: monitoring.coreos.com\/v1\nkind: ServiceMonitor\nmetadata:\n  name: my-app-monitor\n  namespace: monitoring\n  labels:\n    release: prometheus-operator # Bu etiketi prometheus.prometheusSpec.serviceMonitorSelector ile e\u015fle\u015fecek \u015fekilde ayarlay\u0131n\nspec:\n  selector:\n    matchLabels:\n      app: my-app # Metriklerini izlemek istedi\u011finiz uygulaman\u0131n servisine ait etiket\n  endpoints:\n  - port: http-metrics # Uygulaman\u0131z\u0131n metriklerinin sunuldu\u011fu Service portunun ad\u0131\n    path: \/metrics # Metriklerin sunuldu\u011fu yol\n  namespaceSelector:\n    matchNames:\n    - default # Uygulaman\u0131z\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 namespace<\/code><\/pre>\n<p>Bu <code>ServiceMonitor<\/code>&#8216;\u0131 uygulad\u0131\u011f\u0131n\u0131zda, Prometheus otomatik olarak <code>my-app<\/code> etiketli servisin <code>http-metrics<\/code> portundaki <code>\/metrics<\/code> yolundan metrikleri toplamaya ba\u015flayacakt\u0131r. Uygulaman\u0131z\u0131n metrikleri sa\u011flamak i\u00e7in Prometheus uyumlu bir istemci k\u00fct\u00fcphanesi (\u00f6rne\u011fin Prometheus Go client) kullanmas\u0131 gerekti\u011fini unutmay\u0131n.<\/p>\n<h3>Sorun Giderme ve En \u0130yi Uygulamalar<\/h3>\n<p>\u0130zleme altyap\u0131s\u0131 kurarken baz\u0131 yayg\u0131n sorunlarla kar\u015f\u0131la\u015fabilir ve belirli en iyi uygulamalar\u0131 takip ederek sisteminizin sa\u011flaml\u0131\u011f\u0131n\u0131 art\u0131rabilirsiniz.<\/p>\n<h4>Yayg\u0131n Sorunlar<\/h4>\n<p>*   <strong>Helm Kurulum Hatalar\u0131:<\/strong> <code>helm install<\/code> veya <code>helm upgrade<\/code> komutlar\u0131 ba\u015far\u0131s\u0131z olursa, \u00e7\u0131kt\u0131y\u0131 dikkatlice inceleyin. Genellikle eksik ba\u011f\u0131ml\u0131l\u0131klar, yanl\u0131\u015f yap\u0131land\u0131rma veya kaynak yetersizli\u011fi gibi sorunlar belirtilir.<br \/>\n*   <strong>Pod&#8217;lar\u0131n Ba\u015flamamas\u0131:<\/strong> <code>kubectl get pods -n monitoring<\/code> komutunda baz\u0131 Pod&#8217;lar <code>Pending<\/code>, <code>CrashLoopBackOff<\/code> veya <code>Error<\/code> durumundaysa:<br \/>\n    *   <code>kubectl describe pod <pod-ad\u0131> -n monitoring<\/code>: Pod&#8217;un olaylar\u0131n\u0131 ve neden ba\u015flamad\u0131\u011f\u0131n\u0131 g\u00f6sterir.<br \/>\n    *   <code>kubectl logs <pod-ad\u0131> -n monitoring<\/code>: Pod&#8217;un loglar\u0131n\u0131 kontrol edin.<br \/>\n    *   Kaynak limitleri yetersiz olabilir. <code>values.yaml<\/code> dosyas\u0131nda CPU\/bellek limitlerini art\u0131rmay\u0131 deneyin.<br \/>\n    *   PersistentVolumeClaim sorunlar\u0131 olabilir. <code>kubectl get pvc -n monitoring<\/code> komutuyla PVC&#8217;lerin <code>Bound<\/code> durumda oldu\u011funu kontrol edin.<br \/>\n*   <strong>Metriklerin G\u00f6r\u00fcnmemesi:<\/strong> Prometheus UI&#8217;da bekledi\u011finiz metrikleri g\u00f6remiyorsan\u0131z:<br \/>\n    *   <code>kubectl get servicemonitors -n monitoring<\/code> veya <code>kubectl get podmonitors -n monitoring<\/code>: Monit\u00f6r kaynaklar\u0131n\u0131z\u0131n do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   Prometheus UI&#8217;daki &#8220;Status -> Targets&#8221; sayfas\u0131n\u0131 kontrol edin. Hedeflerinizin <code>UP<\/code> durumda oldu\u011fundan ve do\u011fru metrik u\u00e7 noktalar\u0131n\u0131 hedefledi\u011finden emin olun.<br \/>\n    *   Uygulaman\u0131z\u0131n ger\u00e7ekten metrikleri do\u011fru formatta (<code>\/metrics<\/code> yolunda) sunup sunmad\u0131\u011f\u0131n\u0131 kontrol edin.<br \/>\n*   <strong>Grafana&#8217;ya Eri\u015fim Sorunlar\u0131:<\/strong><br \/>\n    *   Ingress kullan\u0131yorsan\u0131z, <code>kubectl get ingress -n monitoring<\/code> komutuyla Ingress kayna\u011f\u0131n\u0131z\u0131n durumunu kontrol edin. Load Balancer&#8217;\u0131n IP adresini ald\u0131\u011f\u0131ndan ve DNS kayd\u0131n\u0131z\u0131n do\u011fru oldu\u011fundan emin olun.<br \/>\n    *   <code>kubectl logs <ingress-controller-pod> -n ingress-nginx<\/code> komutuyla Ingress Controller&#8217;\u0131n loglar\u0131n\u0131 kontrol edin.<br \/>\n    *   Port-forwarding kullan\u0131yorsan\u0131z, komutun hala \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan ve do\u011fru portu iletti\u011finden emin olun.<\/p>\n<h4>En \u0130yi Uygulamalar<\/h4>\n<p>*   <strong>Kaynak Limitleri ve \u0130stekleri Belirleme:<\/strong> Her Pod i\u00e7in CPU ve bellek istekleri (requests) ve limitleri (limits) belirlemek, k\u00fcmenizin istikrarl\u0131 \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar ve a\u015f\u0131r\u0131 kaynak t\u00fcketimini \u00f6nler. Prometheus ve Grafana gibi bile\u015fenler \u00f6nemli miktarda kaynak t\u00fcketebilir, bu y\u00fczden bunlar\u0131 iyi ayarlay\u0131n.<br \/>\n*   <strong>PersistentVolume Kullanma:<\/strong> Prometheus ve Alertmanager&#8217;\u0131n verileri i\u00e7in PersistentVolume kullanmak, Pod&#8217;lar yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda veya ta\u015f\u0131nd\u0131\u011f\u0131nda verilerin kaybolmamas\u0131n\u0131 sa\u011flar. <code>kube-prometheus-stack<\/code> bunu varsay\u0131lan olarak yapar, ancak PVC boyutlar\u0131n\u0131 ihtiya\u00e7lar\u0131n\u0131za g\u00f6re ayarlay\u0131n.<br \/>\n*   <strong>Yedekleme Stratejileri:<\/strong> Prometheus verisi kritikse, d\u00fczenli yedekleme stratejileri d\u00fc\u015f\u00fcn\u00fcn. Bu, Prometheus&#8217;un <code>remote_write<\/code> \u00f6zelli\u011fini kullanarak verileri uzun s\u00fcreli depolama \u00e7\u00f6z\u00fcmlerine (\u00f6rne\u011fin Thanos, Mimir) g\u00f6ndermek veya PVC&#8217;lerin anl\u0131k g\u00f6r\u00fcnt\u00fclerini almak olabilir.<br \/>\n*   <strong>G\u00fcvenlik:<\/strong><br \/>\n    *   Grafana ve Prometheus aray\u00fczlerine eri\u015fimi Ingress ile sa\u011flarken HTTPS kullanmak i\u00e7in sertifikalar\u0131 yap\u0131land\u0131r\u0131n (\u00f6rne\u011fin Cert-Manager ile Let&#8217;s Encrypt).<br \/>\n    *   Grafana&#8217;n\u0131n varsay\u0131lan <code>admin<\/code> \u015fifresini g\u00fc\u00e7l\u00fc bir \u015fifreyle de\u011fi\u015ftirin.<br \/>\n    *   Prometheus ve Alertmanager&#8217;a halka a\u00e7\u0131k eri\u015fimi dikkatlice y\u00f6netin. M\u00fcmk\u00fcnse, VPN veya IP k\u0131s\u0131tlamalar\u0131 kullanarak eri\u015fimi s\u0131n\u0131rlay\u0131n.<br \/>\n*   <strong>Otomatik \u00d6l\u00e7eklendirme:<\/strong> DOKS k\u00fcmenizdeki d\u00fc\u011f\u00fcmlerin veya uygulamalar\u0131n yo\u011funlu\u011funu izleyerek Horizontal Pod Autoscaler (HPA) veya Vertical Pod Autoscaler (VPA) gibi ara\u00e7larla otomatik \u00f6l\u00e7eklendirme stratejileri uygulay\u0131n. Prometheus metrikleri HPA i\u00e7in veri kayna\u011f\u0131 olarak kullan\u0131labilir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>DigitalOcean Kubernetes k\u00fcmenizi Helm ve Prometheus Operator ile izlemek, uygulaman\u0131z\u0131n ve altyap\u0131n\u0131z\u0131n sa\u011fl\u0131\u011f\u0131n\u0131, performans\u0131n\u0131 ve kaynak kullan\u0131m\u0131n\u0131 anlamak i\u00e7in sa\u011flam bir temel olu\u015fturur. Bu kapsaml\u0131 rehberde, <code>kube-prometheus-stack<\/code> Chart&#8217;\u0131n\u0131 kullanarak Prometheus, Grafana ve Alertmanager gibi temel izleme bile\u015fenlerini nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, bunlara nas\u0131l eri\u015fece\u011finizi ve DigitalOcean&#8217;a \u00f6zg\u00fc baz\u0131 hususlar\u0131 nas\u0131l y\u00f6netece\u011finizi ad\u0131m ad\u0131m \u00f6\u011frendiniz.<\/p>\n<p>Etkili bir izleme sistemi kurmak, sorunlar\u0131 proaktif olarak tespit etmenize, performans darbo\u011fazlar\u0131n\u0131 gidermenize ve sonu\u00e7 olarak daha kararl\u0131 ve g\u00fcvenilir bir hizmet sunman\u0131za olanak tan\u0131r. DigitalOcean&#8217;\u0131n y\u00f6netilebilir Kubernetes hizmetinin sa\u011flad\u0131\u011f\u0131 kolayl\u0131klarla Prometheus Operator&#8217;\u0131n g\u00fcc\u00fcn\u00fc birle\u015ftirmek, izleme stratejinizi basitle\u015ftirirken ayn\u0131 zamanda en iyi uygulamalar\u0131 takip etmenizi sa\u011flar.<\/p>\n<p>Unutmay\u0131n ki izleme, s\u00fcrekli bir s\u00fcre\u00e7tir. K\u00fcmeniz ve uygulamalar\u0131n\u0131z geli\u015ftik\u00e7e, izleme yap\u0131land\u0131rman\u0131z\u0131 ve uyar\u0131 kurallar\u0131n\u0131z\u0131 da g\u00f6zden ge\u00e7irmeli ve g\u00fcncellemelisiniz. Bu kurulum, DOKS k\u00fcmenizin gelecekteki b\u00fcy\u00fcmesi ve karma\u015f\u0131kl\u0131\u011f\u0131 i\u00e7in sa\u011flam bir temel sunar.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi\nKubernetes k\u00fcmeleri, modern bulut tabanl\u0131 uygula","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":[1328],"tags":[],"class_list":{"0":"post-31556","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-bash","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>DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi - 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\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi\" \/>\n<meta property=\"og:description\" content=\"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi Kubernetes k\u00fcmeleri, modern bulut tabanl\u0131 uygula\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-11T04:40:50+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=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi\",\"datePublished\":\"2025-10-11T04:40:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/\"},\"wordCount\":3052,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Bash\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/\",\"name\":\"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-11T04:40:50+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi\"}]},{\"@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":"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi - 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\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi","og_description":"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi Kubernetes k\u00fcmeleri, modern bulut tabanl\u0131 uygula","og_url":"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-11T04:40:50+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi","datePublished":"2025-10-11T04:40:50+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/"},"wordCount":3052,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Bash"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/","name":"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-11T04:40:50+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/digitalocean-kubernetes-kumesi-izleme-helm-ve-prometheus-operator-ile-kapsamli-kurulum-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"DigitalOcean Kubernetes K\u00fcmesi \u0130zleme: Helm ve Prometheus Operator ile Kapsaml\u0131 Kurulum Rehberi"}]},{"@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\/31556","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=31556"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31556\/revisions"}],"predecessor-version":[{"id":31557,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31556\/revisions\/31557"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31556"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31556"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31556"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}