Table of Contents

Nagios notes

Check status of http(s) site

Tested with Nagios Core 3.3.1 on OpenBSD 5.1. AMD64

By hand

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

From Nagios

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.