How to check a server's services from two different servers?

I have:

  • a master_icinga_server living in the master zone
  • a http_server and a monitor_server each living in their own zone and their parent being the master zone.

What I want to do is to check basic things (disk free for example) on http_server. But I want to check whether the HTTP service on http_server is working from the monitor_server.

I’d expect something like this to work:

object Service "httpX" {
   [...]

   host_name = "http_server" # the http service should be visible under the http_server in icinga_web
   command_endpoint = "monitor_server" # monitor_server should execute the check 
   # or
   # zone = "monitor_server"
}

I have been banging my head against this problem for hours. There are some suggestions around community.icinga.com on how to solve this problem but none of them seems to work.

The problem I encounter is that icinga on monitor_server does not know an object “http_server” of type Host.

Has anybody succeeded to set something like that up? Could post a working example?

Maybe a more straight forward question: is there a way to push the definition of some object (here: Host “http_server”) from the master zone to some random other zone? How?