monit-general
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Monit http error status


From: Houssan A. Hijazi
Subject: Re: Monit http error status
Date: Mon, 5 Nov 2012 15:09:11 -0200

Hi,

my config file:

check process nginx
  with 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 nginx
   if 5 restarts with 5 cycles then alert
check program webserverresponse with path /home/myhome/webserver_response.sh
#   if status  == 502 then restart
    if status  == 502 then exec "/usr/local/bin/monit restart nginx"
    depends on nginx

My /home/myhome/webserver_response.sh return 502, but not work, not restart nginx.

I did something wrong?

thanks

2012/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.sh
    if status  == 502 then exec "/usr/bin/monit restart nginx"

Regards,
Martin



On 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.sh
    if status  == 502 then restart
    depends on nginx

if i run /home/myhome/webserver_response.sh in terminal it print 502 but the monit not restart.

Can you help me?

thanks

2012/11/1 Houssan A. Hijazi <address@hidden>
Thanks, Martin


2012/11/1 Martin Pala <address@hidden>
Hi,

the "check program" was added in Monit 5.3 ... you need to upgrade monit.

Regards,
Martin


On Nov 1, 2012, at 2:59 PM, "Houssan A. Hijazi" <address@hidden> wrote:

Hi,

i created the file like this:

#!/bin/bash
curl -o /dev/null --silent --head --write-out '%{http_code}\n' http://www.mysite.org

it return the http response code.

in monit configuration i do:

check process nginx
  with pidfile /dh/nginx/servers/httpd-myserver/var/logs/nginx.pid 
  start 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 nginx
   if 5 restarts with 5 cycles then alert
check program webserverresponse with path /home/myhome/webserver_response.sh
    if content == "502" then restart
    depends on nginx

When i try  start monit:

$ sudo /etc/init.d/monit start
Starting daemon monitor: Syntax error:
/etc/monit/conf.d/nginx.conf:7: Error: syntax error 'webserverresponse'

Monit version: 1:5.1.1-1

thanks


2012/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



--
--
Houssan A. Hijazi 
Analista de Sistemas
www.lojasnoparaguai.com.br / www.libanovivo.org
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general


--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general



--
--
Houssan A. Hijazi 
Analista de Sistemas
www.lojasnoparaguai.com.br / www.libanovivo.org



--
--
Houssan A. Hijazi 
Analista de Sistemas
www.lojasnoparaguai.com.br / www.libanovivo.org
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general


--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general



--
--
Houssan A. Hijazi 
Analista de Sistemas
www.lojasnoparaguai.com.br / www.libanovivo.org
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general


--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general



--

--

Houssan A. Hijazi 

Analista de Sistemas

www.lojasnoparaguai.com.br / www.libanovivo.org

reply via email to

[Prev in Thread] Current Thread [Next in Thread]