-
-
Save pasviegas/345611 to your computer and use it in GitHub Desktop.
check host mongodb with address localhost | |
start program = "/usr/bin/sudo /opt/database/mongo/bin/mongod" | |
stop program = "/usr/bin/sudo /usr/bin/pkill -f mongod" | |
if failed port 28017 protocol HTTP | |
request / | |
with timeout 10 seconds | |
then start |
And this is my Monit config for MongoDB on Ubuntu box (it should work for Debian too):
check process mongodb with pidfile /db/path/mongod.lock
group database
start program = "/etc/init.d/mongodb start"
stop program = "/etc/init.d/mongodb stop"
if failed host 127.0.0.1 port 28017 protocol http
and request "/" with timeout 10 seconds then restart
if 5 restarts within 5 cycles then timeout
The biggest difference is that I used also MongoDB PID file. I'm sharing it, because I hope it can be useful for other people as well.
I cant get this above script working on Ubuntu VPS. My mongodb has been changed to start/stop as service and not as /etc/init.d - is there a way to fix this ?
Sorry, but I'm not too experienced with Ubuntu Upstart, so probably I can't help you a lot...
I guess you can use something like below for starting/stopping your MongoDB:
start program = "/sbin/start mongodb"
stop program = "/sbin/stop mongodb"
But I don't have an idea about MongoDB PID file in your scenario...
I tried ptecza's way on my CentOS system but Monit claims Mongo is not running (even though it does). I'm shooting in the dark that Monit cannot check contents of /var/lib/mongo/mongo.lock because the file is executable by Mongo. Any ideas?
So after poking about I just added 3 lines to the start part of the MongoDB's init script:
sleep 5
cp $DBPATH/mongo.lock /var/run/mongo.pid
chmod -x /var/run/mongod.pid
Then pointed Monit at the new PID file. Also added line to remove the PID file when Mongo is stopped.
Does this work even if the MongoDB requires authentication ?
I have problem. I try to use this config for monitoring my mongo service. But my mongo server has authentication and monit is failed. I've tried to use next variant:
if failed url http://admin:password123@mongo.server.com:28017/ for 1 cycles then alert
But it didn't work.
Do You have any ideas for fix it?
Check port 27017 ; ) Ex.: if failed host x.x.x.x port 27017
Centos 7 - mongod monit check snippit.
check process mongodb with pidfile /var/lib/mongo/mongod.lock
group database
start program = "/bin/systemctl start mongod"
stop program = "/bin/systemctl stop mongod"
if failed host 127.0.0.1 port 28017 protocol http
and request "/" with timeout 10 seconds then restart
if 5 restarts within 5 cycles then timeout
My mongodb has been authenticated and monit is giving "failed to connect" error.
I am using following config,
check process mongodb matching "mongodb"
start program = "/usr/bin/sudo /bin/systemctl start mongodb"
stop program = "/usr/bin/sudo /bin/systemctl stop mongodb"
if failed url http://username:password@127.0.0.1:27017/authDb with timeout 10 seconds then restart
if 5 restarts within 5 cycles then timeout
@dzamosenchuk @virajp , Did any of you find any solution, Please let me know I am having same kind of issue.
I succesfully configured my monit and it works fine.I think it will help someone.
check process mongodb with pidfile /var/lib/mongodb/mongod.lock
group database
start program = "/bin/systemctl start mongodb"
stop program = "/bin/systemctl stop mongodb"
if failed host localhost port 27017 then restart
I cannot get the most basic script working on this on ubuntu 16.04
monit 5.16
check process mongod with pidfile /var/run/mongod.pid
group database
start program = "/usr/sbin/service mongod start"
stop program = "/usr/sbin/service mongod stop"
if failed host 127.0.0.1 port 27017 protocol http
and request "/" with timeout 15 seconds then restart
I get the error: Error reading pid from file '/var/run/mongod.pid'
but when I run cat /var/run/mongod.pid
I do get the value 51455
I've changed permissions making it both less and more restrictive to no avail. Thoughts?
Very tricky way :) Thanks a lot for the inspiration! I'm going to use it for my Monit.