Check results for another host

I have a host which collects backups for other hosts.
On this backup host I am running checks to validate the backups (e.g. when was the last backup, how big was it etc.).
What options do I have the submit this check results to icinga2 so that the results are associated with the host from which the backup was pulled.

e.g. I have the following hosts:
HOST-A
HOST-B
HOST-C

All of them have icinga2 agent up and running and submitting checks → everything works as expected.
HOST-A is collecting and validating backups from HOST-B and HOST-C
I would like to have a service entry BACKUP on HOST-B and HOST-C which shows the status of the backup that is run and checked on HOST-A.

In the past, with icinga1, I used nsca and a script on HOST-A that was running all the backup checks and submitting it via nsca to the icinga1 server with the proper host&service names associated.

What options do I have with icinga2?
a) centrally configure the checks with icinga2 director so that they are executed on HOST-A, even if the check provides a result for a service on HOST-B
b) have a script on HOST-A that submits the results via icinga API for HOST-B and HOST-C
c) use the HOST-A agent api to submit the results for HOST-B and HOST-C

Which options are possible? Which options am I missing?
Do you have such monitoring scenarios too and how do you solve them?
Thanks.

Kind regards
KoS

Most simple solution: have a check assigned to Host-B and Host-C but which are executed on Host-A by setting this one as command_endpoint.

Thanks @dgoetz for your suggestion. That really sounds like what I am looking for. Unfortunately I couldn’t find the option in the director. Am I looking at the wrong place or is this not configurable via icinga director?

I did only a quick survey - but maybe this thread helps: Documentation for Distributed Monitoring with Director? - #21 by hewithaname

There are some screenshots of director with command_endpoint setting - but I didn’t a deep dive into it - sry. maybe it helps?

A better version of that thread can be found on my blog. I replicate everything learned in a lab environment to make it easier to understand

Thanks @shake-spear Unfortunately it looks like “command endpoint” setting is only available on a host-base and not per service. At least in director. So it looks like I will have to find another solution :frowning:

@hewithaname thanks. But I do not see how your blog entry is related to my question?

oh too bad - looked promising at first glance

While there is no UI elements it is possible to set it using the CLI.

icingacli director service set SERVICENAME --command_endpoint ENDPOINT

But this requires the endpoint to exist in the Director, so you need to manually create it instead of using the “agent = yes” mechanismen for the host you want to use as endpoint.

Thanks @dgoetz
hmm… i think than it would be more straightforward for me if I use a locally ingested check result on the backup host, same as I had it before with nsca.

I wasnt sure either as I did not have time to read through your issue. Mainly just posted that so that if was close to or the answer to your issue, you would also have a much more detailed explanation :slight_smile:

In the end I wrote a small script that runs my different checks on the local machine and ingests them to the main server via the Icinga API. That why I can target the passive check results for any host & service combination that I need.
Thanks all for helping on that issue.