Icinga2 check_http fails to open socket

configurationicinga2monitoring

I'm attempting to use icinga2 to make sure certain "canary" web pages are being served correctly. The following command works just fine in the terminal:

/usr/lib64/nagios/plugins/check_http -f follow -H target -u /tomcat_test
HTTP OK: HTTP/1.1 200 OK - 9381 bytes in 0.446 second response time |time=0.446154s;;;0.000000 size=9381B;;;0`

If I create a custom rule with this pattern, the custom variables are correct on screen, but the check fails with the error

Name or service not known
HTTP CRITICAL - Unable to open TCP socket`

What's causing the failure when the following is put into production?

object CheckCommand "check_hosted_pages" {
    import "migration-check-command"
    command = "/usr/lib64/nagios/plugins/check_http -f follow -H $vars.fqdn$ -u $vars.page$"
}

apply Service "check_hosted_pages" for (page in host.vars.WEBPAGES) {
    import "generic-service"
    display_name = "Web pages"
    check_command = "check_hosted_pages"
    vars.fqdn = host.name + "." + host.vars.DOMAIN
    vars.page = page
}

Best Answer

After some trial and error, the answer turned out to be a syntax problem in the check command.

command = "/usr/lib64/nagios/plugins/check_http -f follow -H $vars.fqdn$ -u $vars.page$"

should have been

command = "/usr/lib64/nagios/plugins/check_http -N -H $fqdn$ -u $page$"
Related Topic