[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: monit '-i' option - one new alternative and summary
From: |
Jan-Henrik Haukeland |
Subject: |
Re: monit '-i' option - one new alternative and summary |
Date: |
Tue, 16 Sep 2003 17:27:46 +0200 |
User-agent: |
Gnus/5.1002 (Gnus v5.10.2) XEmacs/21.4 (Reasonable Discussion, linux) |
Many good arguments, the one in 4) was especially clever. (I like the
way you think outside the box :) AFAIK, the solutions described in 2-4
replaces the need for the -i option. This means that we do not re-add
the -i option to monit, but instead add the solutions described below
to the monit man file and to the FAQ.txt. Do you have time to add the
text Martin? I suggest adding a short version to the INIT SUPPORT
section and a more verbose version (e.g. the text below) to the
FAQ.txt.
Martin <address@hidden> writes:
> Summary of currently known possible solutions:
>
> 1.) '-i' option
> ---------------
>
> Usage:
> - add following configuration to monitc (to start it in the case that it is
> not
> running):
>
> check process myprocess with pidfile /var/run/myprocess.pid
> start program = "/etc/init.d/myprocess start"
> stop program = "/etc/init.d/myprocess stop"
> alert address@hidden
>
> Advantage:
> - simple
>
> Disadvantage:
> - does not solve fundamental cause of the problem => the problem can still
> occure regardless whether the service is slow starting or failed to start
> - the behavior is global for all monit services (sleep) - monit will not
> monitor regardless whether the service is running or not
>
>
> 2.) start slow or critical service from monit directly
> ------------------------------------------------------
> Usage:
> - disable the service startup in appropriate or all runlevels. You can use
> for example on RedHat:
>
> chkconfig myprocess off
>
> on Debian:
>
> update-rc.d -f myprocess remove
>
> general example:
>
> mv /etc/rc2.d/S99myprocess /etc/rc2.d/s99myprocess
>
> - add following configuration to monitc:
>
> check process myprocess with pidfile /var/run/myprocess.pid
> start program = "/etc/init.d/myprocess start"
> stop program = "/etc/init.d/myprocess stop"
> alert address@hidden
>
> Advantage:
> - simple - the monit configuration is the same as in the case of -i option,
> you
> need only to disable the default startup
> - solves the problem cleanly - no race condition can occure, the service is
> completely under monit's control (which is the case of -i option too - monit
> takes over the responsibility for service, but after it was started from rc)
> - makes no sleep - services are started as fast as possible in the order as
> configured in monit (+ dependency support) => monit starts monitoring as
> soon
> as possible
>
> Disadvantage:
> - the user must handover/reconfigure the startup responsibility (as outlined
> above)
>
>
> 3.) wait for service to start in appropriate rc script
> ------------------------------------------------------
> Usage:
> - add following line to /etc/inittab behind rc:
>
> id:2:initdefault:
> ...
> l2:2:wait:/etc/init.d/rc 2
> ...
> mo:2345:respawn:/usr/local/bin/monit -Iic /etc/monitrc # added line
>
> - add following configuration to monitc:
>
> check process myprocess with pidfile /var/run/myprocess.pid
> start program = "/etc/init.d/myprocess start"
> stop program = "/etc/init.d/myprocess stop"
> alert address@hidden
>
> - wait in the rc script of the service to start or sleep in it some time (to
> pause the startup and hope that the service will be online in the meantime).
>
> Advantage:
> - per service - you need to care only for slow starting services
>
> Disadvantage:
> - it will pause the whole startup - init will not continue unless the service
> will be online or fail or the sleep will finish
> - in the case that the startup failed, monit will detect it independently of
> rc script (doppled control) => the fundamental cause can affect this
> solution
> too in the case that the service failed to start
>
>
> 4.) enable the service monitoring manualy
> -----------------------------------------
> Usage:
> - add following configuration to monitc:
>
> check file myprocess.pid with path /var/run/myprocess.pid
> if timestamp > 5 minutes then
> exec "/usr/bin/monit -c /etc/monitrc monitor myprocess"
>
> check process myprocess with pidfile /var/run/myprocess.pid
> start program = "/etc/init.d/myprocess start"
> stop program = "/etc/init.d/myprocess stop"
> alert address@hidden
> mode manual
>
> This way you can enable monitoring after specified time since process
> startup.
> There should be allways pidfile which can be monitored - in the case that
> myprocess is started from some sort of dispatcher and its pidfile will be
> created later then monit starts, you can monitor the pidfile of such
> dispatcher. In the case that this is not possible and there is no other
> suitable file for timestamp monitoring, you can touch some file in the slow
> service startup script (which is simple).
>
>
> Advantage:
> - per process - you need to do it for slow services only
> - based on already implemented features
>
>
> -----------
> Conslusion:
> -----------
>
> I think the solutions 2.) is the only clear solution (address the basic
> cause of the problem. Solution 4.) can be used as -i option alternative,
> it is based on present features and is per-process.
>
> Martin
>
>
>
>
>
>
> _______________________________________________
> monit-dev mailing list
> address@hidden
> http://mail.nongnu.org/mailman/listinfo/monit-dev
>
--
Jan-Henrik Haukeland