Мониторинг здоровья
Управление проверками здоровья для членов групп адресов. Использует существующую систему Health Monitor.
Статус здоровья
curl -s https://api.1bytedns.ru/client/v1/zones/42/address_groups/5/health \
-H "Authorization: Bearer TOKEN" | python3 -m json.tool
{
"success": true,
"result": {
"enabled": true,
"probe_type": "HTTP",
"probe_port": 80,
"probe_path": "/health",
"expected_status": 200,
"check_interval_sec": 30,
"unhealthy_threshold": 3,
"healthy_threshold": 2,
"targets": [
{
"address": "192.0.2.1",
"healthy": true,
"consecutive_ok": 5,
"consecutive_fail": 0,
"last_checked_on": "2024-06-01T10:30:00Z"
},
{
"address": "192.0.2.2",
"healthy": false,
"consecutive_ok": 0,
"consecutive_fail": 3,
"last_checked_on": "2024-06-01T10:29:50Z"
}
]
},
"errors": [],
"messages": []
}
Когда конфигурация отсутствует, возвращаются значения по умолчанию: enabled: false, check_interval_sec: 30, unhealthy_threshold: 3, healthy_threshold: 2, пустой targets.
Настройка мониторинга здоровья
curl -s -X PATCH https://api.1bytedns.ru/client/v1/zones/42/address_groups/5/health \
-H "Authorization: Bearer TOKEN" \
-H "Content-Type: application/json" \
-d '{
"enabled": true,
"probe_type": "HTTP",
"probe_port": 80,
"probe_path": "/health",
"expected_status": 200,
"check_interval_sec": 30,
"unhealthy_threshold": 3,
"healthy_threshold": 2
}' | python3 -m json.tool
Параметры тела:
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
enabled | boolean | Да | Включить/отключить мониторинг |
probe_type | string | Условно | TCP, HTTP, HTTPS, ICMP (требуется если enabled: true) |
probe_port | int | Условно | Порт 1-65535 (требуется для TCP/HTTP/HTTPS; игнорируется для ICMP) |
probe_path | string | Условно | URL путь (только HTTP/HTTPS; игнорируется для TCP/ICMP) |
expected_status | int | Условно | Ожидаемый HTTP статус (только HTTP/HTTPS; игнорируется для TCP/ICMP) |
check_interval_sec | int | Нет | Интервал проверки (по умолчанию: 30) |
unhealthy_threshold | int | Нет | Порадных неудач для отметки как недоступный (по умолчанию: 3) |
healthy_threshold | int | Нет | Порадных успехов для отметки как доступный (по умолчанию: 2) |
История проверок
curl -s "https://api.1bytedns.ru/client/v1/zones/42/address_groups/5/health_checks?limit=20" \
-H "Authorization: Bearer TOKEN" | python3 -m json.tool
{
"success": true,
"result": [
{"address": "192.0.2.1", "healthy": true, "duration_ms": 15, "error_message": null, "checked_on": "2024-06-01T10:30:00Z"},
{"address": "192.0.2.2", "healthy": false, "duration_ms": 5000, "error_message": "Connection timeout", "checked_on": "2024-06-01T10:29:50Z"}
],
"errors": [],
"messages": []
}
События failover
curl -s "https://api.1bytedns.ru/client/v1/zones/42/address_groups/5/failover_events?limit=20" \
-H "Authorization: Bearer TOKEN" | python3 -m json.tool
{
"success": true,
"result": [
{
"id": 1,
"address": "192.0.2.1",
"reason": "consecutive_failures_threshold_reached",
"created_on": "2024-06-01T10:25:00Z"
}
],
"errors": [],
"messages": []
}
Health Bar
Быстрая сводка здоровья для отображения в интерфейсе.
curl -s https://api.1bytedns.ru/client/v1/zones/42/address_groups/5/healthbar \
-H "Authorization: Bearer TOKEN" | python3 -m json.tool
{
"success": true,
"result": {
"healthy_count": 2,
"unhealthy_count": 1,
"total_count": 3,
"color": "yellow",
"label": "2/3 healthy"
},
"errors": [],
"messages": []
}
Логика цветов:
| Цвет | Условие |
|---|---|
gray | 0 членов всего |
green | Все члены здоровы |
red | Ни один член не здоров |
yellow | Частично (некоторые здоровы, некоторые нет) |
Члены с healthy = null считаются недоступными (консервативный подход).
Обновлено: 2026-06-26