Wie deaktiviere ich Start / Stopp-Warnungen für Monit-Instanzen?

10

Monit sendet jedes Mal eine Warnung, wenn der Monit-Daemon gestoppt oder gestartet wird. Dies sind widerliche und nicht nützliche Informationen.

Laut den Dokumenten habe ich festgelegt:

set alert [email protected] but not on { instance }

... die Warnungen an diese E-Mail senden sollten, es sei denn, sie befinden sich in der Kategorie "Instanz", die als Start / Stopp definiert ist.

Es werden jedoch weiterhin Warnungen generiert. Das ist super nervig. Klar muss mir etwas fehlen.

Wir führen Monit 5.2.4 aus

Winfield
quelle
Wird dies von dieser Frage
ewwhite

Antworten:

7

Monit kann laut Dokumentation eine Reihe von Warnungen generieren:

Event:     | Failure state:              | Success state:
---------------------------------------------------------------------
action     | "Action done"               | "Action done"
checksum   | "Checksum failed"           | "Checksum succeeded"
bytein     | "Download bytes exceeded"   | "Download bytes ok"
byteout    | "Upload bytes exceeded"     | "Upload bytes ok"
connection | "Connection failed"         | "Connection succeeded"
content    | "Content failed",           | "Content succeeded"
data       | "Data access error"         | "Data access succeeded"
exec       | "Execution failed"          | "Execution succeeded"
fsflags    | "Filesystem flags failed"   | "Filesystem flags succeeded"
gid        | "GID failed"                | "GID succeeded"
icmp       | "Ping failed"               | "Ping succeeded"
instance   | "Monit instance changed"    | "Monit instance changed not"
invalid    | "Invalid type"              | "Type succeeded"
link       | "Link down"                 | "Link up"
nonexist   | "Does not exist"            | "Exists"
packetin   | "Download packets exceeded" | "Download packets ok"
packetout  | "Upload packets exceeded"   | "Upload packets ok"
permission | "Permission failed"         | "Permission succeeded"
pid        | "PID failed"                | "PID succeeded"
ppid       | "PPID failed"               | "PPID succeeded"
resource   | "Resource limit matched"    | "Resource limit succeeded"
saturation | "Saturation exceeded"       | "Saturation ok"
size       | "Size failed"               | "Size succeeded"
speed      | "Speed failed"              | "Speed ok"
status     | "Status failed"             | "Status succeeded"
timeout    | "Timeout"                   | "Timeout recovery"
timestamp  | "Timestamp failed"          | "Timestamp succeeded"
uid        | "UID failed"                | "UID succeeded"
uptime     | "Uptime failed"             | "Uptime succeeded"

Wir konnten dies auf unserer Seite beheben, indem wir (Adressen geändert, um die Unschuldigen zu schützen):

SET ALERT [email protected] ON { invalid, nonexist, timeout, resource, size, timestamp}
SET ALERT [email protected] ON {action, permission, pid, ppid, instance, status}

Dadurch werden die Nachrichten erfolgreich an die Adressen weitergeleitet, die uns wichtig sind. Sie können sie global oder lokal festlegen, aber unsere Warnungen sind nur global.

Die Unterüberschriften unter SERVICE TESTS unter: http://mmonit.com/monit/documentation/monit.html entsprechen ziemlich genau den oben genannten Typen.

Für jeden geplanten Prozess oder jede geplante Funktion Ihres Servers sollten Sie in der Lage sein, das, was für Sie wichtig ist, in einfachem Englisch zu finden und diesen Wunsch einem der in SERVICE TESTS genannten Tests zuzuordnen. Wenn ich beispielsweise Apache verwende, weiß ich, dass mir Folgendes wichtig ist:

  • Läuft die PID in der PID-Datei noch? (nicht vorhanden)
  • Hat sich die PID ohne mein Wissen geändert? (pid)
  • Reagiert der Dienst rechtzeitig auf einen Neustart? (Auszeit)

Bei einem benutzerdefinierten Daemon, der Abfragen durchführt, ist es mir möglicherweise wichtig, ob die Protokolldatei regelmäßig mit Statusmeldungen (Zeitstempel) aktualisiert wird.

gebrochenbeatnik
quelle
1
Wie sagst du, was dich interessiert? Ich konnte keine gute Dokumentation darüber finden, was diese Aktionen tatsächlich bedeuten. Zum Beispiel scheint "Betriebszeit" ziemlich nützlich zu sein, aber Sie haben es nicht auf Ihrer Liste.
dfrankow
Ich werde meine Antwort bearbeiten, um einen Kommentar abzugeben.
Breakedbeatnik
6

Ich verwende Monit Version 5.2.5 und die folgenden Funktionen haben die Überwachung von Monit-Warnungen gestoppt

set alert [email protected] not {instance}

Thermionix
quelle
1

Sagen Sie ihm einfach, dass er es nach einer bestimmten Anzahl von Wiederholungsversuchen in N Zeiträumen gemäß diesen Beispielen abbrechen soll .

Ben Lutgens
quelle
Dies ist nicht die Benachrichtigung über das Beenden oder Starten eines bestimmten überwachten Prozesses oder Dienstes (was Nachrichten sind), sondern über das Stoppen / Starten des Monit-Daemons selbst, was immer beabsichtigt ist und keine Nachrichten.
Winfield
1
Ooooh, was ist, wenn Sie die Zeile "Warnung einstellen" in global entfernen und explizite Warnungen in Ihre Servicestrophen einfügen?
Ben Lutgens
Dies funktioniert besser. Setzen Sie einfach die Alarm-E-Mails in die Prüfungen. Entfernen Sie die globale.
Mike
1

Ich konnte dies nicht innerhalb von Monit beheben und musste eine Verarbeitungsebene für die Monit-E-Mail erstellen, um diese Monit-Instanzbenachrichtigungen vor der Zustellung herauszufiltern, indem ich sie abfing.

Wir verwenden die Pager-Pflicht, um Benachrichtigungen von Monit und mehreren anderen Systemen zu sammeln und zu versenden. In diesem Fall habe ich dem Monit-Dienst eine Filterregel hinzugefügt, die einen themenbasierten regulären Ausdruck verwendet, um Benachrichtigungs-E-Mails von Monit-Instanzen herauszufiltern.

Winfield
quelle