Sorry it came to my mind after I hit sent button but we got a similar question somewhere recently and there exist another pattern also I'm using
alert [email protected] with reminder on 15 cycles check program check1 with path "/var/lib/monit/scripts/checkManualValidationLate.sh" not every "* 9-21 * * *" if status != 0 for 2 cycles then alert alert [email protected] with reminder on 15 cycles alert [email protected] with reminder on 10 cycles alert [email protected] with reminder on 5 cycles 2017-01-26 17:55 GMT+01:00 Guillaume François < [email protected]>: > Hi > > In my case, I use a custom script to alert and Notify at the same time > like below > > if does not exist then exec "/var/lib/monit/scripts/notifyAndExecute.sh > /bin/mount /path/to/remount" else if succeeded then exec > "/var/lib/monit/scripts/notifySuccess.sh" > > This way I can alert by using what ever channel (email;,sms, webhook > etc...) and run command at the same time. > > I did this because in the the past monit didn't supported several rules > but Monit evolved and you can now defined several rules for one event like > below (in the past it was overwriting/ignored) > > if does not exist for 3 cycles then alert > if does not exist for 5 cycles then start > if failed port 8080 for 3 times within 4 cycles then alert > if failed port 8080 for 6 times within 8 cycles then restart > if failed port 8443 for 3 times within 4 cycles then alert > if failed port 8443 for 6 times within 8 cycles then restart > if failed port 9990 for 3 times within 4 cycles then alert > if failed port 9990 for 6 times within 8 cycles then restart > > > if does not exist for 10 cycles then alert > if does not exist for 5 cycles then exec "/bin/mount /mnt/nfs" > > I don't have samples, but from my memory, you can also define several > actions for the same "event" several times with newer version like below > > if does not exist for 5 cycles then alert repeat every 2 cycles > if does not exist for 5 cycles then exec "/bin/mount /mnt/nfs" repeat > every 3 cycles > if does not exist for 5 cycles then exec "/some/script/notify" repeat > every 3 cycles > > > In your case it would be something like (not tested) > > if status != 0 then exec "/usr/local/monit/conf/dummy.sh" repeat every 10 > cycles > if status != 0 then alert repeat every 10 cycles > > Hope this help. > > > 2017-01-26 17:16 GMT+01:00 Riccardo Leonardi <[email protected]>: > >> Hi, >> >> thank you for your answer. >> I've checked the syntax about repeat feature, and it works (I have >> 5.20.0). >> Unfortunately what I need is not the script execution: that's is ok. >> What I need is repeat of alert notification, and as far as I know this >> notification is sent when the state changes only: OK->Failure and >> Failure->OK. >> As workaround I could explore some configuration at server side or >> forging some explicit signal by the script that is run every x cycles (see >> dummy.sh in my example), but I don't know how to do it. >> >> Thansk again >> >> Pensare Web srl, via Macanno | 38/N >> 47923 Rimini RN (Italy) >> T. 0541 309547 | F. 0541 1646143 >> >> Il 26/01/2017 16:56, Guillaume François ha scritto: >> >> Hi, >> >> Syntax is ok https://mmonit.com/monit/documentation/monit.html#ACTION >> >> Could it be an issue related to the version of Monit you're using ? >> >> Changelog (https://mmonit.com/monit/changes/) shows the behavior was >> changed in 5.16.0 as before it was forced to "repeat every 1 cycle". >> >> Therefore this syntax was not supported before. >> >> Best Regards. >> >> 2017-01-26 16:27 GMT+01:00 Riccardo Leonardi <[email protected]>: >> >>> Hi, >>> >>> I have a script checking mail queue returning alert if queue lenght is >>> greather than some threshold. >>> >>> The alert is correctly forwarded to slack channel, but when the >>> threshold is reached only, not when the queue remains over the threshold. >>> >>> In fact the behaviour I'd like to implement is: >>> - receive the alert when the queue goes over the threshold >>> - continue receiving the alert (possibly with current queue lenght) >>> every x cycles >>> - stop receiving when the queue returns under the threshold >>> >>> Currently I have implemented the following: >>> >>> check program qlen_check with path "/usr/local/monit/conf/check_qlen.sh >>> 200" >>> if status != 0 then exec "/usr/local/monit/conf/dummy.sh" repeat >>> every 10 cycles >>> >>> The script check_qlen.sh echoes queue lenght and return 1 if queue > 200. >>> As soon as that happens I got 1 slack alert only, while I'd like to keep >>> receiving it every x cycles (when dummy.sh is correctly run). >>> >>> Does anyone have any suggestion how to achieve that behaviour? >>> >>> Thank you in advance. >>> >>> Rik >>> >>> -- >>> To unsubscribe: >>> https://lists.nongnu.org/mailman/listinfo/monit-general >>> >> >> >> >> -- >> -----BEGIN GEEK CODE BLOCK----- >> Version: 3.1 >> GCS/IT d(+) s++:- a C++$ ULC(+)>+++$ !P--- L+>$ !E---? W+++$ !N* !o-- >> K--? w(+) !O---? !M- !V--? PS+? !PE Y+ PGP++>+++ !t-- !5 !X- R(+)>++* tv-? >> b(-) DI !D- G(+)>+ e+++ h--() r->$ y?* >> ------END GEEK CODE BLOCK------ >> >> >> -- >> To unsubscribe:https://lists.nongnu.org/mailman/listinfo/monit-general >> >> >> >> -- >> To unsubscribe: >> https://lists.nongnu.org/mailman/listinfo/monit-general >> > > > > -- > -----BEGIN GEEK CODE BLOCK----- > Version: 3.1 > GCS/IT d(+) s++:- a C++$ ULC(+)>+++$ !P--- L+>$ !E---? W+++$ !N* !o-- K--? > w(+) !O---? !M- !V--? PS+? !PE Y+ PGP++>+++ !t-- !5 !X- R(+)>++* tv-? b(-) > DI !D- G(+)>+ e+++ h--() r->$ y?* > ------END GEEK CODE BLOCK------ > -- -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/IT d(+) s++:- a C++$ ULC(+)>+++$ !P--- L+>$ !E---? W+++$ !N* !o-- K--? w(+) !O---? !M- !V--? PS+? !PE Y+ PGP++>+++ !t-- !5 !X- R(+)>++* tv-? b(-) DI !D- G(+)>+ e+++ h--() r->$ y?* ------END GEEK CODE BLOCK------
-- To unsubscribe: https://lists.nongnu.org/mailman/listinfo/monit-general
