Monit scheint den Neustart eines Dienstes aufzugeben, wenn er einige Male fehlschlägt, und hebt die Überwachung auf. Ich kann in der Dokumentation nichts darüber finden, wann oder warum.
Meine Monit-Konfiguration würde wie folgt eingerichtet:
set daemon 10
set logfile /var/log/monit.log
set statefile /var/lib/monit/monit.state
set alert [email protected] not { nonexist, action, instance }
include /etc/monit/conf.d/*
Und dies ist ein Beispiel für den Monit-Regelsatz, den ich verwende:
check process myservice
with pidfile /var/run/myservice/myservice.pid
start program = "/home/myservice/current/start-myservice.sh"
as uid myservice and gid myservice
stop program = "/home/myservice/current/stop-myservice.sh"
as uid myservice and gid myservice
mode active
In meiner Umgebung möchte ich, dass die Abfrageintervalle auf unbestimmte Zeit weiter ausprobiert werden. Gibt es eine Möglichkeit, monit so zu konfigurieren, dass die Überwachung eines Dienstes niemals beendet wird , auch wenn er nicht erfolgreich gestartet wird?
linux
monitoring
monit
Joe Shaw
quelle
quelle
Antworten:
Ich würde einfach einen Cron-Job verwenden, der
monit start servicename
in den gewünschten Intervallen ausgeführt wird. Natürlich können Sie Gruppen für eine feinere Kontrolle verwenden.quelle
Ich hatte genau das gleiche Problem, bei dem es trotz Neustart der Überwachung nach dem Timeout nicht mehr überwacht werden konnte. Schließlich musste herausgefunden werden, dass die Monit-Statusdatei (
/var/.monit.state
) gelöscht und Monit neu gestartet werden musste, damit alle Programme erneut überwacht wurden.quelle
Nach einigem Graben stellt sich heraus, dass Monit Systemüberwachungsdaten in einer Statusdatei speichert. Und diese "Status" -Datei verfolgt, welche Dienste überwacht / nicht überwacht werden.
Das ist zwar ein bisschen "Brute Force", aber es funktioniert definitiv. Wenn ein Dienst aufgrund einer Zeitüberschreitung nicht mehr überwacht wird, entfernen Sie einfach die Monit-Statusdatei wie folgt aus dem System:
Und dann starten Sie Monit so neu und alles sollte gut sein:
quelle
Basierend auf Ihrem Monit-Code-Snippet müssen Sie anscheinend Zyklusanweisungen ändern oder zu Ihrer Prozess-Zeilengruppe hinzufügen. Siehe die entsprechende Dokumentation hier und hier .
Anscheinend möchten Sie Ihre Servicetests so einstellen, dass sie jeden Zyklus ohne Timeout-Anweisung ausführen. Schauen Sie sich auch Ihre Monit-Homepage unter http: // hostname: 2812
. Check the page for the relevant service and look at
im Feld "Existenz" an. Ihre Standardeinstellung sollte folgendermaßen aussehen:quelle
exit 1
wiedergibt und dies tut ), wird die Überwachung immer noch schnell aufgehoben. Wenn ich "Monit Monitor Joe-Test" verwende, wird die Überwachung nach einem Fehler beendet. Mit "Monit Start Joe-Test" gibt es nach 2 Versuchen auf.