monit-general
[Top][All Lists]
Advanced

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

Re: Check that text does not exist on a page on a name-based virtual hos


From: Mark Feeney
Subject: Re: Check that text does not exist on a page on a name-based virtual host
Date: Mon, 4 Oct 2010 08:30:35 -0400

Hi, Martin.

Thank you for your reply.  I can probably find a way to make the
second example work, but what would be ideal for my particular case
would be a "negative expect".  i.e. something like this:

if failed host cave.persia.ir port 4040
   send "Open, Sesame!\r\n"
   expect anything but "sorry, the cave door is broken!"
then restart

I didn't see anything in the docs supporting this idea with
send/expect.  Wondering if I missed something.

Related question: does the regex library monit uses support
negative-lookahead matching?

Thanks,


Mark.



On Mon, Oct 4, 2010 at 6:51 AM, Martin Pala <address@hidden> wrote:
> Hi,
>
> you can use the "hostheader" option with the http protocol test (requires 
> monit 5.1.1 or newer) - unfortunately this syntax doesn't support the 
> "content" check.
>
> Example:
> --8<--
> check host production with address 127.0.0.1
>    if failed port 9999 protocol http request "/some_page" hostheader 
> "foo.com" then alert
> --8<--
>
> We should consolidate the url test to support hostheader + the http protocol 
> test to support content check.
>
>
> As a workaround, you can define the whole HTTP request and expected response 
> using generic send/expect test. Example:
> --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 2, 2010, at 10:28 PM, Mark Feeney wrote:
>
>> Greetings.
>>
>> First: I love monit.  Excellent tool.  Very simple and effective.
>> Thanks to all involved.
>>
>> I have come up with something I can't figure out how to monitor,
>> though:  I want to check that a web page does not contain certain text
>> and the page is on a name-based virtual host.
>>
>> This almost works for me:
>>
>> check host production with address 127.0.0.1
>>    if failed url
>>        http://foo.com/some_page
>>        and content != 'BAD'
>>        then restart
>>
>> However, it's incorrect for me to use "http://foo.com"; since it's a
>> cluster, so restarting the current server isn't necessarily going to
>> help.
>>
>> What I want is something like:
>>
>> check host production with address 127.0.0.1
>>    if failed url
>>        http://127.0.0.1:9999/some_page
>>        use host header "foo.com" # not real syntax
>>        and content != 'BAD'
>>        then restart
>>
>> Is there a way to achieve this?  proto http and SEND/EXPECT seemed a
>> possibility, but I'm not sure how to write the EXPECT part.
>>
>> I'm using monit 4.10.1.
>>
>> Thanks,
>>
>>
>> Mark.
>>
>> --
>> To unsubscribe:
>> http://lists.nongnu.org/mailman/listinfo/monit-general
>
>
> --
> To unsubscribe:
> http://lists.nongnu.org/mailman/listinfo/monit-general
>



reply via email to

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