{"id":14291,"url":"\/distributions\/14291\/click?bit=1&hash=257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","hash":"257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","title":"\u0420\u0435\u043a\u043b\u0430\u043c\u0430 \u043d\u0430 Ozon \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043c \u043d\u0435 \u043f\u0440\u043e\u0434\u0430\u0451\u0442","buttonText":"","imageUuid":""}

Знакомьтесь: Roxy-WI

HAProxy в представлении не нуждается: это самый популярный, самый известный балансировщик нагрузки. При всех достоинствах был у него один недостаток: отсутствие веб-интерфейса для управления. Но теперь этот недостаток устранен. Встречайте: Roxy-WI — удобный Web-GUI для HAProxy с открытым исходным кодом.

Основные преимущества

Каковы его основные преимущества?

Первое преимущество — централизованность: через веб-интерфейс можно управлять не только HAProxy, но ещё и Nginx и KeepAlived. Даже если вы администрируете много серверов, у вас будет единая точка входа и единый интерфейс управления. Сказанное верно не только для физических или виртуальных серверов, но и для контейнеров: возможность полноценного управления контейнерами в Roxy-WI имеется.

Второе преимущество — наглядность: для каждого сервера есть индивидуальная страница, на которой можно увидеть всю необходимую информацию (аптайм, загрузка CPU, потребление трафика), а также включать/выключать и перезагружать его.

Третье преимущество — возможность конфигурирования через веб-интерфейс. У многих читателей могут возникнуть вопросы: зачем вообще редактировать конфигурационные файлы через веб-интерфейс? Да, многие привыкли работать в текстовом редакторе, и это на первый взгляд удобно. Но не будем забывать, что конфигурационные файлы для HAProxy и для Nginx имеют сложную структуру, и у начинающего пользователдя могут возникнуть затруднения. В Roxy-WI все просто. Вот пример конфигурационного файла для HAProxy:

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

Roxy-WI хранит все версии конфигурационных файлов, которые можно сравнивать между собой (полезно при тестировании и отладке). В случае возникновения ошибки опять же можно откатиться на предыдущую версию, рабочую версию. Планы на ближайшее будущее — расширить возможности работы с версиями. В Roxy-WI некоторые серверы могут получать особый статус — protected. Если вкратце, то многие действия на них могут совершаться только с разрешения администратора. Для этих серверов планируется сделать следующее:, полноценное редактирование будет доступно только администраторам, а остальные пользователи смогут только предагать изменения. После проверки админом эти изменения могут быть или приняты, или отклонены — принцип такой же, как при работе с мердж-реквестами на GitHub.

А ещё (+1 к наглядности) на странице конфигурирования есть функция визуализации. Нажимаем на кнопку — и получаем схему сети. Например, вот такую:

Даже пользователю, который никогда не имел дела с HAProxy, всё понятно. В некоторых случаях это существенно облегчает работу (например, когда надо обучить новичка или что-то объяснить коллеге-менеджеру, тестировщику, техническому писателю и т.п.)

Четвертое преимущество — расширенные возможности мониторинга. В состав Roxy-WI входит специализированный сервис — Checker. Он состоит из управляющего компонента (Master Checker в терминологии Roxy-WI) и рабочих компонентов (Worker Checkers в терминологии Roxy-WI)

Рабочие компоненты на текущий момент имеются для HAProxy и Nginx.C функциями управляющего компонента всё понятно - он отвечает за функционирование рабочих компонентов.

Рассмотрим их функции более подробно. Рабочий компонент для HAProxy умеет проверять статус сервиса HAProxy, а также статус бэкендов, а также рассылать уведомления в Теlegram, Slack или в оба мессенджера одновременно. Важный момент: ещё он умеет проверять, приближается ли число установленных соединений к заданному лимиту, и отправлять соответствующие уведомления. При использовании сторонних инструментов мониторинга это возможно, но всё сложнее: для того же Prometheus надо прописывать отдельные правила. У нас же никаких дополнительных настроек не нужно.Рабочий компонент для Nginx умеет проверять статус сервиса Nginx, и рассылать уведомления, если статус изменилсРабочий компонент для Keepalived пока может только проверять состояние сервиса. В ближайших планах — добавить мониторинг переключений между мастером и бэкапом.

Если нужно использовать сторонний инструмент мониторинга, имеется экспортер для Prometheus. Можно настроить интеграцию с Prometheus, установленном как на одном сервере с Roxy-WI, так и на внешнем сервере.

Пятое преимущество — большое количество полезных дополнительных функций. Из недавнего — добавили WAF. Настраивать WAF для HAProxy вручную довольно сложно. В Roxy-WI достаточно просто выбрать сервер из списка и активировать для него режим WAF. Рядом с каждым сервером в списке есть кнопка Open, при нажатии на которую открывается список предустановленных правил WAF. Чтобы активирость правило, нужно установить рядом с ним чекбокс. Просмотреть правило можно путем нажатия на кнопку View права от него.А вот отредактировать правило не получится: через Roxy-WI доступен только просмотр. Чтобы изменить правило, нужно подключаться к серверу и всё делать вручную.

Заключение

Чтобы получить более подробное представление, всё можно посмотреть в тестовом режиме: https://demo.haproxy-wi.org/ .

Подробные и честные отзывы (чего не хватает, что следовало бы улучшить) приветствуются.

Репозиторий проекта на GitHub — https://github.com/hap-wi/roxy-wi . Будем рады любым предложениям и пожеланиям по улучшению продукта.

Следите за новостями на официальном сайте (https://roxy-wi.org) и в Telegram-канале (https:/t.me/haproxy_wi).

Наши публикации здесь ещё появятся. Stay tuned!

0
Комментарии
-3 комментариев
Раскрывать всегда