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 <[email protected]>
> 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" <[email protected]>
> wrote:
>
> Hi,
>
> thanks for your hint.
>
> i don't need put: depends on nginx ?
>
> Thanks
>
>
>
> 2012/11/2 Martin Pala <[email protected]>
>
>> 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" <[email protected]>
>> 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 <[email protected]>
>>
>>> Thanks, Martin
>>>
>>>
>>> 2012/11/1 Martin Pala <[email protected]>
>>>
>>>> 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" <[email protected]>
>>>> 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 <[email protected]>
>>>>
>>>>> 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 <[email protected]>
>>>>> 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
--
To unsubscribe:
https://lists.nongnu.org/mailman/listinfo/monit-general