Was ist der Vorteil der Verwendung von Supervisord over Monit
Haben wir ein setup, das mehrere daemons (web-apps + hintergrund-tasks) ausgeführt. Ich bin auf der Suche mit einem service, der uns hilft, zu überwachen, diese Dämonen und neu starten, wenn Sie den Ressourcen-Verbrauch höher ist als über einer Ebene.
Ich schätzen jede Einsicht auf, Wann man besser über den anderen. So wie ich das verstehe monit startet einen neuen Prozess, während supervisord beginnt mit einem sub-Prozess. Was ist der vor-und Nachteile hat dieser Ansatz ?
Werde ich auch mit upstart zu überwachen monit oder supervisord selbst. Die webapp-Bereitstellung erfolgt mittels capistrano.
Dank
InformationsquelleAutor der Frage murtaza52 | 2012-08-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Habe ich nicht verwendet, monit, aber es gibt einige erhebliche Mängel mit supervisord.
Das heißt, Sie können nicht führen Sie einfach /etc/init.d/apache2 start. Die meisten Zeiten, Sie können schreiben Sie einfach ein Einzeiler wie z.B. "source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND" aber manchmal müssen Sie Ihre eigene wrapper-Skript. Das problem mit den wrapper-Skripten ist, dass Sie am Ende mit zwei Prozessen, ein Elternteil und Kind. Siehe die nächsten Fehler...
Wenn Ihr das Programm startet Kind-Prozess, supervisord nicht erkennen. Wenn der parent-Prozess stirbt (oder wenn es neu gestartet wurde, mit supervisorctl) die Kind-Prozesse laufen weiter sondern wird "adoptiert", indem Sie den init-Prozess und bleiben. Dies könnte verhindern, dass künftige Aufrufe des Programms ausgeführt, oder Sie verbrauchen zusätzliche Ressourcen. Die aktuelle config Optionen stopasgroup und killasgroup werden soll, um dieses Problem zu lösen, aber hat nicht funktioniert für mich.
Ich vor kurzem setup squid mit qlproxy. qlproxyd muss beginnen, sonst kann squid scheitern. Obwohl beide Programme konnten mit supervisord es gab keinen Weg, um dies sicherzustellen. Ich brauchte, um zu schreiben, ein start-script für Tintenfisch, die es warten, bis die qlproxyd Prozess. Das hinzufügen der start-Skript entstand im verwaisten Prozess problem beschrieben Fehler 2
Manchmal, wenn ein Prozess nicht starten (oder stürzt ab), ist es, weil Sie es nicht bekommen können, Zugang zu anderen Ressourcen, die möglicherweise durch ein Netzwerk wackeln. Supervisor eingestellt werden kann, starten Sie den Vorgang einige Male. Zwischen wird der Vorgang erneut gestartet wird, geben Sie ein "BACKOFF" - Zustand, aber es gibt keine Dokumentation oder Kontrolle über die Dauer des backoff.
In der Abwehr Vorgesetzten nicht unsere Anforderungen erfüllen, 80% der Zeit. Die Konfiguration ist sinnvoll und Dokumentation ziemlich gut.
InformationsquelleAutor der Antwort cressie176
Wenn Sie möchten, zu überwachen zusätzlich die Ressourcen, die Sie sollten sich für monit. Zusätzlich zu nur die überprüfung, ob ein Prozess läuft (Verfügbarkeit), monit kann auch einige überprüfungen durchführen von Ressourcen-Nutzung (Leistung, Auslastung), load-Level und auch die grundlegenden Sicherheits-checks (md5sum einer bianry-Datei, config-Datei, etc). Es hat eine Regel-basierte config, das ist ganz einfach zu verstehen. Auch gibt es eine Menge an fertigen configs: http://mmonit.com/wiki/Monit/ConfigurationExamples
Monit erfordert Prozesse zu erstellen, die PID-Dateien, die einen Fehler, denn wenn ein Prozess nicht erstellen pid-Datei Sie haben, um einige Wrapper. Sehen http://mmonit.com/wiki/Monit/FAQ#pidfile
Supervisord auf der anderen Seite ist mehr gebunden an einen Prozess, laicht er es von selbst. Es gibt keine Ressource-basierte Prüfungen wie monit. Es hat eine schöne CLI
servicectl
und eine web-GUI, aber.InformationsquelleAutor der Antwort Darek