Comment désactiver les alertes de démarrage / arrêt de l'instance Monit?


10

Monit envoie une alerte à chaque arrêt ou démarrage du démon monit. Il s'agit d'informations désagréables et non utiles.

Selon les documents, j'ai défini:

set alert user@mycompany.com but not on { instance }

... qui devrait envoyer des alertes à cet e-mail, sauf si elles se trouvent dans la catégorie "instance", définie comme démarrages / arrêts.

Cependant, je reçois toujours des alertes générées. C'est super ennuyeux. De toute évidence, je dois manquer quelque chose.

Nous exécutons Monit 5.2.4


Est-ce couvert par cette question?
ewwhite

Réponses:


7

Monit peut, selon la documentation, générer un certain nombre d'alertes:

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"

Nous avons pu résoudre ce problème de notre côté en définissant (les adresses ont été modifiées pour protéger les innocents):

SET ALERT important-messages@projectlocker.com ON { invalid, nonexist, timeout, resource, size, timestamp}
SET ALERT less-important-messages@projectlocker.com ON {action, permission, pid, ppid, instance, status}

Cela achemine avec succès les messages vers les adresses qui nous intéressent. Vous pouvez les définir globalement ou localement, mais nos alertes sont juste globales.

Les sous-titres sous SERVICE TESTS sur: http://mmonit.com/monit/documentation/monit.html correspondent assez bien aux types ci-dessus.

Pour chaque processus ou fonctionnalité planifié de votre serveur, vous devriez être en mesure de trouver ce qui compte pour vous dans un anglais simple, et de faire correspondre ce désir à l'un des tests mentionnés dans les ESSAIS DE SERVICE. Par exemple, si j'utilise Apache, je sais que je tiens à:

  • Le PID du fichier PID est-il toujours en cours d'exécution? (inexistant)
  • Le PID a-t-il changé à mon insu? (pid)
  • Le service répond-il en temps opportun à un redémarrage? (temps libre)

Pour un démon personnalisé qui interroge, je peux me soucier de savoir si le fichier journal est mis à jour régulièrement avec des messages d'état (horodatage).


1
Comment dites-vous ce qui vous intéresse? Je n'ai pas pu trouver une bonne documentation sur la signification réelle de ces actions. Par exemple, "uptime" semble assez utile, mais vous ne l'avez pas sur votre liste.
dfrankow

Je vais modifier ma réponse pour commenter.
brokenbeatnik

6

J'utilise la version 5.2.5 de Monit et l'utilisation des éléments suivants a interrompu les alertes de monit

set alert example@gmail.com not {instance}


1

Dites-lui simplement de l'arrêter après un certain nombre de tentatives dans la période de temps N selon ces exemples .


Il ne s'agit pas de la notification d'un processus ou d'un service surveillé donné s'arrêtant ou démarrant (ce qui est des nouvelles) mais du démon monit lui-même s'arrêtant / démarrant, ce qui est toujours intentionnel et non des nouvelles.
Winfield

1
Ooooh, que se passe-t-il si vous supprimez la ligne "définir une alerte" dans global et placez des alertes explicites dans vos strophes de service?
Ben Lutgens

cela fonctionne mieux .. il suffit de définir les e-mails d'alerte dans les contrôles .. supprimer le global.
Mike

1

Je n'ai pas pu résoudre ce problème dans Monit et j'ai dû créer une couche de traitement sur l'e-mail Monit pour filtrer ces notifications d'instance Monit avant la livraison, en les interceptant.

Nous utilisons la fonction de pageur pour accumuler et envoyer des notifications à partir de Monit et de plusieurs autres systèmes, donc dans ce cas, j'ai ajouté une règle de filtrage sur le service Monit en utilisant une expression rationnelle basée sur le sujet pour filtrer les e-mails de notification d'instance Monit.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.