Skip to main content
Version: ✨ 23.10

Update services dynamically

Overview

It is possible to modify certain parts of a service's configuration dynamically. This feature is especially useful if certain service configurations need to change frequently based on different conditions. For example, you may want to switch between various notification configurations for multiple services when a service is part of a specific group.

To configure such dynamic updates, you must create rulesets that filter services by conditions based on service/host properties and access groups.

Currently, the following service fields can be updated:

  • Service Template
  • Service Severity
  • Service Macros
  • Notifications:
    • Enable/Disable
    • Options (down, unreachable, recovering, etc.)
    • Notified Contacts
    • Notified Contact Groups

To view all existing rulesets or add a new one, navigate to Configuration -> Services -> Service Configuration Rules.

Rulesets

On the list page, you will see:

  • 1 a list of all current rulesets
  • 2 options to filter the list: - filter by rule name - filter by macro names (macros to set on the service) - filter by contactgroups (to set on the service) - filter by contacts (to set on the service) - filter by status (enabled/disabled) - filter by access groups (for admin)
  • 3 options to paginate the list
  • 4 a button to add a new ruleset
  • 5 a button to simulate all rulesets and to analyze which services will be updated
  • 6 a button to apply all rulesets manually
  • 7 the possibility to [reorder rules](./updating-services-dynamically#order-rulesets)

Create a new ruleset

To create a new ruleset, click 4 + Add Rule above the list.

In the sidebar that opens, enter the following information:

Add Rule

General

  • 1 enter a descriptive name for the ruleset
  • 2 (optional) enter a description for the ruleset
  • 3 select the access groups for the rule; only services which are accessible by the selected access groups will be affected, and only users with access to all selected access groups will be able to interact with the rule

Set Service Fields

Each field is optional; provide a value only if you want to set the value directly on the services.

Fields left empty have no effect on matched services.

  • 4 choose a service template
  • 5 choose a severity

6 Set Service Macros

You can also configure service macros, which will be set on matched services.

To add a new macro, click the + button next to the label.

Set Notification Options

Each field is optional; provide a value only if you want to set the value directly on the services.

Fields left empty have no effect on matched services.

  • 7 enable or disable notifications
  • 8 choose the desired notification options to specify when a notification should be sent

9 Contacts

Setting contacts is optional

Select contacts that will be assigned to matched services. When Incremental is checked, selected contacts are added to services; when unchecked, selected contacts are overwritten on services.

  • 11 Contactgroups

Setting contactgroups is optional

Select contact groups that will be assigned to matched services. When Incremental is checked, selected contact groups are added to services; when unchecked, selected contact groups are overwritten on services.

12 Define Conditions

At least one condition is required

Define the conditions used to match the services you want to update.

To add a new condition, click the + button next to the label.

Add Rule

When adding a new condition, a dialog will appear. In this dialog, provide the following information:

  • the host/service property to check
  • the operator to use for matching the value
  • the value of the selected property to check against the service
info

When a service matches *all defined conditions, it will be affected by the ruleset and updated.

You can combine as many conditions as you like, but ensure that conditions are strict enough to avoid matching unwanted services.

tip

Remember that, in addition to the conditions, the selected access groups are also part of the conditions. This behavior ensures that only services from a certain organization are affected by the ruleset (MSP compliance).

Special Conditions

The following combinations allow for more specific configuration:

  • property host address with operator match cidr to check if the host address belongs to a certain subnet
  • property host address with operator in range to check if the host address is inside a certain ip range
  • property host macro or service macro

Match cidr

When you filled in all required rule information and defined the conditions, you can save the the rule.

You can always edit your rule afterward.

Order Rulesets

The order of rules has a significant effect when applying the rules.

Rules are applied from top to bottom in the displayed order, so keep this behavior in mind if multiple rules affect the same services. One rule may overwrite fields set by another rule.

To reorder your rules, drag and drop a rule by grabbing the icon at the beginning of a row.

Test your rulesets

Before applying your rulesets directly, it is recommended to test them to identify any misconfigured rules or services that might be incorrectly updated.

To do this, click 5 Simulate Rules to test all available rules (only enabled ones), or simulate a single rule by hovering over it and clicking the simulate button.

danger

Simulating only one rule won't inform you of any conflicts with other rules!

A dialog will display the simulation results.

If one or more rules conflict, a special view appears at the top of the simulation results, detailing the conflicts.

Conflicts

A special orange entry appears in the simulation results when conflicts are detected. The information is as follows:

  • 1 the header contains details about the number of conflicting rules and services
  • 2 clicking the header opens a detailed view with a list of conflicts grouped by field
  • 3 the Field column shows the service field in conflict
  • 4 the Rule column and 5 Value column indicate the value set by each rule
  • 6 the Services column lists all services affected by the conflict (Host name - Service name)

Now, when you apply the rule(s), the services will be updated according to the defined rules.

How to Deal with Conflicts

If you encounter conflicts during simulation, you may decide to adjust rule configurations or leave them as is. Keep in mind that rule application relies on order. For example, if multiple rules affect a service, it may not be necessary to adjust a rule if the last value applied is the desired one.

Using the simulation conflict detail view during simulation helps you identify conflicting rules and view different values set for a field.

To resolve conflicts, you have several options:

  1. Use more specific conditions on conflicting rules to prevent overlap
  2. Reorder your rules so that the preferred value is always applied last
  3. Leave the rules as they are if the final value already meets your requirements
tip

We recommend preventing or resolving conflicts whenever possible. Handling conflicts can be complex, as you need absolute clarity on the final value that will be set on a service.

When many conflicts exist across different rules, this process can become confusing and hard to estimate.

Applying Rulesets

By default, all enabled rules are applied every hour.

To apply rules manually, click the 6 Apply Rules button above the list. After applying, ensure that you export the corresponding poller configurations for your rules to take full effect.

Other Actions

Actions

When hovering over a rule in the list, additional actions are available:

  • 1 enable/disable the rule; a disabled rule has no effect when rules are applied
  • 2 delete the rule
  • 3 duplicate the rule
  • 4 simulate the rule