Супервизор процессов Windows / supervisord с веб-интерфейсом

Вопрос или проблема

Проблема: одно из наших высоко гибридных приложений использует ~20 портов сервиса, нативных для Unix (nsqd, elasticsearch и др.). В настоящее время это выполняется в командной строке на переднем плане, что, по моему мнению, не особенно надежно. На Ubuntu у меня был отличный опыт с supervisord; однако последние версии больше не работают корректно на Windows.

Итак, какой конкретный процессный супервизор вы бы порекомендовали для Windows?

Критерии:

  • Наличие веб-интерфейса с информацией о состоянии каждого процесса, выводом логов и минимум управлением запуском/перезапуском/остановкой
  • Много приложений, поэтому запуск на основе конфигурационных файлов
  • Было бы очень хорошо иметь вывод консоли, собирающий все выводы процессов для мониторинга

Спасибо!

Хотя я не нашел никаких конкретных готовых пакетов, этот гист: легкий supervisord для Windows соответствует критериям 2 и 3 выше, и является хорошей стартовой точкой для этого.

Правка: гист, похоже, не доступен, google cache на помощь, codegist, и pastebin

Ответ или решение

Рекомендуемые инструменты для контроля процессов в Windows

Введение

В современных приложениях, которые требуют высокой гибкости и надежности, использование процессных супервизоров значительно упрощает управление службами и их жизненными циклами. Если ваша команда работает с высокогибридным приложением, использующим множество UNIX-сервисов на Windows (таких как NSQD, Elasticsearch и другие), важно выбрать правильный инструмент, который будет соответствовать вашим требованиям.

Проблема и требования

Учитывая, что вы испытываете сложности с использованием supervisord на Windows, давайте разберем ваши основные требования к процессному супервизору:

  1. Веб-интерфейс: необходим для статуса каждого процесса, логов и управления (запуск, перезапуск, остановка).
  2. Конфигурация через файлы: нужна возможность настраивать множество приложений через конфигурационные файлы.
  3. Агрегированный вывод консоли: желательно иметь возможность следить за всеми процессами в одном месте.

Рекомендации по выбору процессного супервизора

  1. NSSM (Non-Sucking Service Manager)

    NSSM — это утилита, предназначенная для управления услугами в Windows. Хотя у него нет веб-интерфейса, его гибкость в настройке и крепкая интеграция с Windows делают его отличным выбором для управления процессами.

    • Плюсы:

      • Простота установки и настройки.
      • Поддержка вывода логов в файлы.
      • Надежная работа на Windows, включая службу и обработку ошибок.
    • Минусы:

      • Нет встроенного веб-интерфейса для мониторинга.
  2. PM2 (Process Manager 2)

    PM2 — это мощный процессный менеджер для Node.js, который также может использоваться для других типов приложений.

    • Плюсы:

      • Простой веб-интерфейс для мониторинга процессов.
      • Поддержка конфигурации через JSON-файлы.
      • Возможность агрегирования логов и их просмотра.
    • Минусы:

      • Настройка может потребовать дополнительных усилий для приложений, не основанных на Node.js.
  3. Windows Service Wrapper (Winsw)

    Winsw позволяет запускать приложения в качестве Windows-сервисов и предоставляет возможность конфигурировать их через XML.

    • Плюсы:

      • Полная интеграция с Windows-системой.
      • Высокая степень настройки и управления.
    • Минусы:

      • Нет собственного веб-интерфейса; для этого понадобится дополнительно настроить другие инструменты.

Рекомендации для решений с веб-интерфейсом

Если вам именно нужен веб-интерфейс, могут быть рассмотрены инструменты, такие как:

  • DashBoard on Flask: Используйте Flask для создания простого веб-интерфейса, который сможет взаимодействовать с вашим процессным супервизором (например, PM2 или NSSM) для отображения статуса процессов.

  • Node.js + Express: Создайте веб-приложение с использованием Node.js и Express, чтобы отображать информацию о запущенных процессах, сбрасывать логи и управлять службами.

Заключение

Согласно вашим критериям, оптимальное решение может включать использование PM2 или NSSM, с учетом дополнительной настройки веб-интерфейса на базе Flask или Express. Это предоставит вам возможность полноценно контролировать и отслеживать состояние всех ваших процессов, обеспечивая высокий уровень надежности и управления.

Если у вас возникнут дополнительные вопросы или вам понадобится помощь в настройке, пожалуйста, не стесняйтесь обращаться!

Оцените материал
Добавить комментарий

Капча загружается...