Zabbix, sertifika bitişini izlemek için hem yerleşik web sertifika öğesini hem de harici betik yöntemini destekler. Sürümünüze göre uygun olanı seçmeniz yeterlidir.
Yöntem 1: Yerleşik öğe
Yeni Zabbix sürümlerinde web.certificate.get[hostname,port] anahtarıyla sertifika bilgileri JSON olarak alınır. Bu öğeye bağımlı öğeler tanımlayarak bitiş tarihini (x509.not_after.timestamp gibi alanlar) ayrı ayrı çıkarabilirsiniz. Kullandığınız sürümde bu anahtarın bulunup bulunmadığını resmi dokümantasyondan doğrulayın.
Yöntem 2: Harici betik
Daha eski sürümlerde veya özel ihtiyaçta betikle kalan gün hesaplanabilir:
#!/bin/bash
# /usr/lib/zabbix/externalscripts/ssl_days.sh
host="$1"; port="${2:-443}"
end=$(echo | openssl s_client -connect "$host:$port" -servername "$host" 2>/dev/null | openssl x509 -noout -enddate | cut -d= -f2)
echo $(( ( $(date -d "$end" +%s) - $(date +%s) ) / 86400 ))
Betiği çalıştırılabilir yapın (chmod +x) ve Zabbix kullanıcısının çalıştırabildiğini doğrulayın. Öğe türünü "External check", anahtarı ssl_days.sh[{HOST.CONN},443] olarak tanımlayın.
Tetikleyici örnekleri
last(/web01/ssl_days.sh[{HOST.CONN},443])<30 # Uyarı
last(/web01/ssl_days.sh[{HOST.CONN},443])<14 # Yüksek
Ayrıca değer alınamıyorsa (nodata()) ayrı bir uyarı üretin; sessiz başarısızlık en tehlikeli durumdur.
İpuçları
- Şablon oluşturup tüm web sunucularına bağlayın; makro ile eşik değerlerini değiştirilebilir yapın.
- Kontrol aralığını günlük veya saatlik tutun; dakikalık gereksizdir.
- Zincirdeki ara sertifikaların bitişini de ayrı izleyin.
Sık sorunlar
- Betik çıktısı sayı değil metin döndürüyorsa öğe "desteklenmiyor" durumuna düşer.
- Güvenlik duvarında Zabbix sunucusundan 443'e izin yoksa veri gelmez.
Sertifika bilgisini hızlıca elle görmek için SSL kontrol aracı işe yarar.
Panoda görünürlük
Kalan gün değerlerini bir panoda küçükten büyüğe sıralayan bir tablo widget'ı, yaklaşan bitişleri tek bakışta gösterir. Ekip toplantılarında bu tabloya bakmak, bildirim gelmeden önce proaktif yenileme yapmayı sağlar. Şablon değişikliklerini üretime almadan önce bir test sunucusunda deneyin.