Çalışma süresi ve kalp atışı izleme
1) Neden ihtiyacınız var
Çevrede ve içeride (kenar ↔ çekirdek) kesintilerin erken tespiti.
Kullanıcı kullanılabilirliğinin onaylanması (sadece "kapsüller canlı değil").
SLA/SLO sözleşme raporlama ve yasal yükümlülükler.
Arka plan süreçlerinin (cron, ETL, ödeme çürükleri) kalp atışı ile izlenmesi.
Metodolojiler: Altın Sinyaller (gecikme/trafik/hatalar/doygunluk), RED, SLO'ya bağlantı ve hatalı bütçe.
2) Kontrol türleri (sentetikler)
ICMP: temel ağ/IP kullanılabilirliği.
TCP: port canlıdır/el sıkışma (örn. 443/5432).
TLS: Sertifikaların geçerliliği/süresi/zinciri.
HTTP (S): yanıt kodu, gecikme, başlıklar, gövdedeki anahtar alt dizeleri.
DNS: çözünürlük, TTL, NXDOMAIN/SERVFAIL.
Başsız tarayıcı (kullanıcı yolu): login - action - logout.
Özel problar: sandbox PSP'de ödeme yetkilendirmesi, dahili iş sentetikleri (depozito simülasyonu).
İpuçları: Hem kenar hem de özel uç noktaların (VPC/K8s içinden) farklı risk alanları olduğunu kontrol edin.
3) Çalışma süresi izleme mimarisi
Bölgelere göre deneme ajanları (en az 3 coğrafi nokta).
HTTP/TCP/TLS/DNS için Blackbox dışa aktarıcısı.
Yollarla sentetikler (sıralı adımlar) ayrı ayrı; mağaza komut dosyaları.
Prometheus/Mimir/Thanos: metrikleri toplama, SLO/uyarı kuralı.
Alertmanager/Pager: yönlendirme P1/P2, tırmanma.
Durum Sayfası: işletmeler/müşteriler için şeffaf güncellemeler.
Günlükler/izler: 'trace _ id'/korelasyon ile delinme.
4) Sağlık-uç noktaları: tasarım
/ healthz (canlılık) - "yaşayan süreçtir".
/ readyz (hazırlık) - "trafik almaya hazır" (eşikli bağımlılıklar).
/ startupz - "başlatılmış".
/ check - gelişmiş iş sağlığı (zaman aşımları ve devre kesici ile kolay veritabanı/önbellek kontrolleri).
Anlamsal sağlık: Yalnızca kritik bağımlılıklar işlevsel olduğunda kod 200; 503'ün bozulması.
Kurallar: zaman aşımı ≤ 2-3'ler, sınırlı alt kontroller, yanıtlarda PII yok, önbellek ağır parçalar.
5) İş ve işçiler için kalp atışı
Dead Man's Switch modeli: eğer kene zamanında gelmediyse, uyarı.
Kullanım: cron/ETL/fatura işleri, zincir dışı ödeme kontrolleri, arka plan çalışanları.
- Push-heartbeat HTTP: iş bittiğinde 'POST/heartbeat/< job>' yapar.
- Metrics-pull: 'last _ succcess _ timestamp'ı ortaya çıkarın ve "N dakikadan eski'ile uyarın.
- Watchdog: ajandan sürekli sinyal; eksik - uyarı "izleme mola".
6) Yapılandırma örnekleri
6. 1 Blackbox-exporter (HTTP + TLS + DNS)
yaml modules:
http_2xx:
prober: http http:
method: GET preferred_ip_protocol: "ip4"
fail_if_not_ssl: true valid_http_versions: ["HTTP/1. 1","HTTP/2"]
tls_config:
insecure_skip_verify: false headers:
User-Agent: "uptime-probe"
body: ""
ip_protocol_fallback: false
tls_cert:
prober: tcp tcp:
query_response: []
tls: true tls_config:
insecure_skip_verify: false
dns:
prober: dns dns:
query_name: "api. example. com"
valid_rcodes: ["NOERROR"]
preferred_ip_protocol: "ip4"
6. 2 Prometheus: Hedefler ve Yengeçler
yaml scrape_configs:
- job_name: 'blackbox-http'
metrics_path: /probe params:
module: [http_2xx]
static_configs:
- targets:
- https://api. example. com/healthz
- https://pay. example. com/readyz relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- target_label: __address__
replacement: blackbox-exporter:9115
- source_labels: [__param_target]
target_label: instance
6. 3 Kalp Atışı İş Metrikleri (Prometheus ihracatçısı)
Metriği göster:
job_last_success_timestamp_seconds{job="settlement"} 1. 730000e+09
Uyarı:
promql
(time() - job_last_success_timestamp_seconds{job="settlement"}) > 900
6. 4 Watchdog (Ölü Adamın Anahtarı)
Alertmanager'da, 'Watchdog' uyarısı için rotayı etkinleştirin (her zaman ateş edin) - uyarı gelmezse, izleme kesilir.
7) Çalışma süresi için PromQL örnekleri
HTTP kullanılabilirliği (0/1):promql probe_success{job="blackbox-http"} == 1
Örneğe göre p95 gecikme süresi:
promql histogram_quantile(0. 95, sum by (le, instance) (rate(probe_http_duration_seconds_bucket[5m])))
TLS süresi <7 gün:
promql
(min_over_time(probe_ssl_earliest_cert_expiry[5m]) - time()) < 7243600
DNS hataları:
promql rate(probe_dns_rcode{rcode!="NOERROR"}[5m]) > 0
Çalışma Süresi SLI (28d haddeleme):
promql sum_over_time((probe_success==1)[28d]) / (28246060)
8) Uyarı: eşikler ve anti-gürültü
Çok bölgeli çekirdek: ≥2 bölgeler bir düşüş görürse tetiklenir.
Çoklu pencere: 1-5 dakika (hızlı kanal) + 30-60 dakika (sabit eğilim).
Duyarlılık: debounce/için: Çırpmaya karşı 2-5 dakika.
Korelasyon: Çalışma zamanı uyarısını deri ölçümleriyle ilişkilendirir (kenar, DNS, WAF, orijin).
Bakım pencereleri: 'bakım = gerçek' etiketleri ile uyarıları bastırma.
promql
≥2 regions simultaneously failed sum by (target) (max_over_time (probe _ success = = 0) [3m]))> = 2
9) Çok bölgeli ve çok satıcılı kontroller
Minimum 3 coğrafya (EU/NA/APAC) ve farklı ASN'ler.
Yinelenen: kendi örnekleri + harici çalışma süresi sağlayıcısı.
IPv4/IPv6, HTTP/2/3, farklı CDN POP'ları ve WAF profilleri.
10) Güvenlik kontrolleri
WAF/LB üzerindeki örneklerin IP aralıklarına izin verin.
Sağlık uç noktaları/probları için hız limitleri ve captcha-bypass.
Özel sağlık için başlık imzası (HMAC).
Ayrı alanlar: kamu örnekleri ve özel (/dahili/sağlık).
Dahili sürümleri/yapılandırmaları/healthz'a döndürmeyin; Sadece durumlar.
11) SLO ve çalışma süresi raporlama
SLI Kullanılabilirliği: 2xx/3xx HTTP prob başarı oranı.
SLO örneği: ≥ 99. Çoğu bölgede 28 günde %95.
Hatalı bütçe: '1 − SLO' - sürümleri yönetir.
Yanma oranı uyarıları: Örnek arızaların oranı için hızlı/yavaş kanal.
12) Ödeme ve kritik işler için kalp atışı
"Para etrafında" işler (transferler, kayıtlar) - çift kontrol: kalp atışı + iş sayaçları (kaç kayıt işleniyor).
"Sessizlik" (yeni olay yok> N dakika) ve gecikme (gerçek zamanın gerisinde kalma) ile uyarılar.
13) Durum sayfaları
Ayrı bileşenler (API'ler, ödemeler, arka uçlar, CDN'ler).
Uyarılardan otomatik güncellemeler, Comms rolü ile manuel yorumlar.
Olay geçmişi, ölüm sonrası bağlantılar, planlı çalışma.
14) Olay süreci ile entegrasyon
SEV'i çekirdek kurallarına + süreye göre uyarın.
Olay kartının otomatik oluşturulması, savaş odası, IC ataması.
İletişim şablonları (dahili/harici), gerekirse Yasal Bekletme.
Doğrulama sonrası: Sentetikler yeşil ≥ "Çözüldü'ye X dakika.
15) Performans ve maliyet
Örnekleme frekansı: kritik - her 30-60 s; İkincil - 1-5 dk.
Depolama: Uzun pencereler için altörnekleme/kayıt kuralları.
Dış sağlayıcıların bütçesi: Gelişmiş tarayıcı komut dosyalarını programla sınırlayın.
16) Kalite kontrol listesi
- Açık semantik ile/healthz ,/readyz ,/startupz vardır.
- ≥3 bölgelerden örnekler/ASN, IPv4/IPv6.
- TLS/DNS T-30/T-7/T-1 günleri kontrol eder ve uyarır.
- Kalp atışı tüm kritik işler (ve iş "sessizlik").
- Çoklu pencere + çekirdek, çırpma yok.
- Drilldown: günlükleri/parçaları/panoları düğmeler.
- Durum sayfası ve iletişim şablonları.
- SLO/metriklerin ve sahiplerin belgeleri.
17) Uygulama planı (3 yineleme)
1. 1. Hafta: HTTP/TLS/DNS blackbox kritik etki alanlarına göre problar, durum sayfası, temel uyarılar.
2. 2. Hafta: Çok bölgesellik, çoğunluk kuralları, kalp atışı en iyi iş, Bekçi köpeği.
3. 3. Hafta: Başsız komut dosyaları (giriş/para yatırma), SLO raporlama, olay süreci ile entegrasyon.
18) Mini-SSS
Neden dış örnekler iç örneklerden daha iyidir?
Dış kullanıcılar gerçek kullanıcı yolunu (DNS/CDN/WAF) görür, iç kullanıcılar başlangıç durumunu görür. İkisine de ihtiyacımız var.
Ücretli PSP'leri kontrol etmem gerekiyor mu?
Evet: sandbox ve durum sayfası izlemede sentetikler; Bozulma durumunda - otomatik akıllı yönlendirme.
Gürültü nasıl azaltılır?
Çekirdek, çoklu pencere, gecikme için, bakımda bastırma, açık SLO eşikleri ve mülkiyet.
Toplam
Uptime monitoring sadece ping değildir. Bu bir sistemdir: Çok bölgeli sentetikler + yüksek kaliteli sağlık uç noktaları + kalp atışı işi + SLO/uyarı + durum sayfaları. Kontrolleri standartlaştırın, gürültüyü azaltın, örnekleri koruyun ve her şeyi olay sürecine bağlayın - bu şekilde MTTR'yi azaltın ve hatalı bütçeden tasarruf edin.