Tested with Nagios Core 3.3.1 on OpenBSD 5.1. AMD64
Check for redirection on www.domain.com:
/usr/local/libexec/nagios/check_http --hostname=www.domain.com --expect="HTTP/1.1 301 Moved Permanently"
Check for HTTP Status 401 Unauthorized on https://portal.domain.com:
/usr/local/libexec/nagios/check_http --hostname=portal.domain.com --ssl --expect="HTTP/1.1 401 Unauthorized"
Check for the presence of the string “Type your user name and password.” on http://login.domain.com/ and https://login.domain.com and follow redirection:
/usr/local/libexec/nagios/check_http --hostname=login.domain.com --string="Type your user name and password." --onredirect=follow /usr/local/libexec/nagios/check_http --hostname=login.domain.com --ssl --string="Type your user name and password." --onredirect=follow
Check for the presence of the string “XenApp” on http://apps.domain.com/ and https://apps.domain.com/:
/usr/local/libexec/nagios/check_http --hostname=apps.domain.com --string="XenApp" /usr/local/libexec/nagios/check_http --hostname=apps.domain.com --ssl --string="XenApp"
Check for the presence of the string “MySomething” on http://app.domain.com/app1/ and https://app.domain.com/app1/:
/usr/local/libexec/nagios/check_http --hostname=app.domain.com -u /app1/ --string="MySomething" /usr/local/libexec/nagios/check_http --hostname=app.domain.com --ssl -u /app1/ --string="MySomething"
For other check_http options examine the output of:
/usr/local/libexec/nagios/check_http --help
Define the following command:
define command { command_name check-url command_line $USER1$/check_http $ARG1$ $ARG2$ $ARG3$ $ARG4$ $ARG5$ $ARG6$ $ARG7$ $ARG8$ }
Define a service using the arguments from the by hand examples above:
define service { use local-service-norenotify host_name localhost service_description www.domain.com http redirect check_command check-url!--hostname=www.domain.com!--expect="HTTP/1.1 301 Moved Permanently" }
Seperate each argument with a “!”. Replace localhost with a placeholder hostname.
You can probably get away with check-url!all_arguments_without_!_separator, but this was not tested.