monit-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: system-shutdown after <x> restarts within <y> cycles


From: Alexey Zilber
Subject: Re: system-shutdown after <x> restarts within <y> cycles
Date: Thu, 4 Jan 2007 10:29:24 -0500

Carsten,

   I'm having the same issues. 'exec' seems to only work with the 'if failed' command.  With some creative thinking, I came up with the following config for use with heartbeat (linux-ha).  I'm still in the process of testing, but this will give you an idea:

check process apache
        with pidfile /var/run/httpd.pid
        start program = "/etc/init.d/httpd start"
        stop program  = "/etc/init.d/httpd stop"
        if failed host 192.168.1.25 port 80 for 3 times within 5 cycles then exec "/usr/lib/heartbeat/hb_standby"
        if failed host 192.168.1.26 port 80 for 3 times within 5 cycles then exec "/usr/lib/heartbeat/hb_standby"
    mode manual
group node1


The above is for apache on 2 ip's with heartbeat/ipfail managing them.  Originally I had the checks seperate with 'depends on' and mode active, but monit seems to ignore 'depends on' in that case.  I consider that a bug, since it's counter-intuitive.. you would think that a check that depends on a manual check that is currently off would ignore that check..  anyway.. hope this helps!

-Alex

On 1/4/07, markmann <address@hidden> wrote:
Hi,

I am refering to an articel in the mail archive
(http://www.mail-archive.com/address@hidden/msg00803.html).
It is about the chance to do an "exec" after a specified number of
restarts of a process.
The problem is, that in this particular case the responsible statement
won't work with "exec".
Only "timeout" is accepted.

Martin wrote a hint for fixing the problem in an other way.
But...
:-) that fix is not for me.

I do something like that in monitrc file:

...
check process apache2 with pidfile /var/run/apache2.pid
group www-data
start program = "/etc/init.d/apache2 start"
stop  program = "/etc/init.d/apache2 stop"

if cpu > 60 % for 2 cycles then alert
if cpu > 80 % for 5 cycles then restart
if children > 250 then restart
if failed host mywebhost.uni-wuppertal.de port 443 type tcpssl protocol
http request "/mymonit.html" then restart

...

Now, I would like to write something like this:

if 3 restarts within 5 cycles then exec "/etc/monit/shutmedown.sh"

In either case the exec has to be done, because the systemload and / or
the heavy number of children indicates an attack (max systemload in
normal production on the server is lower 50 %) and we can't do anything
against it - or there went something wrong with apache2 and we want to
know the system down.

With "exec" I want to start a shutdown-script by my own.
After that, the servermirror will notice the absence of the
productionsystem (signaled by heartbeat) and starts up apache2 and some
other services.


How can I make that work?


Carsten



--------------------------------------------
Bergische Universitaet Wuppertal
Dezernat 2.3
Gaussstr.20
D-42097 Wuppertal (Germany)
--------------------------------------------
phone: +49 202 439-3804
fax:   +49 202 439-2916
email: address@hidden
--------------------------------------------


--
To unsubscribe:
http://lists.nongnu.org/mailman/listinfo/monit-general


reply via email to

[Prev in Thread] Current Thread [Next in Thread]