Having monitoring for dualstack connectivity in ﻿place helps a lot. Unfortunately in most cases we are running also services we want to offer dualstacked. In the past we just monitored in those cases IPv4 only or created a separate check for the same service on IPv6. This is a bit messy and I was looking for something to check services via IPv4 and IPv6. Digging my most boring search engine doesn't help much here. So I was talking with some people more involved into the core Icinga/Nagios stuff. Seems there is actually the best solution to use check_multi.

As we have the command definition for "﻿checkmultiicinga" already in place, I created a ﻿checksmtpdualstack.cmd for monitoring a dualstacked SMTP service

A simple SMTP service definition does the trick (don't forget '﻿address6' in host definition)

define service{
use generic-service ; Name of service template to use
host_name localhost
service_description SMTP
check_command check_multi_icinga!'check_smtp_dualstack.cmd'!'-r 1+2+4+8'
}

Okay .. that looks nice, but only at the first view. Imagining what we are actually running as service checks, it seems we just need for every unique service check a new cmd-file for check_multi as I didn't found a way to generalize the whole stuff yet.

Does anybody know a way to pass commands for check_multi via service definitions? Something like: