Kubernetes ortamında servislerinizi izlemek ve yanıt sürelerini takip etmek mi istiyorsunuz? Blackbox Exporter, Prometheus ile entegre çalışan ve HTTP, HTTPS, DNS, TCP gibi protokoller üzerinden servislerinize probe göndererek yanıt alabilirliğini ve gecikme sürelerini ölçen bir izleme aracıdır.
Bu yazıda Kubernetes ortamına Blackbox Exporter'i nasıl kuracağımızı, Prometheus ile entegrasyonunu ve Grafana ile nasıl görselleştireceğimizi anlatacağız. ✨🚀
Blackbox Exporter, belirli hedeflere probe göndererek ulaşılabilirlik ve gecikme sürelerini analiz eden bir Prometheus Exporter'dır.
Desteklediği protokoller:
- ✨ HTTP(S) - Web servislerinin durumunu ve yanıt sürelerini kontrol eder.
- ✨ TCP - Servislerin port seviyesinde erişilebilir olup olmadığını kontrol eder.
- ✨ DNS - Belirli alan adlarının doğru çözümleyip çözümlemediğini kontrol eder.
- ✨ ICMP (Ping) - Hedefe ping atarak yanıt sürelerini ölçer.
Kubernetes ortamında Blackbox Exporter, servislerimizin durumunu takip etmek ve erken uyarı mekanizmaları oluşturmak için kritik bir rol oynar.
Blackbox Exporter’ı Helm Chart kullanarak kolayca Kubernetes ortamımıza kurabiliriz.
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install blackbox-exporter prometheus-community/prometheus-blackbox-exporter -n monitoring --create-namespace
kubectl get pods -n monitoring | grep blackbox
kubectl get svc -n monitoring | grep blackbox
Eğer pod Running
durumundaysa, kurulum tamamlanmıştır. ✅
Prometheus’un Blackbox Exporter'dan veri toplayabilmesi için eklememiz gereken scrape konfigurasyonu aşağıdaki gibidir:
modules:
http_2xx:
prober: http
timeout: 5s
http:
valid_http_versions: ["HTTP/1.1", "HTTP/2"]
method: GET
Bu dosyayı blackbox-scrape-config.yaml olarak kaydedelim.
kubectl create secret generic additional-scrape-configs-secret -n monitoring \
--from-file=additional-scrape-configs.yaml=blackbox-scrape-config.yaml
Prometheus konfigürasyonunu düzenleyerek bu Secret’ı kullanalım:
spec:
additionalScrapeConfigs:
secret:
name: additional-scrape-configs-secret
key: additional-scrape-configs.yaml
Değişikliklerin uygulanması için Prometheus podlarını yeniden başlatalım:
kubectl delete pod -l app.kubernetes.io/name=prometheus -n monitoring
📈 Prometheus Target Health sayfasında Blackbox Exporter'ın UP
olarak görünmesi gerekir.
kubectl port-forward svc/prometheus-kube-prometheus-prometheus 9090 -n monitoring
🔗 http://localhost:9090/targets adresine giderek kontrol edebiliriz.
Blackbox Exporter verilerini Grafana ile görselleştirebiliriz.
-
Grafana’ya erişim sağlayalım:
kubectl port-forward svc/prometheus-grafana 3000 -n monitoring
🔗 Tarayıcıdan http://localhost:3000 adresine giderek Grafana’ya giriş yapalım.
-
Dashboards → Import menüsüne girip Dashboard ID
7587
’yi ekleyelim. -
Prometheus’u datasource olarak seçerek dashboardu import edelim.
- Uptime Durumu:
probe_success{job="blackbox"}
- Yanıt Süreleri:
probe_duration_seconds{job="blackbox"}
- HTTP Durum Kodları:
probe_http_status_code{job="blackbox"}
Bu yazıda Kubernetes ortamında Blackbox Exporter’ı nasıl kurup Prometheus ile entegre edebileceğimizi ve Grafana ile verileri görselleştirebileceğimizi anlattık.
🎉 Artık servislerimizin ulaşılabilirliğini ve yanıt sürelerini detaylı bir şekilde takip edebiliriz! Grafana dashboard’ları ile anormallikleri kolayca fark edebilir ve aksiyon alabiliriz. 🚀
🛠️ Bir sonraki adım olarak, Blackbox Exporter’ı CI/CD pipeline'larınıza entegre etmeyi düşünebilirsiniz!
Eğer sorularınız veya eklemek istedikleriniz varsa yorumlarda buluşalım! ✨ 😊