Налаштування моніторингу доступності з кількох регіонів
Внутрішній моніторинг показує, що сервіс працює зсередини інфраструктури. Але користувачі з Токіо, Франкфурту або Новосибірська можуть бачити зовсім іншу картину. Мультирегіональний моніторинг доступності — це очі ваших користувачів по всьому світу.
Чому моніторити з кількох точок
Сценарії, які внутрішній моніторинг не покаже:
- BGP routing проблема в конкретному регіоні — трафік з Європи йде в обхід через 15 хопів
- CDN endpoint в Азії повертає 502 — ваш origin у США живий
- DDoS absorb Cloudflare в одному PoP — користувачі з цього регіону отримують таймаути
- DNS cache poisoning у конкретній мережі — ваш сервер не при чому
Управління рішення
Pingdom. Перевірки з 100+ точок світу, 1-хвилинні інтервали, алерти при падінні з конкретного регіону. Transaction checks для багатокрокових сценаріїв (логін → покупка).
Checkly. Playwright-based перевірки — реальний браузер, не просто HTTP ping. Дуже точна симуляція користувача. Перевірки з 20+ регіонів.
Better Uptime / Freshping. Більш доступна ціна, базовий функціонал.
Datadog Synthetic Monitoring. Інтеграція з рештою стеку Datadog, API та Browser тести, CI/CD інтеграція.
Self-hosted: Prometheus Blackbox Exporter у кількох регіонах
Розгорнути Blackbox Exporter у кількох хмарних регіонах:
# Terraform: EC2 інстанс з Blackbox у кожному регіоні
provider "aws" {
alias = "eu-west-1"
region = "eu-west-1"
}
provider "aws" {
alias = "ap-southeast-1"
region = "ap-southeast-1"
}
resource "aws_instance" "monitor_eu" {
provider = aws.eu-west-1
ami = data.aws_ami.ubuntu_eu.id
instance_type = "t3.micro"
user_data = file("blackbox-setup.sh")
tags = { Name = "blackbox-eu-west-1" }
}
resource "aws_instance" "monitor_ap" {
provider = aws.ap-southeast-1
ami = data.aws_ami.ubuntu_ap.id
instance_type = "t3.micro"
user_data = file("blackbox-setup.sh")
tags = { Name = "blackbox-ap-southeast-1" }
}
Кожний Blackbox exporter збирається центральним Prometheus через federation або remote_write:
# prometheus.yml на центральному сервері
scrape_configs:
- job_name: 'blackbox-us-east-1'
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets: ['https://example.com']
relabel_configs:
- target_label: region
replacement: us-east-1
- target_label: __address__
replacement: blackbox-us-east-1.internal:9115
- job_name: 'blackbox-eu-west-1'
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets: ['https://example.com']
relabel_configs:
- target_label: region
replacement: eu-west-1
- target_label: __address__
replacement: blackbox-eu-west-1.internal:9115
Метрики та алерти
Grafana World Map Panel — візуалізація затримки за регіонами на світовій карті. Миттєво видите проблемний регіон.
# Алерт: доступність знизилась у конкретному регіоні
- alert: ServiceDownInRegion
expr: probe_success == 0
for: 3m
labels:
severity: critical
annotations:
summary: "Service unavailable from {{ $labels.region }}: {{ $labels.instance }}"
# Алерт: висока затримка з конкретного регіону
- alert: HighLatencyInRegion
expr: probe_duration_seconds > 3.0
for: 5m
labels:
severity: warning
annotations:
summary: "Response time from {{ $labels.region }} is {{ $value | humanizeDuration }}"
Що перевіряти
Не тільки домашню сторінку. Типовий набір перевірок:
- GET / (домашня сторінка)
- GET /api/health (перевірка здоров'я backend)
- POST /api/auth/login (з тестовими credentials)
- GET /cdn/asset.jpg (доступність CDN)
- GET /sitemap.xml (періодично для SEO моніторингу)
Кореляція з метриками сервера
При алерті з регіону — автоматично відкрити:
- Traceroute з цього регіону (для мережевих проблем)
- CloudFront / CDN метрики для цього PoP
- Метрики origin сервера
Grafana аннотації: при алерті з конкретного регіону — аннотація на всіх дашбордах.
Часова шкала налаштування
- Pingdom / Checkly / Better Uptime (управління) — 1-2 години
- Self-hosted Blackbox у 3 регіонах + Prometheus — 2-3 дні
- Grafana World Map + алерти — 1-2 дні
- Transaction (багатокрокові) перевірки — 1-2 дні







