Re: Only one alert

David Jones via This is the general mailing list for monit <[email protected]>
Newsgroups gmane.comp.monitoring.monit.general
Message-ID <DM6PR19MB2233F7420D30C0C5855B93CEC6BF0@DM6PR19MB2233.namprd19.prod.outlook.com>
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/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.