Intaptaima և heartbeat
1) Ինչո՞ ւ է դա անհրաժեշտ
Վաղ հայտնաբերումը պարագծի և ներսում (edge)։
Ռուսական հասանելիության ապացույցը (և ոչ միայն «պոդները կենդանի են»)։
SLA/SLO պայմանագրային հաշվետվությունները և իրավաբանական պարտավորությունները։
Ֆոնային գործընթացների վերահսկումը (cox, ETL, ալյումինե կապիկներ) heartbeat-ի միջոցով։
Մեթոդաբանություններ ՝ Golden Signals (latency/traffic/errors/saturation), RED, կապված SLO-ի և սխալ ոճի հետ։
2) Ստուգումների տեսակները (www.nthet.ru)
ICA.RU: wwww.indowha/IP հասանելիություն։
TCP 'պորտ կենդանի/handshake (օրինակ ՝ 443/5432)։
TFC '/ժամկետի/հավաստագրերի շղթա։
HTTP (S) ՝ պատասխանը, latency, վերնագրերը, հիմնական ենթահողերը body-ում։
III ՝ ռեզոլև, TTL, NXDOMAIN/SERFAIL։
Headless-զննարկիչ (օգտագործողի ճանապարհը): login-ը www.logout գործողությունն է։
Custronprobes: sandbox PSA-ում, ներքին բիզնես սինթեզիկան (deposit simulation)։
Խորհուրդներ 'ստուգեք և edge, և մասնավոր էնդպոինտները (SDC/K8s) ռիսկի տարբեր օրինակներ են։
3) Aptaim-մոնիտորինգի ճարտարապետությունը
Փորձարկման կետերը տարածաշրջաններում (առնվազն 3 գեո կետեր)։
Blackbox-մրցույթի համար HTTP/TCP/TSA/TSA-ի համար։
Սինթեզիկան ուղիներով (sequential steps) առանձին; պահեք ջութակները։
Prometheus/Mimir/Thanos: metric, SLO/alerts կանոնը։
Alertmanager/Pager: P1/P2 երթուղայնացումը, էսկալացիան։
Status Page: թափանցիկ ապդեյտներ բիզնեսի/հաճախորդների համար։
Լոգներ/հետքեր ՝ www.illdown 'trace _ id '/հարաբերակցություն։
4) Health-endpoints: Դիզայն
/ healthz (liveness) - «կենդանի գործընթաց»։
/ readyz (readiness) - «պատրաստ է ընդունել» (կախված շեմերից)։
/ startupz - «սկսվեց»։
/ wwww.k - ընդլայնված բիզնես health (BD/kash թեթև ստուգումներ թայմաուտներով և circuit-breaker)։
Semantic health: կոդը 200-ը միայն կրիտիկական կախվածության ընդունակությամբ։ քայքայումը 503 է։
Կանոնները 'թայմաութ 242-3s, որոնք սահմանափակվում են ստուգման համար, առանց PII պատասխանների, ծանր մասեր։
5) Heartbeat-ը ջո և գողերի համար
Dead Man's Switch: Եթե «tick» -ը ժամանակին չի եկել, ալերտ։
Օգտագործումը ՝ com/ETL/invois-ջոբա, off-chain վճարման ստուգումներ, ֆոնային գողեր։
Մեթոդներ
Push-heartbeat HTTP-ն 'ջոբը վերջում անում է
Metram-p.ru: Էքսպոնիզացրեք 'lection _ success _ timestamp "և ալերգիտեք" N րոպեներից բարձր "։
Watchdog 'անընդհատ ազդանշան գործակալից; անհետացավ, ալերտը «մոնիտորինգի խզումը»։
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 և ջոբա
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 Heartbeat-մետրիկ ջոբայի համար (Prometheus exporter)
Էքսպոնիզացրեք մետրը
job_last_success_timestamp_seconds{job="settlement"} 1. 730000e+09
Ալերթ
promql
(time() - job_last_success_timestamp_seconds{job="settlement"}) > 900
6. 4 Watchdog (Dead Man’s Switch)
Alertmanager-ում միացրեք alert 'Watchdog-ի (միշտ firing) համար roat-ը, եթե ծանուցումը չի գալիս, ռուսական կոտրված է։
7) PromQL-ի օրինակները ապտայմի համար
HTTP հասանելիություն (0/1)
promql probe_success{job="blackbox-http"} == 1
p95 latency փորձարկումներով
promql histogram_quantile(0. 95, sum by (le, instance) (rate(probe_http_duration_seconds_bucket[5m])))
TFC ժամանակահատվածը ավարտվում է <7 օր
promql
(min_over_time(probe_ssl_earliest_cert_expiry[5m]) - time()) < 7243600
RF սխալներ
promql rate(probe_dns_rcode{rcode!="NOERROR"}[5m]) > 0
Uptime SLI (rolling 28d):
promql sum_over_time((probe_success==1)[28d]) / (28246060)
8) Alerting 'շեմեր և anti-shum
Multi-region-rum-ը աշխատում է, եթե 242 տարածաշրջաններ տեսնում են նվազում։
Multi-2019: 1-5 րոպե (արագ ալիք) + 30-60 րոպե (կայուն միտում)։
Զգայունություն 'debounce/for: 2-5 րոպե ֆլամպինգի դեմ։
Հարաբերակցություն 'կապեք aptaim-alert-ի հետ (edge, IV, WAF, origin)։
Maintenae windows: Alerts-ի ճնշումը «maintenae = www.ru» թեստերի միջոցով։
Կանոնների օրինակ
promql
≥2 regions simultaneously failed sum by (target) (max_over_time (probe _ success = = 0) [3m]))> = 2
9) Շատ ռեգիոնային և շատ վենդային ստուգումներ
Առնվազն 3 աշխարհագրություն (EU/NA/APAC) և տարբեր ASN։
Կրկնօրինակեք ձեր սեփական փորձարկումները + արտաքին aptaim-պրովայդերը։
IPv4/IPv6, HTTP/2/3, տարբեր CDN ROR 'a և WAF պրոֆիլներ։
10) Ստուգումների անվտանգությունը
Allowlist IP-ի նմուշների միջակայքը WAF/LB-ում։
Rate-limits-ը և capch-bepas-ը health/փորձարկման համար։
Վերնագրերի ստորագրությունը (HMAC) մասնավոր health-ի համար։
Առանձին հատվածներ 'հանրային փորձարկումներ և մասնավոր (/www.al/health)։
Մի վերադարձրեք ներքին տարբերակները/դելիգները/healthz; միայն արձանները։
11) SLO-ն և aptaima հաշվետվությունները
SLI Availability: հաջողակ HTTP նմուշների մասնաբաժինը 2xx/3xx է։
SLO օրինակ ՝ 3699։ 95 տոկոսը 28 օրվա ընթացքում տարածաշրջանների մեծամասնությամբ։
Սխալ բյուջեն '"1 www.SLO' 2019 կառավարում է թողարկումները։
Burn-rate alerts: արագ/դանդաղ ալիքը փորձարկման ձախողումների մասնաբաժնի համար։
12) Heartbeat-ը հիբրիդային և քննադատական ջոյի համար
Ջոբի «փողի շուրջ» (փոխանցումներ, օրինակներ) կրկնակի վերահսկողություն է 'heartbeat + բիզնես հաշվիչներ (քանի ձայնագրություններ են)։
Ալերտները «լռությամբ» (նոր իրադարձություններ> N րոպե) և լագով (real-time)։
13) Կարգավիճակ-էջ
Բաժանեք բաղադրիչները (API, վճարումներ, backends, CDN)։
Ալերտերի ավտոմատ ապդեյտները, Comics-դերի ձեռքով մեկնաբանությունները։
Մրցույթի պատմությունը, հետմորտը, պլանավորված աշխատանքը։
14) Ինտեգրումը պատահականության գործընթացին
Alert SEV-ը, համաձայն ww.rum + տևողության կանոնների։
Բանկային քարտի ստեղծումը, war-room, IC նշանակումը։
Հաղորդակցության ձևանմուշները (ներքին/արտաքին), Legal Hold անհրաժեշտության դեպքում։
Post-veriation: սինթեզիկան կանաչ է X րոպե մինչև «Resolved»։
15) Արտադրողականությունը և արժեքը
Փորձարկման հաճախությունը 'կրիտիկական' յուրաքանչյուր 30-60s; մետրոպոլիտենը 1-5 ռուբլիներ է։
Պահեստավորում: downsampling/recording rules երկար պատուհանների համար։
Արտաքին պրովայդերների բյուջեն 'սահմանափակեք առաջադեմ զննարկչի սցենարները։
16) Որակի թուղթ
- Կա/healthz ,/readyz ,/startupz, հստակ սեմանտիկ։
- Փորձարկումներ 353 տարածաշրջաններից/ASN, IPv4/IPv6։
- TFC/IV ստուգումներ և ալտերտեր T-30/T-7/T-1 օր։
- Heartbeat բոլոր քննադատական ջո (և բիզնեսը «լռություն»)։
- Multi-71 + ww.rum, առանց ֆլամպինգի։
- Winilldown: կոճակներ լոգարանների/հետքերի/dashbords։
- Կարգավիճակ-էջ և հաղորդակցման ձևանմուշներ։
- SLO/մետրիկ և սեփականատեր։
17) Իրականացման պլանը (3 իտացիա)
1. Մեկ շաբաթ 1: blackbox թեստեր HTTP/TSA/CSA քննադատական պարամետրերով, կարգավիճակ-էջ, հիմնական ալերտեր։
2. Շաբաթ 2: Շատ ռեգիոնիզմ, www.rum կանոններ, heartbeat լավագույն ջո, Watchdog։
3. Շաբաթ 3: headless-սցենարները (login/deposit), SLO հաշվետվությունները, ինտեգրումը պատահականության հետ։
18) Mini-FAQ
Ինչպե՞ ս են արտաքին փորձարկումները ավելի լավ, քան ներքին։
Արտաքին տեսնում են օգտագործողի իրական ճանապարհը (ISO/CDN/WAF), ներքին 'origin վիճակը։ Երկուսն էլ կարիք ունեն։
Արդյո՞ ք անհրաժեշտ է ստուգել վճարվող PBS-ները։
Այո 'սինթեզիկան sandbox-ում և ռուսական էջերի կարգավիճակը։ քայքայման ժամանակ ավտոմատ smart-routing է։
Ինչպե՞ ս նվազեցնել աղմուկը։
Disrum, multi-2019, for-ուշացում, suppression maintena.ru, հստակ SLO շեմեր և սեփականություն։
Արդյունքը
Aptaim-2019-ը միայն պինգ չէ։ Սա համակարգ է: Շատ ռեգիոնային սինթեզիկներ + բարձրորակ health-endpoints + heartbeat jo + SLO/alerting + կարգավիճակ-էջ։ Ստանդարտացրեք ստուգումները, նվազեցրեք աղմուկը, պաշտպանեք փորձարկումները և կապեք ամեն ինչ պատահականության հետ, այնպես որ դուք կնվազեցնեք MTTR-ը և պահպանեք սխալ բյուջեն։