[Mongrel] Monit + Mongrel woes

Carl Lerche carl.lerche at gmail.com
Mon Mar 26 16:02:57 EDT 2007


Hello all,

So, I've been using monit with mongrel for a while now, since the
0.3.x days (I think it was). It used to work fine, but now I seem to
be having some trouble. I'm currently using mongrel 1.0.1 and I am
using the same monit configuration I've always been using, yet
everytime monit should restart mongrel, I get "Execution failed".

For the start command, I originally used the following:
------------
start program = "/usr/bin/su admin -c '/usr/local/bin/mongrel_rails
start -d -e production -p 8001 -a 127.0.0.1 -c
/home/admin/webapps/gohuman/current -P log/mongrel.8001.pid'"
------------
But then monit started giving me execution failed errors and when I
tried to run it manually I got a "PID already exists" error. So, I
tried the following:
------------
start program = "/bin/rm -f
/home/admin/webapps/gohuman/shared/log/mongrel.8001.pid && /usr/bin/su
admin -c '/usr/local/bin/mongrel_rails start -d -e production -p 8001
-a 127.0.0.1 -c /home/admin/webapps/gohuman/current -P
log/mongrel.8001.pid'"
------------
Which just adds the rm at the start. Yet, monit still can't manage to
restart mongrel. I have no idea why. This is my full monit file

------------
##### mongrel 8000 - GoHuman #####
check process mongrel-8000 with pidfile
/home/admin/webapps/gohuman/shared/log/mongrel.8000.pid
    start program = "/bin/rm -f
/home/admin/webapps/gohuman/shared/log/mongrel.8000.pid && /usr/bin/su
admin -c '/usr/local/bin/mongrel_rails start -d -e production -p 8000
-a 127.0.0.1 -c /home/admin/webapps/gohuman/current -P
log/mongrel.8000.pid'"
    stop program  = "/usr/bin/su admin -c
'/usr/local/bin/mongrel_rails stop -c
/home/admin/webapps/gohuman/current -P log/mongrel.8000.pid'"

    if totalmem is greater than 80.0 MB for 5 cycles then alert
 # eating up memory?
    if cpu is greater than 50% for 2 cycles then alert
 # send an email to admin
    if cpu is greater than 80% for 3 cycles then restart
 # hung process?
    if loadavg(5min) greater than 10 for 8 cycles then restart
 # bad, bad, bad
    if 3 restarts within 5 cycles then timeout
 # something is wrong, call the sys-admin

    group gohuman

##### mongrel 8001 - GoHuman #####
check process mongrel-8001 with pidfile
/home/admin/webapps/gohuman/shared/log/mongrel.8001.pid
    start program = "/bin/rm -f
/home/admin/webapps/gohuman/shared/log/mongrel.8001.pid && /usr/bin/su
admin -c '/usr/local/bin/mongrel_rails start -d -e production -p 8001
-a 127.0.0.1 -c /home/admin/webapps/gohuman/current -P
log/mongrel.8001.pid'"
    stop program  = "/usr/bin/su admin -c
'/usr/local/bin/mongrel_rails stop -c
/home/admin/webapps/gohuman/current -P log/mongrel.8001.pid'"

    if totalmem is greater than 80.0 MB for 5 cycles then alert
 # eating up memory?
    if cpu is greater than 50% for 2 cycles then alert
 # send an email to admin
    if cpu is greater than 80% for 3 cycles then restart
 # hung process?
    if loadavg(5min) greater than 10 for 8 cycles then restart
 # bad, bad, bad
    if 3 restarts within 5 cycles then timeout
 # something is wrong, call the sys-admin

    group gohuman

##### mongrel 8002 - GoHuman #####
check process mongrel-8002 with pidfile
/home/admin/webapps/gohuman/shared/log/mongrel.8002.pid
    start program = "/bin/rm -f
/home/admin/webapps/gohuman/shared/log/mongrel.8002.pid && /usr/bin/su
admin -c '/usr/local/bin/mongrel_rails start -d -e production -p 8002
-a 127.0.0.1 -c /home/admin/webapps/gohuman/current -P
log/mongrel.8002.pid'"
    stop program  = "/usr/bin/su admin -c
'/usr/local/bin/mongrel_rails stop -c
/home/admin/webapps/gohuman/current -P log/mongrel.8002.pid'"

    if totalmem is greater than 80.0 MB for 5 cycles then alert
 # eating up memory?
    if cpu is greater than 50% for 2 cycles then alert
 # send an email to admin
    if cpu is greater than 80% for 3 cycles then restart
 # hung process?
    if loadavg(5min) greater than 10 for 8 cycles then restart
 # bad, bad, bad
    if 3 restarts within 5 cycles then timeout
 # something is wrong, call the sys-admin

    group gohuman
------------

Thanks,
-carl
-- 
EPA Rating: 3000 Lines of Code / Gallon (of coffee)


More information about the Mongrel-users mailing list