Page 1 of 1
Monitoring Web Virtual Hosts
Posted: Fri Apr 20, 2018 9:59 pm
by miketartaglia
Below is the sample config I am using to try to monitor a web site. From all my reading I have done, I think this is the right way, however, when verifying the config file (websites.cfg) it doesn't like the check_http -H in the file. I am using Nagios Core 4.1.1. Any help would be appreciated.
Code: Select all
define host{
use generic-host ;Inherit default values from a template
host_name website ; The name we're giving to this host
alias http://www.website.com ; A longer name associated with the host
address http://www.website.com ; IP address of the host
max_check_attempts 3
contact_groups admins
#hostgroups allhosts ; Host groups this host is associated with
}
define service{
use generic-service ; Name of service template to use
host_name website
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use generic-service ; Name of service template to use
host_name website
service_description HTTP
check_command check_http -H http://www.website.com
notifications_enabled 0
}
Re: Monitoring Web Virtual Hosts
Posted: Sat Apr 21, 2018 4:48 pm
by mcapra
We would need to see your
command definition for the
check_http command to say whether or not this syntax is correct. Remember, the
check_command directive of your
service definitions references a
command definition; Not an actual plugin.
What I suspect is happening is your
check_http command definition is already accounting for the host's name via either the -I or -H flag of the check_http plugin. Here's the default command definition (installed via the
make install-config step of the
official installation documentation) for the
check_http command:
Code: Select all
# 'check_http' command definition
define command{
command_name check_http
command_line $USER1$/check_http -H $HOSTADDRESS$ $ARG1$
}
Where the
$HOSTADDRESS$ macro is inherited from the
service definition's parent
host definition. Using the example host/service definitions you provided compared against the default
check_http command definition:
Code: Select all
define host{
use generic-host ;Inherit default values from a template
host_name website ; The name we're giving to this host
alias http://www.website.com ; A longer name associated with the host
address http://www.website.com ; IP address of the host
max_check_attempts 3
contact_groups admins
#hostgroups allhosts ; Host groups this host is associated with
}
define service{
use generic-service ; Name of service template to use
host_name website
service_description HTTP
check_command check_http -H http://www.website.com
notifications_enabled 0
}
If your
command definition for
check_http looks like mine, you're essentially passing the
-H argument twice: Once via your command definition, then once again via your service definition's check_command directive. Using the above configuration, the actual command that is executed from the command-line would resolve to something like this:
Code: Select all
/path/to/check_http -H http://www.website.com -H http://www.website.com
Re: Monitoring Web Virtual Hosts
Posted: Sat Apr 21, 2018 5:29 pm
by miketartaglia
Here is the check_http part of my command.cfg file.
# 'check_http' command definition
define command{
command_name check_http
command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
}
Re: Monitoring Web Virtual Hosts
Posted: Sat Apr 21, 2018 8:41 pm
by miketartaglia
One of the reasons why I am messing around with the check_http configuration is because when the site in question goes down Nagios still thinks it's online. So I thought maybe the default website was responding because the actual website is down.
Re: Monitoring Web Virtual Hosts
Posted: Sat Apr 21, 2018 9:37 pm
by miketartaglia
I just denied access to the default website of my apache server and all my URL's that I am monitoring seem to be going to that site. This leads me to believe that the host headers aren't getting there via Nagios maybe? the sites work fine in a browser. What am I missing? Sorry for so many posts. I am new to this forum and I am still waiting for a couple posts to be approved.
Re: Monitoring Web Virtual Hosts
Posted: Mon Apr 23, 2018 3:29 pm
by tgriep
Your missing the ! Exclamation point in the check command which is used to delineate the arguments for the checks and you also do not need the http:// in the command for the -I and the -H options for the command. The check_http plugin will fill it in for you.
Edit your service check and change this from
Code: Select all
check_command check_http -H http://www.website.com
to
Code: Select all
check_command check_http!-H www.website.com
Then edit the host check and change this from
Code: Select all
address http://www.website.com ; IP address of the host
to
Code: Select all
address www.website.com ; IP address of the host
Save the changes and restart nagios and it should work for you.
If you get any errors, please post them here. Thanks.
https://assets.nagios.com/downloads/nag ... n/toc.html
https://assets.nagios.com/downloads/nag ... vices.html
Re: Monitoring Web Virtual Hosts
Posted: Mon Apr 23, 2018 3:56 pm
by miketartaglia
That worked!! Thank you so much!
Re: Monitoring Web Virtual Hosts
Posted: Mon Apr 23, 2018 4:34 pm
by tgriep
Your welcome. Glad to help. I'll mark the post as solved and lock it. Feel free to open a new post for any other questions in the future.