WEB¶
Обзор¶
Health Monitor используется для проверки доступности Workers. На основе конфигурации каждого Health Monitor можно определить гибкие правила мониторинга доступности серверов для вывода недоступных серверов из пула балансировки или их восстановления при возобновлении работы.
Кроме стандартных режимов работы, вы можете создавать собственные скрипты проверки.
Настройка¶
Перейдите в Traffic Management -> Health Monitor.
Чтобы создать новый Health Monitor, нажмите кнопку Add.
Чтобы удалить Health Monitor, нажмите чекбокс напротив его имени, а затем нажмите кнопку Delete или значок корзины в столбце Actions.
Чтобы обновить список Health Monitor, нажмите кнопку Refresh.
Примечание
Чтобы удалить все Health Monitor, нажмите чекбокс рядом с колонкой Name, а затем нажмите Delete.
Режимы Health Monitor¶
Примечание
Настройки интервалов общие для всех режимов и описаны ниже.
TCP, UDP, ICMP¶
- TCP
Доступность проверяется путём установления TCP-соединения между ADC и IP:port Worker. Проверка считается успешной, если:
ADC отправляет SYN указанному Worker,
ADC получает ACK от указанного Worker.
- UDP
Доступность проверяется путём отправки UDP-запроса на IP:port Worker. Проверка считается успешной, если Health Monitor получает корректный ответ или не получает никакого ответа. Если получен ошибочный ответ, Worker удаляется из пула балансировки нагрузки.
- ICMP
Доступность Worker проверяется с использованием ICMP-запросов эхо. Проверка считается успешной, если ADC получает ICMP-ответ от IP-адреса Worker.
Поля для всех трёх режимов одинаковые:
Поле |
Описание |
|---|---|
Name |
Имя Health Monitor |
Mode |
tcp, udp, icmp |
Interval |
Интервал (в секундах) между попытками проверки. По умолчанию — 5 секунд |
Response Timeout |
Время ожидания ответа от Worker в секундах. По умолчанию — 5 секунд |
Up Retries |
Количество успешных проверок, после которых Worker считается доступным. По умолчанию — 1 |
Down Retries |
Количество неуспешных проверок, после которых Worker считается недоступным. По умолчанию — 2 |
HTTP¶
Поле |
Описание |
|---|---|
Name |
Имя Health Monitor |
Mode |
http |
Expect code |
HTTP-код состояния, ожидаемый от сервера. По умолчанию — 200. Подробнее см. RFC 7231#6.1 |
Expect body |
Ожидаемое тело HTTP-ответа, например, |
Host |
Имя хоста в HTTP-заголовке, например, |
Port |
Порт хоста в HTTP-заголовке. Диапазон: 1–65535 |
Request method |
Метод HTTP-запроса согласно RFC 7231#4.3. Поддерживаемые методы: GET, POST, HEAD |
Path |
Путь. По умолчанию — |
HTTP username |
Логин для базовой HTTP-аутентификации |
HTTP password |
Пароль для базовой HTTP-аутентификации |
HTTPS¶
Поле |
Описание |
|---|---|
Name |
Имя Health Monitor |
Mode |
https |
CA certificate |
Цепочка сертификатов для проверки доступности сервера по HTTPS |
Certificate |
Сертификат для проверки доступности сервера по HTTPS |
Disable SSL security check |
Отключить проверку самоподписанных сертификатов |
Expect code |
HTTP-код состояния, ожидаемый от сервера. По умолчанию — 200. Подробнее см. RFC 7231#6.1 |
Expect body |
Ожидаемое тело HTTP-ответа, например, |
Host |
Имя хоста в HTTP-заголовке, например, |
Port |
Порт хоста в HTTP-заголовке. Диапазон: 1–65535 |
Request method |
Метод HTTP-запроса согласно RFC 7231#4.3. Поддерживаемые методы: GET, POST, HEAD |
Path |
Путь. По умолчанию — |
HTTP username |
Логин для базовой HTTP-аутентификации |
HTTP password |
Пароль для базовой HTTP-аутентификации |
Важно
При использовании базовой HTTP-аутентификации логин и пароль передаются в открытом виде. При использовании проверок доступности по HTTPS пакет, содержащий эти данные, шифруется с помощью TLS.
Скрипт¶
Поле |
Описание |
|---|---|
Name |
Имя Health Monitor |
Mode |
script |
Script type |
|
Script code |
Пользовательский скрипт, который выполняется в бесконечном цикле |
Этот режим Health Monitor реализован в виде шаблона скрипта. При создании Worker (сервера) его специфические атрибуты и часть скрипта, определённая пользователем, добавляются к базовому шаблону.
Следующие константы доступны в скрипте:
TG— Target-группаIP— IP-адрес сервераPORT— Порт сервераINTERVAL— Интервал (в секундах) между проверкамиTIMEOUT— Время ожидания ответа от Worker
Эти константы можно использовать в пользовательском скрипте.
Пользователь должен определить часть скрипта, которая выполняется в бесконечном цикле. Скрипт может работать в одном из двух режимов:
Проверка статуса Worker (успех/неудача)¶
Вам не требуется реализовывать логику изменения статуса Worker или обработки порогов повторных попыток. Подсистема Health Monitoring обрабатывает эту логику.
Вы должны определить функцию (любое имя допустимо), которая возвращает одно из следующих значений для обозначения состояния Worker:
-1— Успешная проверка-2— Неуспешная проверкаЛюбое другое отрицательное число или нечисловое значение — ошибка скрипта
Пример скрипта на Python
from subprocess import DEVNULL, STDOUT, check_call
def userscript() -> int:
response = check_call(["ping" + f" -c 1 -W {TIMEOUT} {IP}"], shell=True, stdout=DEVNULL, stderr=STDOUT)
if response == 0:
return -1
return -2
Пример скрипта на Shell
userscript() {
if ping -c 1 -i $TIMEOUT $IP &> /dev/null
then
status=-1
else
status=-2
fi
echo $status
}
Возврат веса Worker¶
В этом режиме скрипт должен возвращать вес Worker. Вес может быть рассчитан внутри скрипта или получен из внешнего источника (например, от самого Worker). Возвращаемое значение 0 означает, что Worker считается недоступным.
Пример скрипта на Python
from subprocess import DEVNULL, STDOUT, check_call
def userscript() -> int:
response = check_call(["ping" + f" -c 1 -W {TIMEOUT} {IP}"], shell=True, stdout=DEVNULL, stderr=STDOUT)
if response == 0:
return 200
return 0
Пример скрипта на Shell
userscript() {
if ping -c 1 -i $TIMEOUT $IP &> /dev/null
then
weight=200
else
weight=0
fi
return $weight
}
DNS¶
Поле |
Описание |
|---|---|
Name |
Имя Health Monitor |
Mode |
dns |
Interval |
Интервал (в секундах) между попытками проверки. По умолчанию — 5 секунд |
Response Timeout |
Таймаут ожидания ответа от Worker (в секундах). По умолчанию — 5 секунд |
Up Retries |
Количество успешных проверок, после которых Worker считается доступным. По умолчанию — 1 |
Down Retries |
Количество неуспешных проверок, после которых Worker считается недоступным. По умолчанию — 2 |
DNS domain query |
Доменное имя для опроса |
DNS reply code |
Код ответа DNS-сервера. Принимает значения в диапазоне от 0 до 5. По умолчанию — 0 |
DNS transport protocol |
Транспортный протокол для запросов к DNS-серверу (UDP или TCP). По умолчанию — UDP |
DNS port |
Порт для отправки DNS-запросов. Диапазон: 1–65535 |
Составной¶
Поле |
Описание |
|---|---|
Name |
Имя Health Monitor |
Mode |
compound |
Interval |
Интервал (в секундах) между попытками проверки. По умолчанию — 5 секунд |
Response Timeout |
Таймаут ожидания ответа от Worker (в секундах). По умолчанию — 5 секунд |
Up Retries |
Количество успешных проверок, после которых Worker считается доступным. По умолчанию — 1 |
Down Retries |
Количество неуспешных проверок, после которых Worker считается недоступным. По умолчанию — 2 |
Compound: list of Health Monitors |
Список Health Monitor, которые будут использоваться |
Compound mode |
Режим сравнения. |
LDAP(S)¶
Поле |
Описание |
|---|---|
Name |
Имя Health Monitor |
Mode |
ldap |
Interval |
Интервал (в секундах) между попытками проверки. По умолчанию — 5 секунд |
Response Timeout |
Таймаут ожидания ответа от Worker (в секундах). По умолчанию — 5 секунд |
Up Retries |
Количество успешных проверок, после которых Worker считается доступным. По умолчанию — 1 |
Down Retries |
Количество неуспешных проверок, после которых Worker считается недоступным. По умолчанию — 2 |
LDAP mode |
Протокол для отправки запросов:
|
LDAP port |
Порт для подключения. Диапазон: 1–65535 |
Bind DN |
Идентификатор для привязки к LDAP-серверу. FQDN + корневой контейнер, например, |
Bind authentication |
Метод аутентификации. При |
Bind password |
Пароль для доступа к защищённому каталогу LDAP |
Search Base DN |
Базовое DN для операций поиска, например, |
Search request |
Фильтр поиска: укажите атрибут объекта и его значение. Остальная часть DN берётся из Base DN, например, |
Search request matches check |
По умолчанию успешное выполнение поискового запроса считается успешной проверкой состояния. Если необходимо проверить результат поиска (т.е. наличие объекта), включите эту опцию |
CA certificate |
Цепочка сертификатов для проверки доступности сервера по LDAPS и LDAP over TLS |
Certificate |
Сертификат для проверки доступности сервера по LDAPS и LDAP over TLS |
Disable SSL security check |
Отключить проверку самоподписанных сертификатов |