Настройка мониторинга доступности из нескольких регионов
Внутренний мониторинг показывает, что сервис работает изнутри инфраструктуры. Но пользователи из Токио, Франкфурта или Новосибирска могут видеть совсем другую картину. Multi-region мониторинг доступности — это глаза пользователей по всему миру.
Зачем мониторить из нескольких точек
Сценарии, которые внутренний мониторинг не покажет:
- BGP routing issue в конкретном регионе — трафик из Европы идёт в обход через 15 хопов
- CDN endpoint в Азии вернул 502 — ваш origin в США при этом жив
- DDoS absorb Cloudflare в одном PoP — пользователи из этого региона получают таймауты
- DNS cache poisoning в конкретной сети — ваш сервер не при чём
Managed решения
Pingdom. Проверки из 100+ точек мира, 1-минутные интервалы, алерты при падении из конкретного региона. Transaction checks для многошаговых сценариев (логин → покупка).
Checkly. Playwright-based checks — реальный браузер, не просто HTTP ping. Очень точная симуляция пользователя. Проверки из 20+ регионов.
Better Uptime / Freshping. Более доступная цена, базовый функционал.
Datadog Synthetic Monitoring. Интеграция с остальным стеком Datadog, API и Browser tests, 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 экспортер собирается центральным 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 health check)
- POST /api/auth/login (с тестовыми credentials)
- GET /cdn/asset.jpg (CDN доступность)
- GET /sitemap.xml (периодически для SEO мониторинга)
Корреляция с метриками сервера
При алерте из региона — автоматически открыть:
- Traceroute из этого региона (для сетевых проблем)
- CloudFront / CDN метрики для этого PoP
- Origin server метрики
Grafana annotations: при алерте из конкретного региона — аннотация на всех дашбордах.
Сроки настройки
- Pingdom / Checkly / Better Uptime (managed) — 1-2 часа
- Self-hosted Blackbox в 3 регионах + Prometheus — 2-3 дня
- Grafana World Map + алерты — 1-2 дня
- Transaction (multi-step) checks — 1-2 дня







