Since you are launching a script from monit, how about this approach?

check program webserver_vhosts with path "/usr/local/bin/checkvhosts.sh" every 
4 cycles
    if status > 0 then alert


Then in the checkvhosts.sh there could be something like this:

#!/bin/bash

VHOSTS="url1 url2 url3 url4"

ERRORS=0
for VHOST in $VHOSTS; do
  /usr/lib64/nagios/plugins/check_http -H $VHOST -t 20 -f follow -u "/" -s 
Copyright
  [[ "$?" -ne 0 ]] && ((ERRORS++))
done

exit $ERRORS


The key to what you are needing to do requires a web client that will send the 
host header to your web server.  This could be wget, curl or a number of tools 
but it's more than a simple TCP port check.

That command above looks for the word "Copyright" in the web server output so 
adjust as needed.

Obviously this is using the nrpe-plugins tool check_http so install that 
package.

________________________________
From: monit-general <[email protected]> on behalf 
of Paul van der Vlis <[email protected]>
Sent: Saturday, August 31, 2019 3:55 PM
To: [email protected] <[email protected]>
Subject: Re: Only one alert

Hello Lutz, and others,

Op 30-08-19 om 22:01 schreef Lutz Mader:
> Hello,
> the answer is no, I think.
>
>> I want to monitor several sites on the same host, both http and https,
>> but I want to get only one alert when there is a problem. Is that possible?
>
> But you can use a dummy service with multiple failed host tests.
>
> check process Server matching "sleep"
>   start program "/bin/ksh -c 'sleep 31536000 &'" with timeout 120 seconds
> #  stop program "" with timeout 120 seconds
>   if failed host mmonit.com port 80 then alert
>   if failed host google.com port 80 then alert
> :
>   if failed host yahoo.com port 80 then alert

I must say I do not understand what you are doing here.

In your example you are using sites on different hosts. I want to
monitor more sites (virtual hosts) on the same host. But when e.g.
Apache is down, I don't want to get many alerts.

> This will reduce the number of alerts, but you get an alert if one of
> the hosts is not reachable. But I prefere the remote host check for all
> hosts and use an additional tool to handle the notification requests.

I am also executing a script.

Can you tell more about what you do to avoid getting many alerts?

With regards,
Paul



--
Paul van der Vlis Linux systeembeheer Groningen
https://www.vandervlis.nl/

Reply via email to