GH GambleHub

Аптайм және heartbeat мониторингі

1) Бұл не үшін қажет

Периметрде және іште тұрып қалуды ерте анықтау (edge core).
Пайдаланушының қол жетімділігін растау (тек қана «тірі» емес).
SLA/SLO бойынша келісімшарттық есептілік және заңдық міндеттемелер.
Heartbeat арқылы фондық процестерді (cron, ETL, төлем синктері) бақылау.

Әдіснамалар: Golden Signals (latency/traffic/errors/saturation), RED, SLO-ға және қате бюджетке байланыстыру.

2) Тексерулердің түрлері (synthetics)

ICMP: негізгі желі/IP қолжетімділігі.
TCP: порт тірі/handshake (мысалы, 443/5432).
TLS: дәлдігі/мерзімі/сертификаттар тізбегі.
HTTP (S): жауап коды, latency, тақырыптар, body ішіндегі кілт жолдар.
DNS: резолев, TTL, NXDOMAIN/SERVFAIL.
Headless браузері (пайдаланушы жолы): login → әрекет → logout.
Custom probes: sandbox PSP төлем авторизациясы, ішкі бизнес-синтетика (deposit simulation).

Кеңестер: edge және жеке эндпоинттерді (VPC/K8s ішінен) тексеріңіз - бұл әртүрлі тәуекел домендері.

3) Аптайм-мониторинг архитектурасы

Өңірлер бойынша сынақ агенттері (кемінде 3 гео-нүкте).
HTTP/TCP/TLS/DNS үшін экспорттаушы Blackbox.
Жолдар бойынша синтетика (sequential steps) жеке; скрипттерді сақтаңыз.
Prometheus/Mimir/Thanos: метриктерді жинау, SLO/алерттер ережесі.
Alertmanager/Pager: P1/P2 бағыттау, эскалация.
Status Page: бизнес/клиенттер үшін мөлдір апдейттер.
Қатынас жолдары: drilldown 'trace _ id '/корреляция.

4) Health-эндпоинттер: дизайн

/ healthz (liveness) - «процесс тірі ме».
/ readyz (readiness) - «трафикті қабылдауға дайын» (табалдырықтармен тәуелділік).
/ startupz - «бастамадан өтті».
/ check - кеңейтілген бизнес-health (таймауттар мен circuit-breaker бар БД/кешті жеңіл тексеру).
Semantic health: код 200 тек критикалық тәуелділіктің жұмысқа қабілеттілігі кезінде; деградация → 503.

Ережелер: таймаут ≤ 2-3с, лимиттелген кіші тексерулер, жауаптарда PII-сіз, ауыр бөліктерді кэш.

5) Джоб және воркерлер үшін Heartbeat

Dead Man's Switch моделі: егер «тик» дер кезінде келмесе - алерт.
Пайдалану: cron/ETL/инвойс-джобтар, off-chain төлемдерді тексеру, фондық воркерлер.

Тәсілдері:
  • Push-heartbeat HTTP: джоба аяқталғаннан кейін 'POST/heartbeat/< job>' жасайды.
  • Metrics-pull: экспонат 'last _ 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: таргеттер мен джобтар

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 бағдарламасында 'Watchdog' (әрқашан firing) → ескертуі келмесе - мониторинг бұзылған.

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])))
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 өңірдің ≥ құлдырауды көрсе, іске қосылады.
Multi-window: 1-5 мин (жылдам арна) + 30-60 мин (тұрақты тренд).
Сезімталдығы: debounce/for: флаппингке қарсы 2-5 минут.
Корреляция: аптайм-алертті лейер-метриктермен (edge, DNS, WAF, origin) байланыстыру.
Maintenance windows: 'maintenance = 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, әртүрлі CDN РОР және WAF-профильдер.

10) Тексеру қауіпсіздігі

Allowlist WAF/LB сынамаларының IP диапазондары.
Rate-limits және эндпоинттер үшін капча-байпас health/сынамалар.
Жеке health үшін (HMAC) тақырыптар қолтаңбасы.
Бөлек домендер: көпшілік сынамалар және жеке (/internal/health).
/ healthz ішіндегі нұсқаларды/конфигаларды қайтармаңыз; тек мәртебелер.

11) SLO және дәріхана бойынша есептілік

SLI Availability: 2xx/3xx табысты HTTP сынамаларының үлесі.
SLO мысал: ≥ 99. Көптеген өңірлер бойынша 28 күнде 95%.
Қате бюджет: '1 − SLO' → шығарылымдарды басқарады.
Burn-rate алерта: сынамалардың сәтсіздік үлесі үшін жылдам/баяу арна.

12) Төлем және сыни джобтар үшін Heartbeat

Джобтар «ақша айналасында» (трансферттер, тізілімдер) - қосарлы бақылау: heartbeat + бизнес-есептегіштер (қанша жазба өңделді).
«Тыныштық» бойынша (жаңа оқиғалар жоқ> N минут) және лаг бойынша (real-time артта қалу).

13) Мәртебе беттері

Компоненттерді бөліңіз (API, төлемдер, бэкендер, CDN).
Автоматты ескертулер, Comms рөлі арқылы қолмен түсініктемелер.
Оқиғалар тарихы, постмортем-сілтемелер, жоспарланған жұмыстар.

14) Инцидент-процеспен интеграциялау

Alert SEV quorum + ұзақтығы ережелері бойынша.
Автонастық карточкасын жасау, war-room, IC мақсаты.
Коммуникация үлгілері (ішкі/сыртқы), қажет болған жағдайда Legal Hold.
Постверификация: жасыл синтетика ≥ «Resolved» дейін X минут.

15) Өнімділік және құн

Сынама жиілігі: сындарлы - әрбір 30-60с; қайталама - 1-5 мин.
Сақтау: ұзақ терезелер үшін downsampling/recording rules.
Сыртқы провайдерлердің бюджеті: кеңейтілген шолғыш сценарийлерін кесте бойынша шектеңіз.

16) Сапа чек-парағы

  • Нақты семантикасы бар/healthz ,/readyz ,/startupz бар.
  • ≥ 3 аймақтан алынған сынамалар/ASN, IPv4/IPv6.
  • TLS/DNS тексерулер және T-30/T-7/T-1 күндік тәуекелдер.
  • Heartbeat барлық сыни джоб (және бизнес «тыныштық»).
  • Multi-window + quorum, флаппингсіз.
  • Drilldown: логтар/трассалар/дашбордтар түймешіктері.
  • Қатынас мәртебесі мен үлгілері.
  • SLO/метрикалық және иелерінің құжаттамасы.

17) Енгізу жоспары (3 итерация)

1. Апта 1: сыни домендер бойынша HTTP/TLS/DNS blackbox сынамалары, статус-бет, базалық алерттар.
2. Апта 2: көп-аймақтық, quorum-ережелер, heartbeat топ-джоб, Watchdog.
3. Апта 3: headless-сценарийлер (login/deposit), SLO есептілігі, инцидент-процеспен интеграция.

18) Шағын FAQ

Сыртқы сынамалар ішкі сынамалардан немен жақсы?
Сыртқы пайдаланушының нақты жолын (DNS/CDN/WAF), ішкі - origin күйін көреді. Екеуі де керек.

Ақылы PSP-лерді тексеру керек пе?
Иә: sandbox синтетика және статус-беттер мониторингі; деградация кезінде - автоматты smart-routing.

Шуды қалай азайтуға болады?
Quorum, multi-window, for-кідіріс, maintenance suppression, нақты SLO-табалдырықтары және иелену.

Жиынтығы

Аптайм-мониторинг - бұл тек пинг қана емес. Бұл жүйе: көп-аймақтық синтетика + сапалы health-эндпоинттер + heartbeat джоб + SLO/алертинг + статус-беттер. Тексерулерді стандарттаңыз, шуды азайтыңыз, сынамаларды қорғаңыз және инцидент процесімен байланыстыңыз - осылайша сіз MTTR-ді азайтып, қате бюджетті сақтайсыз.

Contact

Бізбен байланысыңыз

Кез келген сұрақ немесе қолдау қажет болса, бізге жазыңыз.Біз әрдайым көмектесуге дайынбыз!

Telegram
@Gamble_GC
Интеграцияны бастау

Email — міндетті. Telegram немесе WhatsApp — қосымша.

Сіздің атыңыз міндетті емес
Email міндетті емес
Тақырып міндетті емес
Хабарлама міндетті емес
Telegram міндетті емес
@
Егер Telegram-ды көрсетсеңіз — Email-ге қоса, сол жерге де жауап береміз.
WhatsApp міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.