Master and Satellite setup on Icinga2

(poon) #1

We would like to setup like below,
-Master (Master site servers) and one Satellite (Satellite site servers)
-From Master web console we should be able to view Master + Satellite server
-If Master goes down I should be able to view at least Satellite site servers from satellite web console

Here is how i setup,

  • Master (Icinga2, Icingaweb2, director)
  • Satellite (Icinga2, Icingaweb2, director)
    I have run node wizard and made Master as master and did the same on satellite to accept command and config.

But if I add a server to Satellite, i could not see it from the master :(.

(Marcel Fliegel) #2

Hey Poon,

can you share your zones.conf of your master and sattelite servers with us? The zones.conf of the client would also be very helpful.

Why do you need this special szenario. Would it be a solution to setup a HA szenarios with two master nodes? For this way I can always recommend the official icinga documentation. I have already implemented several HA scenarios with Icinga and have used the approaches and solutions from the documentations as a template.

Three Levels with Master, Satellites, and Clients

Greetings from Germany

(Roland Sommer) #3

You can have only one director and it should be installed on the master.

(poon) #4

Hi Marcel, Our Admins in the satellite wants to monitor their own servers with the console if they get disconnected from Master site. I am not sure whether I am in right direction?

(poon) #5

Hi Roland, thanks for reply. The idea is to provide permission to the Satellite admins to monitor the their satellite site servers on web console even when the Master site is not reachable. Yes, you are right, i need to re configure.

(Roland Sommer) #6

Having icingaweb on master and satellite is ok and will fit your needs.

(poon) #7

----master zone.conf—

object Endpoint “” {

object Zone “master” {
endpoints = [ “” ]

object Zone “global-templates” {
global = true

object Zone “director-global” {
global = true

—satellite zone.conf–

object Endpoint “” {
host = “”
port = “5665”

object Zone “master” {
endpoints = [ “” ]

object Endpoint “” {

object Zone “” {
endpoints = [ “” ]
parent = “master”

object Zone “global-templates” {
global = true

object Zone “director-global” {
global = true

(poon) #8

@farrowstrange, Satellite admins should be able to access the web console and monitor the clients connected to satellite, But if the Master site goes down, Satellite admins should be able to connect to the console and monitor at least their clients connected to satellite and I am fine with if the admins are not able to update/config the hosts/clients/devices. Is this achievable?


Yes, if you install the database on a separate server.
Then just install Icinga Web 2 on the satellite system and connect it to the existing database.

(Roland Sommer) #10

Just install a database server on master and sateliite each and use them locally. Same could be done for perfdata.

(Marcel Fliegel) #11

@rsx @log1c

Is this a proofed concept? Because if I’m not mistaken now, the sattelite hosts only act as a relay host and carry out the checks, or transmit them to the clients. The result of the check is then transmitted back to the master, who writes the check result to the database.
Icingaweb2 then takes the information from the database and displays it. Furthermore, commands such as rechecks, acknowlegements and downtimes are accepted via the icinga2 api on the master.

The problem would be now, if the connection to the master host is interrupted, the satellite host can no longer accept commands from the master and also report no check results. Icingaweb2 on the satellite would also not be able to transmit commands via api.
I also do not think that it is possible to operate separate databases for master and satellite hosts. Even if you replicate the database to the second site, no new check results would get into it, as this was only done by the master.

However, it might be possible to operate a second master at the second location. You would also have to run two databases for each side and icingaweb2 would be installed on both master instances.
You could run the icinga director on the master instance on your side and this would then replicate the hosts and checks to the other side.
I am not sure what will happen if the connection is lost. In this case, both databases would have different entries and the primary master on your side would not be up to date until after having run all checks again.

Please correct me if i’m wrong, i’m always happy to learn new stuff.

(Roland Sommer) #12

I have been running this deployment at one customer for more than a year now:

Master and satellites are configured the same way, except the director is running on the master only. They have MySQL and InfluxDB locally installed, as well as Apache, Icingaweb2 and Grafana. When a satellite records a check result locally it is also send to the master. As of this the satellites can be fully used locally, complete (consolidated) overview and managing at the master. Notification via postfix is done by satellite or master only.

One downside is that notifications are only seen by the sending instance, means history in Icingaweb2 is not complete.

(Marcel Fliegel) #13


As it turns out I was wrong. I would not have thought this is possible.
But I think i will test this out soon. Thanks for the explanation.

I hope @poon can do something with it.

(poon) #14

@rsx, Now, I have made few changes. I have reconfigured like this now, removed director on satellite server INBLRSR2009 and have only on master INBLRSR0009
INBLRSR0009 (icinga2, icingaweb2,director) - Ran the icinga node wizard and it’s master now.
INBLRSR2009 (icinga2, icingaweb2) - Is there any special settings to be done while I run the node wizard now?

(Roland Sommer) #15

No, just as described in the docs. Please don’t forget to manually update zones.conf on master and all satellites (best practice in german could be found here). After that run kickstart wizard inside the director.

(poon) #16

It works now, Thanks for your help guys !!