Einfacher, aber produktionsfähiger Prozessmonitor unter Linux / Unix [geschlossen]

8

Ich suche einen einfachen Prozessmonitor für mein Konto in einem beliebten VPS. Ich habe Supervisor und Monit geliebt, aber sie scheinen für mich übertrieben.

ich möchte etwas

  1. das läuft als Daemon (mein VPS-Konto kann es also beim Booten starten und auch per Cron "starten", falls der Monitor selbst ausfällt)
  2. Das überwacht, indem es Dinge als Unterprozess erzeugt (wie Supervisor) oder indem es einen Polling- Befehl ausführt, der true oder false zurückgibt (wie eine BASH if-Anweisung).
  3. sowohl einfach zu bedienen (minimale Konfiguration erforderlich) als auch produktionsstabil (irgendwie scheint nur wenige Software beide Anforderungen zu erfüllen)
  4. Geeignet für einen verwalteten VPS-Lauf im Benutzermodus, minimale Speicherauslastung
Jesvin Jose
quelle

Antworten:

2

Sie suchen das Programm daemontools . (Wenn Sie dies mit dem "Supervisor" -Monitor gemeint haben, können Sie den Rest meiner Antwort ignorieren.)

daemontools ist eine Sammlung von Tools zum Verwalten von UNIX-Diensten.

überwachen überwacht einen Dienst. Es startet den Dienst und startet den Dienst neu, wenn er stirbt. Das Einrichten eines neuen Dienstes ist einfach: Alle Überwachungsanforderungen sind ein Verzeichnis mit einem Ausführungsskript, mit dem der Dienst ausgeführt wird.

Multilog speichert Fehlermeldungen in einem oder mehreren Protokollen. Optional werden jede Zeile mit einem Zeitstempel versehen und für jedes Protokoll Zeilen eingeschlossen oder ausgeschlossen, die bestimmten Mustern entsprechen. Protokolle werden automatisch gedreht, um den verwendeten Speicherplatz zu begrenzen. Wenn die Festplatte voll ist, wird sie angehalten und erneut versucht, ohne dass Daten verloren gehen.

Es ist einfach, flexibel und sehr leistungsfähig. Die Grundidee ist, dass daemontools für jeden Dienst, den Sie ausführen möchten, einen untergeordneten Prozess (aufgerufen supervise) startet, der dann Ihren Dienst startet. supervise Konfiguriert die Umgebungsvariablen des Dienstes und uid / gid und hält dann den Standard in und standard out des Dienstes offen, damit er Signale senden kann. Der Dienst muss sich nicht selbst dämonisieren und Sie müssen keine PID-Dateien verwalten. Für die Ausführung des Hauptdienstes ist kein Root erforderlich, und Sie können die Verzeichnisse der überwachten Dienste an einer beliebigen Stelle ablegen.

Handwerker5
quelle
runitwäre eine Alternative zu Daemontools. Es ist auch sehr einfach und niedrig. Grundsätzlich benötigen Sie zum Ausführen eines Prozesses nur eine Datei mit einem Befehl exec, z. B. exec sleep 300erstellen Sie einen Symlink aus dem Verzeichnis, in dem das Skript ausgeführt wird, /etc/service/nameund fertig.
Tombart
1

Die einfache Antwort ist, dass Sie bereits eine haben - jedes Unix-System tut dies - init und / etc / inittab.

Die Aufgabe von init besteht darin, die in inittab aufgelisteten Prozesse zu erzeugen, zu überwachen und neu zu starten, wenn sie beendet werden.

Haqa
quelle