I recently installed a Nagios server on a new CentOS 7 virtual machine (on Virtual Box).
One of the default checks included upon installation is a check on localhost to confirm that the HTTP server is responding. (First I had to install the
check_http plugin, see previous post.) The Nagios web interface reports a warning for this check:
HTTP WARNING: HTTP/1.1 403 Forbidden - 5261 bytes in 0.001 second response time
This is unexpected, since I can request the same page in a browser, which returns the Apache Welcome page.
When I run the check manually I get the same result, as expected:
# /usr/lib64/nagios/plugins/check_http -H localhost
HTTP WARNING: HTTP/1.1 403 Forbidden - 5261 bytes in 0.001 second response time |time=0.000907s|;;;0.000000 size 5261B;;;0
I checked with curl:
# curl http://localhost
This returns the HTML source of the Apache Welcome page. It looks like it is working, right? But looking at the headers returned by the Apache server also shows
# curl -I http://localhost
HTTP/1.1 403 Forbidden
The Apache Welcome page gives some hints about this behavior:
Are you the Administrator?
You should add your website content to the directory /var/www/html/.
To prevent this page from ever being used, follow the instructions in the file /etc/httpd/conf.d/welcome.conf.
/etc/httpd/conf.d/welcome.conf file begins with the following comments and directive:
# # This configuration file enables the default "Welcome" page if there # is no default index page present for the root URL. To disable the # Welcome page, comment out all the lines below. # # NOTE: if this file is removed, it will be restored on upgrades. # <LocationMatch "^/+$"> Options -Indexes ErrorDocument 403 /.noindex.html </LocationMatch>
The Apache config is specifying that if there is no index page for the document root, return the Welcome page as an error document with a 403 HTTP status code.
Once I added a basic HTML file at
/var/www/html/index.html, Nagios returned a success message:
HTTP OK: HTTP/1.1 200 OK - 549 bytes in 0.001 second response time