Есть ли преимущество в использовании Monit вместо базовой настройки Upstart? - PullRequest
52 голосов
/ 18 января 2011

Я настраиваю свой сервер для запуска node.js в качестве демона.Я настроил Upstart для обработки запуска и выключения узла, что прекрасно работает.Следующий шаг - убедиться, что node.js перезапущен, если он умрет.Некоторые из руководств предлагают использовать Monit (или Fugue ) для мониторинга процесса (в случае Monit, отправив HTTP-запрос на сервер и ожидаяответ).

Я счастлив использовать что-то вроде Monit или Fugue, но я не уверен, почему нельзя (или нельзя) просто использовать функцию возрождения Upstart ,Я предполагаю, что Upstart будет контролировать PID запущенного процесса и просто сбросит его, если он умрет.Что Монит или Фуга дает вам, что не дает Upstart?

Ответы [ 2 ]

76 голосов
/ 19 января 2011

Я настоятельно рекомендую использовать оба Monit И upstart .Upstart позволяет легко деамонизировать node.js, а Monit поставляется с множеством полезных проверок приложений, включая использование памяти, HTTP-запросы, использование процессора, ...

Это пример самой простой настройки, которую вы можете получить,Вы также можете легко добавить другую конфигурацию monit (с тем же сценарием запуска и остановки), но с использованием файла PID и статистики процесса мониторинга.

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

Конфигурация Monit:

check host app_name with address 127.0.0.1
    start "/sbin/start app_name"
    stop "/sbin/stop app_name"
    if failed port 80 protocol HTTP
        request /ok
        with timeout 5 seconds
        then restart

Сценарий обновления (/ etc / init / app_name):

description "app_name"

start on startup
stop on shutdown

script
    # Node needs HOME to be set
    export HOME="path/to/node/app"

    exec sudo -u nodejs /usr/local/bin/node path/to/node/app/server.js production 2>>/var/log/app_name.error.log >>/var/log/app_name.log
end script
39 голосов
/ 18 января 2011

Учитывая, что Upstart просто проверяет PID, такой инструмент, как Monit, который делает фактический запрос, даст вам более верный ответ о здравомыслии приложения.Возможно, процесс успешно запущен, но застрял так, что не обслуживает запросы.

...