-
-
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 |
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:[email protected]: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:[email protected]: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?
And this is my Monit config for MongoDB on Ubuntu box (it should work for Debian too):
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.