Prometheus ekosisteminde sertifika izleme, blackbox_exporter ile yapılır: Prometheus hedefleri periyodik sorgular, exporter bağlantıyı dener ve sertifika bilgisini metrik olarak döndürür.
Blackbox exporter modülü
modules:
http_2xx:
prober: http
timeout: 10s
http:
preferred_ip_protocol: ip4
Prometheus scrape yapılandırması
scrape_configs:
- job_name: ssl_blackbox
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- https://example.com
- https://shop.example.com
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: blackbox-exporter:9115
Önemli metrikler
probe_ssl_earliest_cert_expiry: zincirdeki en erken bitiş zamanı (Unix saniyesi).probe_success: sorgunun başarısı.probe_http_ssl: yanıtın TLS ile gelip gelmediği.
Alarm kuralı
groups:
- name: ssl
rules:
- alert: SertifikaYakinda
expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 21
for: 1h
labels: {severity: warning}
annotations:
summary: "{{ $labels.instance }} sertifikası 21 günden az sürede bitiyor"
- alert: SertifikaKritik
expr: probe_ssl_earliest_cert_expiry - time() < 86400 * 7
labels: {severity: critical}
Sık sorunlar
- Güvenilmeyen CA ile iç ortamlarda
tls_configaltında CA dosyasını belirtmek gerekir. - Metrik yoksa hedef erişilemiyordur;
probe_success == 0alarmı da ekleyin. - Bu metrik zincirdeki en erken bitişi verir, bu yüzden ara sertifika da kapsanır.
Uyarıları Alertmanager ile sohbet veya e-postaya yönlendirin. Sonuçları bağımsız doğrulamak için SSL kontrol aracı kullanılabilir.
Ek izleme fikirleri
- Hedef listesini dosyadan okutmak için
file_sd_configskullanın; yeni alan adı eklemek yapılandırmayı yeniden başlatmadan mümkün olur. - Grafana'da kalan günleri gösteren bir panel kurun:
(probe_ssl_earliest_cert_expiry - time()) / 86400. - Aynı exporter ile HTTP durum kodu ve yanıt süresini de izleyin; sertifika yenilemesi sonrası beklenmedik yönlendirme sorunlarını yakalar.