¿Cómo deshabilitar las alertas de inicio / detención de la instancia de Monit?

10

Monit envía una alerta cada vez que el demonio monit se detiene o inicia. Esta es información desagradable y no útil.

Según los documentos, configuré:

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

... que debe enviar alertas a ese correo electrónico, a menos que estén en la categoría "instancia", que se define como arranques / paradas.

Sin embargo, sigo recibiendo alertas generadas. Esto es súper molesto. Claramente debo estar perdiendo algo.

Estamos ejecutando Monit 5.2.4

Winfield
fuente
¿Está esto cubierto por esta pregunta?
ewwhite

Respuestas:

7

Monit puede, de acuerdo con la documentación, generar una serie de alertas:

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"

Pudimos arreglar esto de nuestro lado estableciendo (las direcciones cambiaron para proteger a los inocentes):

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

Esto enruta con éxito los mensajes a las direcciones que nos interesan. Puede configurarlos de manera global o local, pero nuestras alertas son globales.

Los subtítulos bajo PRUEBAS DE SERVICIO en: http://mmonit.com/monit/documentation/monit.html corresponden bastante claramente a los tipos anteriores.

Para cada proceso o función programada de su servidor, debería poder proponer lo que le importa en inglés simple y hacer coincidir ese deseo con una de las pruebas mencionadas en las PRUEBAS DE SERVICIO. Por ejemplo, si estoy ejecutando Apache, sé que me importa:

  • ¿Sigue ejecutándose el PID en el archivo PID? (no existe)
  • ¿Cambió el PID sin mi conocimiento? (pid)
  • ¿El servicio responde de manera oportuna a un reinicio? (se acabó el tiempo)

Para un demonio personalizado que sondea, me puede interesar si el archivo de registro se actualiza regularmente con mensajes de estado (marca de tiempo).

brokenbeatnik
fuente
1
¿Cómo sabes lo que te importa? No pude encontrar buena documentación sobre lo que esas acciones realmente significan. Por ejemplo, el "tiempo de actividad" parece bastante útil, pero no lo tiene en su lista.
dfrankow
Editaré mi respuesta para comentar.
brokenbeatnik
6

Estoy usando Monit versión 5.2.5 y usar lo siguiente ha detenido las alertas de monit que llegan

set alert [email protected] not {instance}

Thermionix
fuente
1

Simplemente dígale que lo elimine después de un cierto número de reintentos en un período de tiempo N de acuerdo con estos ejemplos .

Ben Lutgens
fuente
Esta no es la notificación de un proceso o servicio observado dado que se detiene o inicia (lo cual es una novedad), sino que el mismo demonio se detiene / inicia, lo que siempre es intencional y no una novedad.
Winfield
1
Ooooh, ¿qué pasa si elimina la línea "establecer alerta" en global y coloca alertas explícitas en sus secciones de servicio?
Ben Lutgens
esto funciona mejor ... solo configure los correos electrónicos de alerta en los controles ... elimine el global.
Mike
1

No pude solucionar esto dentro de monit y tuve que construir una capa de procesamiento en el correo electrónico de monit para filtrar estas notificaciones de instancia de monit antes de la entrega, interceptándolas.

Estamos utilizando la función de buscapersonas para acumular y enviar avisos desde monit y varios otros sistemas, por lo que en este caso agregué una regla de filtrado en el servicio Monit usando una expresión regular basada en asunto para filtrar los correos electrónicos de aviso de instancia de monit.

Winfield
fuente