Как реализовать эффективные проверки работоспособности в HAProxy

Kak Realizovat Effektivnye Proverki Rabotosposobnosti V Haproxy



Настройка HAProxy для работы в качестве балансировщика нагрузки будет неполной, если вы не позаботитесь об эффективных проверках работоспособности сервера. Реализация проверок работоспособности помогает повысить надежность и доступность приложения. HAProxy поддерживает реализацию проверок работоспособности, которые проверяют внутренние серверы, чтобы убедиться, что их состояние пригодно для использования.

В ротацию добавляются только серверы, прошедшие проверку работоспособности. Таким образом, сервер не будет выбран для использования, если он не пройдет проверку работоспособности, что сводит к минимуму вероятность простоя. В этом посте мы углубимся в понимание того, как работают проверки работоспособности в HAProxy и что нужно для реализации эффективной проверки работоспособности. Давай начнем!

Что такое проверки работоспособности в HAProxy

При настройке HAProxy одна из задач — указать, какие внутренние серверы использовать для вашего приложения. Таким образом, трафик будет распределяться по серверам, чтобы избежать перегрузки какого-либо сервера. Однако проверки работоспособности помогают убедиться, что сервер выбран для обработки трафика только в том случае, если с ним все в порядке.







Проверки работоспособности выполняются на каждом сервере, и только те, которые прошли проверку, добавляются в ротацию для использования в балансировке нагрузки. Проверки работоспособности выполняются путем отправки запросов, таких как TCP или HTTP, к заранее определенной конечной точке на вашем внутреннем сервере. Результаты работоспособности, отправляемые внутренним сервером, определяют его состояние. Например, статус сервера может показывать «ВВЕРХ» или «ВНИЗ» или отправлять статус «ОК» 200, подтверждающий, что сервер исправен.



При настройке проверок работоспособности убедитесь, что у вас есть предопределенная конечная точка, которую можно использовать для проверок работоспособности. Существуют различные варианты, которые вы можете использовать для настройки конечной точки. Например, вы можете вернуть код состояния или сообщение в зависимости от состояния сервера. Все проверки работоспособности определены в разделе серверной части вашего файла конфигурации HAProxy. Откройте файл конфигурации и создайте раздел внешнего интерфейса.



$ sudo nano /etc/haproxy/haproxy.cfg

Вот базовый пример раздела внешнего интерфейса, который привязывает порт 80, устанавливает страницу статистики и указывает серверную часть по умолчанию.





Следующим шагом будет создание внутреннего раздела. Ниже приведены различные примеры реализации эффективной проверки работоспособности в HAProxy.



Пример 1. Реализация эффективных активных проверок работоспособности

Простой способ реализовать проверки работоспособности в HAProxy — установить активные проверки работоспособности. При использовании этой опции HAProxy попытается подключиться к серверу. Если ответ не отправлен, он считает сервер неработоспособным и удаляет его из ротации. По умолчанию активные проверки работоспособности выполняются путем добавления ключевого слова «check» в каждую строку сервера, чтобы HAProxy мог проверять их все.

Хотя этот первый пример работает, это не лучший способ реализовать проверки работоспособности. Кроме того, он использует настройки по умолчанию. Например, интервал между проверками, помеченный как inter, установлен в две секунды. Падение, количество разрешенных неудачных проверок, установлено равным трем. Чтобы настроить эти параметры, укажите предпочтительное время между проверками и количество проверок, как показано в следующем примере:

Пример 2. Реализация проверки работоспособности HTTP

При проверке работоспособности HTTP HAProxy отправит HTTP-запрос на все серверы с ключевым словом «check». На основании ответа он делает вывод о состоянии сервера. Примеры успешных ответов сервера попадают в диапазон 2xx или 3xx. Ответ типа 200 OK означает, что сервер находится в хорошем состоянии.

В этом примере добавьте строку «option httpchk» в свой бэкэнд.

Пример 3: Работа с запросом GET

HAProxy отправляет запрос GET по пути «/» при выполнении HTTP-запроса. Однако если ваша конечная точка настроена по другому пути, вы можете указать URL-путь, например «/health», и HAProxy отправит на нее запрос GET.

В зависимости от вашей конечной точки сервер будет использовать ответ для определения статуса сервера. Вот как это реализовать:

Пример 4. Указание пути запроса GET и статуса ответа

С помощью конечной точки вы можете указать, какой успешный ответ следует ожидать от запроса GET конечной точки, чтобы определить состояние сервера. В этом примере наш путь запроса GET — «/health», и мы ожидаем, что статус ответа 200 подтвердит, что сервер находится в хорошем состоянии и может выполнять балансировку нагрузки и другие задачи.

После изменения файла конфигурации HAProxy перезапустите HAProxy, чтобы изменения вступили в силу.

Вот и все! Вы внедрили эффективные проверки работоспособности на своем HAProxy. Вы можете получить доступ к странице статистики или проверить файл журнала с помощью следующей команды, чтобы убедиться, что проверки работоспособности работают должным образом:

$ Tail -f /var/log/haproxy.log

Заключение

Реализовать эффективную проверку работоспособности в HAProxy можно разными способами. Проверки работоспособности реализованы в серверной части файла конфигурации HAProxy, и в этом посте приведены различные примеры того, как это сделать. Проверьте свой идеальный метод и с комфортом реализуйте эффективную проверку работоспособности в HAProxy.