52 votes

Est-il avantage à l'utilisation de Monit à la place d'un Ambitieux programme d'installation?

Je suis à la configuration de mon serveur pour exécuter node.js comme un démon. J'ai configuré Parvenu à la poignée de démarrage et d'arrêt de nœud, qui fonctionne à merveille. La prochaine étape est de s'assurer que node.js est redémarré si il meurt. Quelques-uns des guides ont suggéré l'utilisation d' Monit (ou de Fugue) pour surveiller le processus (Monit est le cas en faisant une requête HTTP au serveur et attend une réponse).

Je suis heureux d'utiliser quelque chose comme Monit ou de Fugue, mais je ne sais pas pourquoi on ne serait pas (ou ne pas) utiliser Arriviste de respawn fonctionnalité. Je suppose que Upstart va surveiller le PID du processus lancés et juste un coup de pied hors de nouveau, si elle meurt. Ce n'Monit ou Fugue de vous donner un Arriviste n'a pas?

75voto

Daniel Beardsley Points 6802

Je recommande fortement d'utiliser les deux Monit ET arriviste. Upstart le rend facile à se transformer en démon node.js et Monit vient emballé avec des tonnes d'application utile des contrôles, y compris l'utilisation de la mémoire, les requêtes http, l'utilisation du processeur, ...

Ceci est un exemple de plus sur la configuration de base que vous pouvez obtenir. Vous pouvez également facilement ajouter un autre monit config (avec le même démarrer et arrêter le script), mais en utilisant le fichier PID et le processus de suivi des stats.

Pour la configuration de créer un simple local uniquement, gestionnaire de requêtes dans votre application qui répond juste avec le statut de 200 si tout va bien.

Monit config:

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

Upstart script (/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

39voto

flq Points 11937

Étant donné que Upstart vérifie juste le PID, un outil comme Monit qui fait une demande réelle sera de vous fournir une réponse de l'app santé d'esprit plus fidèlement. Un processus peut heureusement être en cours d'exécution, mais coincé dans une certaine manière telle qu'il n'est pas de servir les demandes.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X