|
From: | Houssan A. Hijazi |
Subject: | Re: Monit http error status |
Date: | Mon, 5 Nov 2012 15:16:26 -0200 |
Hi,my config file:check process nginxwith pidfile /dh/nginx/servers/httpd-ps93737/var/logs/nginx.pid #Pid file for nginx in my case it located in /opt/nginx/logs/start program = "/etc/init.d/nginx start"stop program = "/etc/init.d/nginx stop"if failed host www.mysite.com port 80 protocol HTTP then restart #set your server IP that runs nginxif 5 restarts with 5 cycles then alertcheck program webserverresponse with path /home/myhome/webserver_response.sh# if status == 502 then restartif status == 502 then exec "/usr/local/bin/monit restart nginx"depends on nginxMy /home/myhome/webserver_response.sh return 502, but not work, not restart nginx.I did something wrong?thanks2012/11/2 Martin Pala <address@hidden>You can keep the "depends on nginx" as well (if the parent nginx service will be restarted, it will suppress the child service test during the restart).On Nov 2, 2012, at 10:16 PM, "Houssan A. Hijazi" <address@hidden> wrote:Hi,thanks for your hint.i don't need put: depends on nginx ?Thanks--2012/11/2 Martin Pala <address@hidden>
I'm sorry i provided wrong hint - the child service restart action doesn't trigger the parent's service restart (the action cascades from parents to children but bot vice versa).The correct way to restart the nginx and prevent th race condition between the two checks is:check program webserverresponse with path /home/myhome/webserver_response.shif status == 502 then exec "/usr/bin/monit restart nginx"Regards,MartinOn Nov 1, 2012, at 6:19 PM, "Houssan A. Hijazi" <address@hidden> wrote:Hi,this rule is not work:--check program webserverresponse with path /home/myhome/webserver_response.shif status == 502 then restartdepends on nginxif i run /home/myhome/webserver_response.sh in terminal it print 502 but the monit not restart.Can you help me?thanks2012/11/1 Houssan A. Hijazi <address@hidden>Thanks, Martin2012/11/1 Martin Pala <address@hidden>
Hi,the "check program" was added in Monit 5.3 ... you need to upgrade monit.Regards,MartinOn Nov 1, 2012, at 2:59 PM, "Houssan A. Hijazi" <address@hidden> wrote:Hi,i created the file like this:--#!/bin/bashcurl -o /dev/null --silent --head --write-out '%{http_code}\n' http://www.mysite.orgit return the http response code.in monit configuration i do:check process nginxwith pidfile /dh/nginx/servers/httpd-myserver/var/logs/nginx.pidstart program = "/etc/init.d/nginx start"stop program = "/etc/init.d/nginx stop"if failed host www.mysite.org port 80 protocol HTTP then restart #set your server IP that runs nginxif 5 restarts with 5 cycles then alertcheck program webserverresponse with path /home/myhome/webserver_response.shif content == "502" then restartdepends on nginxWhen i try start monit:$ sudo /etc/init.d/monit startStarting daemon monitor: Syntax error:/etc/monit/conf.d/nginx.conf:7: Error: syntax error 'webserverresponse'Monit version: 1:5.1.1-1thanks2012/10/31 Martin Pala <address@hidden>
Hi,
the default HTTP protocol test returns just failure if the HTTP code is error.
You can use the "check program" test with custom script and use curl/wget to get the http response code, for example (not tested):
/usr/local/bin/myhttptest.sh:
--8<--
#!/bin/bash
exit `curl -sL -w "%{http_code}\\n" "http://mymachine" -o /dev/null`
--8<--
and then connect it to Monit like this:
--8<--
check process apache with pidfile /var/run/apache.pid
start program = ...
stop program = ...
check program myhttptest with path /usr/local/bin/myhttptest.sh
if status == 502 then restart
depends on apache
--8<--
Another option is to use the generic send/expect test to write simple HTTP check and test the 502 response - generic example from the monit manual:
--8<--
if failed host cave.persia.ir port 4040
send "Open, Sesame!\r\n"
expect "Please enter the cave\r\n"
send "Shut, Sesame!\r\n"
expect "See you later [A-Za-z ]+\r\n"
then restart
--8<--
Regards,
Martin
> --
On Oct 30, 2012, at 1:57 PM, Houssan A. Hijazi <address@hidden> wrote:
> Hi,
>
> i am on dreamhost using nginx with fastcgi, i need use monit to monitoring the nginx error, if error is 502 so restart.
>
> in my monit.log i have:
>
> HTTP error: Server returned status 502
>
> How i can see if host returned 502 error ?
>
> Thanks
>
> To unsubscribe:
> https://lists.nongnu.org/mailman/listinfo/monit-general
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general
--www.lojasnoparaguai.com.br / www.libanovivo.org--Houssan A. HijaziAnalista de Sistemas
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general--www.lojasnoparaguai.com.br / www.libanovivo.org--Houssan A. HijaziAnalista de Sistemas
--www.lojasnoparaguai.com.br / www.libanovivo.org--Houssan A. HijaziAnalista de Sistemas
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general--www.lojasnoparaguai.com.br / www.libanovivo.org--Houssan A. HijaziAnalista de Sistemas
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general--www.lojasnoparaguai.com.br / www.libanovivo.org--
Houssan A. Hijazi
Analista de Sistemas
--
Houssan A. Hijazi
Analista de Sistemas
[Prev in Thread] | Current Thread | [Next in Thread] |