Hello,

it seems, from my test some lines are working while other not. Tried with
monit v5.16.

Could it be that not all [test] accept a "succeeded" condition ?

"does not exist" is working

also there is a "if" missing after the else of the "memory" test

This is ok on my side

  if does not exist then exec
"/bin/echo"                                         else if succeeded then
exec "/bin/echo"
  if does not exist for 3 times in 10 cycles then exec "/bin/echo
frontendlogger" else if succeeded then exec "/bin/echo frontendlogger"
#  if 2 restarts within 10 cycles then exec "/bin/echo frontendlogger" else
if succeeded then exec "/bin/echo frontendlogger"
#  if changed pid for 3 times in 10 cycles then exec "/bin/echo
frontendlogger" else if succeeded then exec "/bin/echo frontendlogger"
  if memory > 70 MB for 3 cycles then exec "/bin/echo frontendlogger" else
if succeeded then exec "/bin/echo frontendlogger"
  if cpu > 1% for 3 cycles then exec "/bin/echo frontendlogger" else if
succeeded then exec "/bin/echo frontendlogger"

Best Regards,


2016-06-16 16:59 GMT+02:00 Mehul Ved <[email protected]>:

> Here's what I have configured:
>
>
>   if 2 restarts within 10 cycles then exec
> "/usr/local/bin/pagerduty-trigger frontendlogger"
>   else if succeeded then exec "/usr/local/bin/pagerduty-trigger
> frontendlogger"
>
> but when I do monit validate it throws following error:
>
>   /etc/monit/conf.d/frontendLogger.conf:19: syntax error 'else'
>
>
> The else in the above configuration is the 19th line.
>
> Here's the whole file, in case it helps
>
> ----- START -----
> check process frontendLogger matching frontendLogger
>   start program = "/bin/systemctl start frontendLogger"
>   stop program = "/bin/systemctl stop frontendLogger"
>   restart program = "/bin/systemctl restart frontendLogger"
>   group nodejs
>   if failed host 127.0.0.1 port 10500 protocol http
>     request /ping
>     content = "PONG"
>     with timeout 2 seconds
>     for 2 times in 4 cycles
>     then restart
>   if failed host vr.com port 443 type TCPSSL protocol http
>     request /logger/ping
>     content = "PONG"
>     with timeout 2 seconds
>     for 2 times within 4 cycles
>     then restart
>   if 2 restarts within 10 cycles then exec
> "/usr/local/bin/pagerduty-trigger frontendlogger"
>   else if succeeded then exec "/usr/local/bin/pagerduty-trigger
> frontendlogger"
>   if does not exist for 3 times in 10 cycles then exec
> "/usr/local/bin/pagerduty-trigger frontendlogger"
>   else if succeeded then exec "/usr/local/bin/pagerduty-trigger
> frontendlogger"
>   if changed pid for 3 times in 10 cycles then exec
> "/usr/local/bin/pagerduty-trigger frontendlogger"
>   else if succeeded then exec "/usr/local/bin/pagerduty-trigger
> frontendlogger"
>   if memory > 70 MB for 3 cycles then exec
> "/usr/local/bin/pagerduty-trigger frontendlogger"
>   else succeeded then exec "/usr/local/bin/pagerduty-trigger
> frontendlogger"
>   if cpu > 1% for 3 cycles then exec "/usr/local/bin/pagerduty-trigger
> frontendlogger"
>   else if succeeded then exec "/usr/local/bin/pagerduty-trigger
> frontendlogger"
> ----- END -----
>
> ------------------------------
> *From:* monit-general <monit-general-bounces+mehul.ved=
> [email protected]> on behalf of Rui Lapa <[email protected]>
> *Sent:* Thursday, June 16, 2016 4:49 PM
> *To:* This is the general mailing list for monit
> *Subject:* Re: Syntax for else if
>
>
> ELSE IF SUCCEEDED THEN
>
> not
>
> ELSE IF <test> THEN
>
>
> On Thu, Jun 16, 2016 at 11:17 AM, Mehul Ved <[email protected]>
> wrote:
>
>> Hello,
>>
>>   I am configuring pagerduty integration with monit and have run into a
>> roadblock while setting it up. As per the pagerduty documentation,
>>
>> - to trigger a new incident, we need to add
>>
>> if does not exist for 3 cycles
>>         then exec "/etc/monit/pagerduty-trigger crond"
>>
>> which works fine.
>>
>>
>> - to automatically mark the issue as resolved, we need to add
>>
>>     else if passed for 3 cycles
>>         then exec "/etc/monit/pagerduty-resolve crond"
>>
>> but this causes syntax error.
>>
>>
>> So, I looked up the monit documentation at
>> https://mmonit.com/monit/documentation/monit.html and it shows the
>> following syntax:
>>
>> IF <test> THEN <action> [ELSE IF SUCCEEDED THEN <action>]
>>
>> and this causes validation error as well.
>>
>> I went through the changelog as well as the issue list on bitbucket but
>> failed to find any information on the same. Has anything changed? Did I
>> miss something here?
>> documentation - M/Monit
>> <https://mmonit.com/monit/documentation/monit.html>
>> mmonit.com
>> Version 5.18. NAME; SYNOPSIS; DESCRIPTION; WHAT TO MONITOR? GENERAL
>> OPERATION. Options; Arguments; THE MONIT CONTROL FILE. Service checks.
>> Process; File; Fifo; Filesystem
>>
>>
>> --
>> 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------
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general

Reply via email to