Jak wyłączyć alerty start / stop instancji Monit?

10

Monit wysyła alert za każdym razem, gdy demon monitorowania jest zatrzymywany lub uruchamiany. To jest wstrętna i nieprzydatna informacja.

Zgodnie z dokumentami ustawiłem:

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

... które powinny wysyłać powiadomienia na ten e-mail, chyba że należą do kategorii „instancja”, która jest zdefiniowana jako start / stop.

Nadal jednak generowane są alerty. To jest bardzo denerwujące. Najwyraźniej czegoś mi brakuje.

Używamy Monit 5.2.4

Winfield
źródło
Czy to pytanie
ewwhite

Odpowiedzi:

7

Monit może, zgodnie z dokumentacją, wygenerować szereg alertów:

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"

Byliśmy w stanie to naprawić po naszej stronie, ustawiając (adresy zmieniono w celu ochrony niewinnych):

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

To z powodzeniem kieruje wiadomości na adresy, na których nam zależy. Możesz ustawić je globalnie lub lokalnie, ale nasze alerty są tylko globalne.

Podpozycje w ramach TESTÓW SERWISOWYCH pod adresem : http://mmonit.com/monit/documentation/monit.html dość dokładnie odpowiadają powyższym typom.

Dla każdego zaplanowanego procesu lub funkcji serwera powinieneś być w stanie wymyślić, co jest dla Ciebie ważne, w prostym języku angielskim i dopasować to pragnienie do jednego z testów wymienionych w TESTACH SERWISOWYCH. Na przykład, jeśli korzystam z Apache, wiem, że zależy mi na:

  • Czy PID w pliku PID nadal działa? (nieistniejący)
  • Czy PID zmienił się bez mojej wiedzy? (pid)
  • Czy usługa reaguje w odpowiednim czasie na ponowne uruchomienie? (koniec czasu)

W przypadku niestandardowego demona, który odpytuje, mogę się martwić, czy plik dziennika jest regularnie aktualizowany o komunikaty o stanie (sygnatura czasowa).

brokenbeatnik
źródło
1
Jak możesz powiedzieć, na czym Ci zależy? Nie byłem w stanie znaleźć dobrej dokumentacji, co właściwie oznaczają te działania. Na przykład „uptime” wydaje się dość przydatny, ale nie ma go na twojej liście.
dfrankow
Zmienię swoją odpowiedź, aby skomentować.
brokenbeatnik
6

Używam Monit w wersji 5.2.5 i używając następujących przestałem monitorować nadchodzące powiadomienia

set alert [email protected] not {instance}

Thermionix
źródło
1

Po prostu powiedz mu, aby powalił po określonej liczbie ponownych prób w okresie N zgodnie z tymi przykładami .

Ben Lutgens
źródło
Nie jest to powiadomienie o zatrzymaniu lub uruchomieniu danego oglądanego procesu lub usługi (co jest wiadomością), ale o zatrzymaniu / uruchomieniu samego demona monitorowania, co zawsze jest zamierzone, a nie wiadomością.
Winfield,
1
Ooooch, a co, jeśli usuniesz wiersz „ustaw alert” na całym świecie i umieścisz wyraźne powiadomienia w sekcjach usługi?
Ben Lutgens,
działa to lepiej .. wystarczy ustawić e-maile z alertami w czekach .. usunąć globalny.
Mike
1

Nie byłem w stanie naprawić tego w monitorze i musiałem zbudować warstwę przetwarzania w e-mailu monitor, aby odfiltrować powiadomienia instancji monitorów przed dostarczeniem, przechwytując je.

Używamy obowiązku pagera do gromadzenia i wysyłania powiadomień z monitorów i kilku innych systemów, więc w tym przypadku dodałem regułę filtrowania do usługi Monit, używając wyrażenia regularnego w celu odfiltrowania wiadomości e-mail z powiadomieniem o instancji monitorowania.

Winfield
źródło