药房和心跳监测
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并节省错误的预算。