The current situation: 2 Icingas, one is ours and the other is the customer’s.
The customer’s Icinga is managed by us and is therefore not allowed to monitor itself. We have to do this from our Icinga.
So far so good.
But I have no idea how to monitor the status of the Icinga2 service on the master and the customer’s satellite from our Icinga. I only get the last working configuration back via the API and so there is never a failed configuration.
Does anyone have a suggestion on how to run ‘icinga’ externally? Sure via ssh, but is there a more elegant way to monitor the Icinga2 service status?
Even if you have already mentioned the Icinga 2 API, I would highlight it again. Still there are multiple ways to retrieve an Icinga 2’s health via the API.
Furthermore, I would advise to configure the icinga CheckCommand on the Icinga 2 to be monitored[1]. You can retrieve its status via the API’s /v1/objects/services endpoint. Same applies to the icingadb check or any other check you would use for self-monitoring.
You can exclude it from Notifications, so your customer will not get notified. ↩︎
There is one more problem with the API endpoint: you have it just for webui, but not for satellites.
We have a workaround:
Check for pending/overdue services. They stuck if the deployment has failed on satellites.
Couldn’t you define an icinga Service Check for the satellites as well, reporting to your customer’s Icinga 2 master to be monitored? Otherwise, you also have to access the Icinga 2 API of the satellites.
I’m sorry! I did not know there is a api feature for satellites.
I called the endpoint /v1/objects/apilisteners and expected to get the field config_sync_state, but was not in the answer of the api request.
We currently move from icingaIDO to icingaDB. Is that the reason for or am I wrong with my suggestion?
You can enable the feature for every node in your icinga cluster.
If you enabled it on the satellite you should be able to connect to the API on the satellite and query it’s status.