Назад | Перейти на главную страницу

Мониторинг процессов и диспетчер служб для веб-приложения Python

Мы настраиваем веб-приложение Python с использованием веб-сервера CherryPy на нескольких серверах Linux (оно находится за балансировщиком нагрузки nginx, отправляющим трафик на различные серверы). Мы находимся в процессе перехода с серверов Windows на серверы Linux, и мы будем работать на CentOS 6.5.

В Windows у нас был специальный диспетчер служб, который запускал и останавливал исполняемые файлы Python и перезапускал их, если они сильно вылетали или выходили по какой-либо причине.

Мой вопрос: какой хороший инструмент для того же в Linux? В идеале это было бы:

  1. Уметь вручную запускать и останавливать программу Python (наш сервер и приложение на основе CherryPy), используя что-то вроде service our_app start или /etc/init.d/our_app start.
  2. Автоматически перезапускать программу при выходе или сбое
  3. Запускать службу при запуске системы

Пока что я придумал различные возможности, от самых простых до более сложных:

Примечание. Я разработчик, у которого больше опыта работы с Windows, чем с Linux, и большим опытом разработки, чем с опытом работы с оператором / системным администратором. Просто говорю'. :-)

Я голосую за Монит, и есть много хорошие примеры конфигурации для этого.

Не думайте о Monit как о «больше, чем вам нужно». Он делает именно то, что написано, легким и надежным способом. Демон стабилен и не требует присмотра за детьми. Он запустит все необходимые вам процессы, PID, имя, соединение и проверки файлов. Поведение перезапуска и действия можно настроить. И есть приятный минимальный GUI / TUI для управления процессами.