You can print (mirror) in the status script's output whatever you want (even the response code) - the output will be attached to the event. The exit status however need to match the test - your script returned 0, but the test was checking for 502 => it didn't match
On Nov 8, 2012, at 7:22 PM, "Houssan A. Hijazi" <[email protected]> wrote: > Hi, > > thanks, Martin.. but i need get the output from bash script. > > Thanks > > 2012/11/8 Martin Pala <[email protected]> > Your script prints the http response code to standard output - but monit > checks only the exist status, not the output. > > You need to modify the script to return the http code like this: > > --8<-- > #!/bin/bash > exit `curl -sL -w "%{http_code}\\n" "http://www.mysite.com" -o /dev/null` > --8<-- > > > On Nov 8, 2012, at 12:57 PM, "Houssan A. Hijazi" <[email protected]> > wrote: > >> Hi, >> >> >> my monit configuration: >> >> check program webserverresponse with path /home/myhome/webserver_response.sh >> if status == 502 then exec "/etc/init.d/nginx restart" >> if status == 502 then alert >> depends on nginx >> >> webserver_response.sh content: >> >> #!/bin/bash >> curl -sL -w "%{http_code}\\n" "http://www.mysite.com" -o /dev/null >> exit $? >> >> output: >> user@ps90700:~$ ./webserver_response.sh >> 502 >> -- >> user@ps90700:~$ ./webserver_response.sh echo $? >> 502 >> >> and in log file: >> >> [PST Nov 8 03:53:29] debug : 'webserverresponse' status check succeeded >> >> thanks, Martin >> >> >> >> >> >> >> 2012/11/8 Martin Pala <[email protected]> >> It seems that the test script doesn't return the 502 then. >> >> Can you provide output of this?: >> --8<-- >> /home/myhome/webserver_response.sh >> echo $? >> --8<-- >> >> >> >> On Nov 6, 2012, at 12:55 PM, Houssan A. Hijazi <[email protected]> >> wrote: >> >>> Hi, >>> >>> in a logs i have always: >>> >>> [PST Nov 6 03:53:13] debug : 'nginx' zombie check succeeded >>> [status_flag=0000] >>> [PST Nov 6 03:53:13] debug : 'nginx' succeeded connecting to >>> INET[www.mysite.org:80] via TCP >>> [PST Nov 6 03:53:13] debug : 'nginx' succeeded testing protocol [HTTP] >>> at INET[www.mysite.org:80] via TCP >>> [PST Nov 6 03:53:13] debug : 'webserverresponse' status check succeeded >>> >>> is always succeded the status of webserverresponse. My configuration are ok? >>> >>> >>> Thanks >>> 2012/11/6 Martin Pala <[email protected]> >>> Hi, >>> >>> can you run monit in debug mode ("-v" option) and check the logs? >>> >>> Regards, >>> Martin >>> >>> >>> On Nov 5, 2012, at 6:09 PM, Houssan A. Hijazi <[email protected]> >>> wrote: >>> >>>> 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 >>> >>> >>> -- >>> 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 > > > -- > 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
