notifications by master, based on client checks?

This forum was archived to /woltlab and is now in read-only mode.
  • I am finding it hard to understand how notifications are done in a distributed deployment. Let's say a master and a client in a top-down config sync configuration, connection direction from master to client.

    Assuming the master sends the notifications, where should they be applied to such monitored hosts and services that are part of the client zone?

    On the master or the client?

    And what about the notification command and user definitions? Do they need to be synced to the client?

  • You'll only need notification and related object (command, period, users, user_groups) on the node which actually triggers the notification. The master will for example trigger one from a received check result from the client, hard state change and then look for configured notification objects.

    Generally speaking you could sync the notification apply rules and related objects to the client as well, but keep in mind that both zones will then send notifications - if the notification feature is enabled of course.

  • Usually, you have:

    • The notification feature enabled only at the master
    • The zones.d directory populated only at the same master
    • The hosts and services objects in that zones.d/zonename directories carry a line like vars.notification["mail"]   = { groups = [ "icingaadmins" ] }

    I personally let the masters conf.d/notifications.conf in place which evaluates this vars.notification["mail"] for every host known to the master

    (remember that the master knows objects in all zones).

    That way, the master is able to send notifications and the clients to not get replicated notifications and notification commands because they do not need them.

    On the other side, if you like to have a client to send notifications in addition to these of the master, just move the files to the masters global-templates zone and enable the feature notification at the respective client.