← Cloudflare Magic Transit / magic-transit / network-health
Запустите проверки работоспособности конечных точек (бета)
Magic Transit использует проверки работоспособности конечных точек, чтобы определить общее состояние вашей межсетевые соединения. Зонды исходят из инфраструктуры Cloudflare, за пределами сетевых пространств клиента, и направлены на IP-адреса в глубине вашей сети, за граничным маршрутизатором, который завершает туннель. Такие «дальние» зонды носят исключительно диагностический характер.
При выборе IP-адресов конечных точек для мониторинга с помощью проверок состояния учитывайте следующие рекомендации:
- Укажите по одному IP-адресу для каждого префикса, который анонсирует Cloudflare.
- Резервные IP-адреса, которые маршрутизируются через одного и того же интернет-провайдера и одну и ту же инфраструктуру, не обязательны, но полезны при устранении неполадок.
Cloudflare отправляет пинги на IP-адреса проверки работоспособности изнутри опубликованный диапазон IP-адресов Cloudflare ↗, что также доступно через Cloudflare API.
При настройке проверки состояния конечной точки для префикса IP выберите IP-адрес из диапазона этого префикса. Пример такой настройки приведён в таблице.
| Префикс | IP-адрес конечной точки |
|---|---|
103.21.244.0/24 |
103.21.244.100 |
103.21.245.0/24 |
103.21.245.100 |
См. Проверки работоспособности туннеля, где это описано подробнее.
Настройка проверок состояния конечных точек (бета)
Настроить проверки работоспособности конечных точек можно только через API Cloudflare. В панели управления такая возможность не предусмотрена. Пока настройка проверок работоспособности доступна только в бета-версии.
См. Документация по API чтобы узнать, как создавать, просматривать список и удалять проверки работоспособности конечных точек. В следующем примере создаётся новая проверка работоспособности конечной точки.
curl "https://api.cloudflare.com/client/v4/accounts/account_id/diagnostics/endpoint-healthchecks" \
--request POST \
--json '{
"check_type": "icmp",
"endpoint": "8.31.160.1",
"name": "Datacenter 1 - primary"
}'{
"result": {
"id": "<HEALTH_CHECK_ID>",
"check_type": "icmp",
"endpoint": "8.31.160.1",
"name": "Datacenter 1 - primary"
},
"success": true,
"errors": [],
"messages": []
}Запрос проверок работоспособности конечных точек через GraphQL
Используйте GraphQL Analytics API для запроса результатов проверки состояния конечных точек вашего аккаунта. magicEndpointHealthCheckAdaptiveGroups набор данных возвращает результаты проб, агрегированные по указанным вами измерениям и временному интервалу.
Все запросы GraphQL отправляйте как HTTP POST запросов к https://api.cloudflare.com/client/v4/graphql.
Предварительные требования
Чтобы запрашивать данные проверок состояния конечных точек, потребуется следующее:
- Ваш ID аккаунта.
- Одна API-токен с
Account > Account Analytics > Readразрешения. Подробности см. в Настройте токен Analytics API.
Параметры запроса
Ниже перечислены одни из самых распространённых параметров в filter объект:
| Параметр | Описание |
|---|---|
date_geq |
Дата начала запроса в формате YYYY-MM-DD в формате (например, 2026-01-01). При использовании с измерением усечения по дате возвращает результаты начиная с этой даты. Также можно указать полную временную метку в формате ISO 8601 (например, 2026-01-01T00:00:00Z). |
date_leq |
(Необязательно) Конечная дата запроса. Использует тот же формат, что и date_geq. |
datetime_geq |
(Необязательно) Начальная временная метка в формате ISO 8601 (например, 2026-01-01T00:00:00Z). Используйте вместо date_geq для временных измерений с усечением. |
datetime_leq |
(Необязательно) Конечная временная метка в формате ISO 8601. |
limit |
Максимальное количество групп результатов для возврата. |
Также можно фильтровать по любому измерению, указанному в Доступные измерения таблицу. Чтобы создать фильтр, добавьте суффикс оператора к имени измерения, например, endpoint_in чтобы отфильтровать по списку конечных точек, или checkType_neq чтобы исключить определённый тип проверки. Использование имени измерения без суффикса задаёт фильтр по равенству. Полный список поддерживаемых операторов приведён в Фильтрация.
Доступные измерения
Следующие измерения можно запрашивать в dimensions поле:
| Измерение | Описание |
|---|---|
checkId |
Уникальный ID настроенной проверки состояния. |
checkType |
Тип проверки состояния (например, icmp). |
endpoint |
IP-адрес проверяемой конечной точки. |
name |
Имя, присвоенное проверке состояния при её настройке (может быть пустым, если не задано). |
date |
Временная метка события, усечённая до дня. |
datetime |
Полная временная метка события. |
datetimeMinute |
Временная метка события, усечённая до минуты. |
datetimeFiveMinutes |
Временная метка события, усечённая до пятиминутных интервалов. |
datetimeFifteenMinutes |
Временная метка события, усечённая до 15-минутных интервалов. |
datetimeHalfOfHour |
Временная метка события, усечённая до 30-минутных интервалов. |
datetimeHour |
Временная метка события, усечённая до часа. |
Доступные метрики
| Метрика | Описание |
|---|---|
count |
Общее количество событий проверки работоспособности в группе. |
sum.total |
Общее количество отправленных зондов проверки работоспособности. |
sum.failures |
Количество неудачных зондов проверки состояния. |
avg.lossPercentage |
Среднее расчётное значение процента потерь (0-100). |
Вызов API
Следующий пример запрашивает результаты проверки состояния конечных точек для конкретного аккаунта, возвращая количество проб, агрегированное по пятиминутным интервалам. Замените <ACCOUNT_ID> с вашим ID аккаунта и <API_TOKEN> с вашим API-токен.
echo '{ "query":
"query GetEndpointHealthCheckResults($accountTag: string, $datetimeStart: string) {
viewer {
accounts(filter: {accountTag: $accountTag}) {
magicEndpointHealthCheckAdaptiveGroups(
filter: {
datetime_geq: $datetimeStart
}
limit: 10
) {
count
dimensions {
checkId
checkType
endpoint
datetimeFiveMinutes
}
sum {
failures
total
}
}
}
}
}",
"variables": {
"accountTag": "<ACCOUNT_ID>",
"datetimeStart": "2026-01-21T00:00:00Z"
}
}' | tr -d '\n' | curl --silent \
https://api.cloudflare.com/client/v4/graphql \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data @-Перенаправьте вывод по каналу в jq чтобы отформатировать ответ JSON для более удобного чтения:
... | curl --silent \
https://api.cloudflare.com/client/v4/graphql \
--header "Authorization: Bearer <API_TOKEN>" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data @- | jq .Пример ответа
{
"data": {
"viewer": {
"accounts": [
{
"magicEndpointHealthCheckAdaptiveGroups": [
{
"count": 288,
"dimensions": {
"checkId": "90b478c7-bb51-4640-b94b-2c3050e9fa00",
"checkType": "icmp",
"datetimeFiveMinutes": "2026-01-21T12:00:00Z",
"endpoint": "103.21.244.100"
},
"sum": {
"failures": 0,
"total": 288
}
},
{
"count": 288,
"dimensions": {
"checkId": "90b478c7-bb51-4640-b94b-2c3050e9fa00",
"checkType": "icmp",
"datetimeFiveMinutes": "2026-01-21T12:05:00Z",
"endpoint": "103.21.244.100"
},
"sum": {
"failures": 2,
"total": 288
}
}
]
}
]
}
},
"errors": null
}В этом ответе sum.total является числом зондов, отправленных в течение интервала, а sum.failures является числом тех, кто не получил ответа. failures значение 0 означает, что конечная точка была полностью доступна в течение этого периода.
Настройка оповещений для проверок состояния конечных точек
Вы можете настроить оповещения, которые будут приходить, когда состояние работоспособности конечной точки опускается ниже заданного вами порога.
- Сделайте
GETзапрос, чтобы получить список идентификаторов всех настроенных проверок работоспособности конечных точек:
curl "https://api.cloudflare.com/client/v4/accounts/account_id/diagnostics/endpoint-healthchecks" \
--request GET{
"result": [
{
"id": "<HEALTH_CHECK_ID>",
"check_type": "icmp",
"endpoint": "8.31.160.1",
"name": "Datacenter 1 - primary"
}
],
"success": true,
"errors": [],
"messages": []
}- Запишите
idзначение для конечной точки, для которой вы хотите получать уведомления. - На панели управления Cloudflare перейдите к разделу Уведомления страницу.
- Выберите Add.
- В раскрывающемся меню выберите Magic Transit.
- Выберите Оповещение о проверке работоспособности Magic Endpoint.
- Укажите имя для нового уведомления и при необходимости добавьте описание.
- В Целевой показатель уровня обслуживания (SLO) раскрывающемся меню выберите порог SLO для уведомления. SLO определяет процент проверок работоспособности конечных точек, которые должны проходить успешно. Если количество успешных проверок работоспособности конечных точек опускается ниже порога SLO, Cloudflare создаёт оповещение:
- High - 99%
- Средняя - 98%
- Низкая - 97%
- В раскрывающемся меню под SLO выберите
idзначение, соответствующееidкоторый вы получили через API на шаге 1. Этоidдолжен соответствовать проверке работоспособности конечной точки, для которой вы хотите получать уведомления. - Выберите предпочтительный способ получения уведомлений (например, по электронной почте или через webhooks).
- Выберите Save.
Теперь вы будете получать уведомления выбранным способом каждый раз, когда SLO для проверок работоспособности конечной точки опускается ниже заданного вами порога.