[Pkg-nagios-devel] Bug#423461: http.cfg/check_http flawed arguments (-H/-I confusion)

Josip Rodin joy at debbugs.entuzijast.net
Fri May 11 23:44:14 UTC 2007

On Sat, May 12, 2007 at 01:34:55AM +0200, Josip Rodin wrote:
> Package: nagios-plugins-basic
> Hi,
> The config file change provided in #292124 had a bug: it gave the IP address
> ($HOSTADDRESS$) to the check_https command in both the -I and -H parameters.
> Since the meaning of the -H parameter is to modify the Host: HTTP header,
> putting an IP address in it is fairly clearly nonsensical. Instead,
> the *name* should be put inside; the name of the virtual host.
> The argument passed to -H should be $HOSTNAME$ instead.

I realized now that, oddly enough, Nagios documentation is not clear on
this. http://nagios.sourceforge.net/docs/2_0/xodtemplate.html#host says:

host_name: 	This directive is used to define a short name used to
		identify the host. It is used in host group and service
		definitions to reference this particular host. Hosts can
		have multiple services (which are monitored) associated with
		them. When used properly, the $HOSTNAME$ macro will contain
		this short name.

alias: 	This directive is used to define a longer name or description used
	to identify the host. It is provided in order to allow you to more
	easily identify a particular host. When used properly, the
	$HOSTALIAS$ macro will contain this alias/description.

address: 	This directive is used to define the address of the host.
		Normally, this is an IP address, although it could really be
		anything you want (so long as it can be used to check the
		status of the host). You can use a FQDN to identify the host
		instead of an IP address, but if DNS services are not
		availble this could cause problems. When used properly, the
		$HOSTADDRESS$ macro will contain this address. Note: If you
		do not specify an address directive in a host definition,
		the name of the host will be used as its address. A word of
		caution about doing this, however - if DNS fails, most of
		your service checks will fail because the plugins will be
		unable to resolve the host name.

Which is to say - there is no really exact way for a plugin check to know
which variable is right for the Host: header, because we don't know whether
people put random garbage in their host_name/alias variables. For all we
know, they may be using domain names, rather than IP addresses, even though
it's not recommended. The problem is in those variable names, really - their
names mean something, but their value doesn't have to.

Nevertheless, I think you should try changing the default to use either
$HOSTNAME$ or $HOSTALIAS$, and see if there's fallout.

If necessary, the fallback procedure would be to add a separate set of
checkcommands which use the above variables in a more layered manner.

     2. That which causes joy or happiness.

More information about the Pkg-nagios-devel mailing list