藥房和心跳監測
1)為什麼需要它
早期檢測周邊和內部停機(ed ↔ ge Core)。
確認用戶可用性(不僅僅是「podas是否還活著」)。
SLA/SLO合同報告和法律義務。
通過心跳控制背景過程(cron,ETL,支付合成器)。
方法:金色信號(latency/traffic/errors/saturation),RED,綁定到SLO和錯誤的預算。
2)檢查類型(合成)
ICMP: 基本網路/IP可用性。
TCP:端口/掛起(例如443/5432)。
TLS:證書的有效性/期限/鏈條。
HTTP (S):響應代碼、後綴、標題、關鍵子字符串在body中。
DNS: resoll、TTL、NXDOMAIN/SERVFAIL。
無頭瀏覽器(用戶路徑):登錄→操作→登錄。
Custom probes: sandbox PSP的支付授權,內部業務合成(deposit simulation)。
提示:檢查邊緣和私有端口(從VPC/K8s內部)是不同的風險域。
3)上限監控架構
試用代理按地區(最少3個地理點)。
HTTP/TCP/TLS/DNS的Blackbox出口商。
單獨的軌道合成(序列步驟);儲存腳本。
Prometheus/Mimir/Thanos:收集指標,SLO/Alert規則。
Alertmanager/Pager:路由P1/P2、升級。
狀態頁:針對企業/客戶的透明升級。
標誌/軌跡:在「trace_id」/相關性下鉆入。
4)健康終點: 設計
/healthz (liveness)-「過程是否還活著」。
/readyz (readiness)-「準備接收流量」(閾值依賴性)。
/startupz-「已通過初始化」。
/check-Extended Business Health(帶有taymauts和circuit breaker的輕度DB/Kesha檢查)。
Semantic health:僅在關鍵依賴關系運行時才使用代碼200;降解→ 503。
規則:計時≤ 2-3 s,限制下檢查,響應中沒有PII,緩存重件。
5) Heartbeat for job and workers
Dead Man's Switch模型:如果「tik」沒有按時到達-alert。
用途:cron/ETL/invoys-jobs,離線支付檢查,背景培訓師。
- 推心HTTP:喬巴完成後做「POST/heartbeat/< job>」。
- Metrics-pull:在「超過N分鐘」的情況下展示「last_success_timestamp」和alertite。
- 看門狗:來自代理商的恒定信號;不見了-「監控懸崖」警報。
6)配置示例
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: targets and jobs
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個心跳指標(Prometheus exporter)
展出度量:
job_last_success_timestamp_seconds{job="settlement"} 1. 730000e+09
Alert:
promql
(time() - job_last_success_timestamp_seconds{job="settlement"}) > 900
6.4 Watchdog (Dead Man’s Switch)
在Alertmanager中,如果警報沒有到達,則打開一個「看門狗」警報的路線(總是開火)→監控被打破。
7) PromQL的uptime示例
HTTP可用性(0/1):promql probe_success{job="blackbox-http"} == 1
p95個樣本延遲:
promql histogram_quantile(0. 95, sum by (le, instance) (rate(probe_http_duration_seconds_bucket[5m])))
TLS到期<7天:
promql
(min_over_time(probe_ssl_earliest_cert_expiry[5m]) - time()) < 7243600
DNS錯誤:
promql rate(probe_dns_rcode{rcode!="NOERROR"}[5m]) > 0
Uptime SLI (rolling 28d):
promql sum_over_time((probe_success==1)[28d]) / (28246060)
8)警戒線: 閾值和反噪音
Multi-Region quorum:如果≥2地區看到下降,則觸發。
多窗口:1-5分鐘(快速通道)+30-60分鐘(持續趨勢)。
靈敏度:debounce/for:2-5分鐘vs flapping。
相關性:將aptime alert與leyer度量(邊緣、DNS、WAF、起源)相關聯。
維護視窗:按標記「維護=true」抑制變量。
promql
≥2 regions simultaneously failed sum by (target) (max_over_time (probe _ success = = 0) [3m]))> = 2
9)多區域和多供應商檢查
至少有3個地理區域(EU/NA/APAC)和不同的ASN。
復制:自己的樣本+外部藥房提供商。
IPv4/IPv6,HTTP/2/3,不同的ROR和WAF配置文件的CDN。
10)檢查安全
WAF/LB上的樣本範圍的Allowlist IP。
Rate-limits和kapcha-bypas用於健康/樣品末端。
私人健康標題標題(HMAC)。
分開的領域:公共樣本和私人領域(/internal/health)。
不要在/healthz 中返回內部版本/configa;僅限狀態。
11) SLO和藥房報告
SLI可用性:成功的HTTP樣本2xx/3xx的比例。
SLO示例:≥ 99。大多數地區在28天內達到95%。
錯誤的預算:'1 − SLO' →管理發行版。
Burn-rate alerta:快速慢速通道,用於分量樣品失效。
12)Heartbeat用於支付和關鍵喬布
Jobs「圍繞金錢」(轉移,註冊)是雙重控制:heartbeat+業務櫃臺(處理了多少記錄)。
Alerta通過「沈默」(沒有新事件>N分鐘)和滯後(實時滯後)。
13)狀態頁面
共享組件(API,付款,後端,CDN)。
自動升降機,通過Comms角色手動註釋。
事件歷史,事後鏈接,計劃中的工作。
14)與事件過程的整合
根據quorum+持續時間規則的Alert SEV。
自動生成事件卡,戰爭室,IC分配。
通信模板(內部/外部),必要時合法保留。
後驗證:合成綠色≥ X分鐘至「解決」。
15)生產力和成本
樣本頻率:臨界值-每個30-60 c;第二次-1-5分鐘。
存儲:用於長窗口的downsampling/recording規則。
外部提供商預算:按計劃限制高級瀏覽器腳本。
16)質量支票清單
- 有/healthz ,/readyz ,/startupz具有清晰的語義。
- 來自≥3 個區域/ASN的樣品,IPv4/IPv6。
- TLS/DNS驗證和差分T-30/T-7/T-1天。
- 所有關鍵喬布(和商業-「沈默」)的心跳。
- Multi-window+quorum,無翻轉。
- Drilldown:到博客/軌道/行車記錄儀的按鈕。
- 狀態頁面和通信模板。
- SLO/指標和所有者文檔。
17)實施計劃(3次叠代)
1.第1周:按關鍵域、狀態頁、基本Alertes進行的HTTP/TLS/DNS黑盒樣本。
2.第二周:多區域性,quorum規則,heartbeat top job,Watchdog。
3.第3周:無頭腳本(登錄/登錄),SLO報告,事件過程集成。
18)迷你常見問題
外部樣品比內部樣品好多少?
外部查看真實用戶路徑(DNS/CDN/WAF),內部查看原始狀態。兩者都需要。
需要檢查付費的PSP嗎?
是:sandbox中的合成和狀態頁面監控;降解-自動智能路由。
如何減少噪音?
Quorum,多窗口,for延遲,維護支持,清晰SLO閾值和所有權。
底線
上限監控不僅僅是ping。這是一個系統:多區域合成+高質量的健康末端+heartbeat job+SLO/alerting+狀態頁面。標準化檢查,減少噪音,保護樣品並將所有內容與事件過程聯系起來-這樣您就可以減少MTTR並節省錯誤的預算。