Business Services and SLA

For step-by-step configuration and monitoring instructions, see How to Configure Business Services.

Introduction

Business Services is a tool for availability monitoring of logical services. Company email, web site, server farm, call center — all are examples of logical services. Services can be combined together to define a broader logical service. For example, company email, web site, name server, and firewall can all be referred to as "Company Internet Services" and monitored for availability as a whole. If the name server goes down, the "Company Internet Services" do not function properly as a whole.

This feature can be used both for internal QA and external Service Level Agreement (SLA) monitoring.

Business Service Objects

Business Service

Business services are represented with service checks and a tree-like hierarchy of other business services. For each service in the hierarchy, NetXMS keeps track of all downtime cases so that users can request calculation of availability percentage for a required time period.

A business service contains two NXSL scripts in its configuration: one for object automatic binding and one for DCI automatic binding. These scripts can be used to automatically populate the business service with resources that require monitoring. Service checks can be automatically created and also removed if the Automatically remove objects selected by filter from this business service option (or, for DCIs, Automatically remove DCI selected by filter from this business service) is selected. The BusinessServices.Check.AutobindClassFilter server configuration variable defines which object classes automatic binding creates checks for (default: AccessPoint,Cluster,Interface,NetworkService,Node).

Service Check

A service check is a test whose result is used to define the state of the service. There can be three types of checks: DCI check, object check, and NXSL script.

A service check can have one of these statuses:

Status Description

OK

The check is passing

Failed

The check has failed, affecting the business service availability

Degraded

The object or DCI status is not Normal but is less severe than the failure threshold for this check. This state will not change the state of the business service to failed and will not affect availability percentage.

Only object and DCI checks can enter the Degraded state; script checks report only OK or Failed.

DCI Check

DCI check is based on the status of a DCI. DCI status is calculated from the status of the threshold (if it is active) and severity of the active threshold. A DCI check has its own status threshold starting from which the check is counted as failed. The threshold can be set separately for each check. If the default value is chosen, the value of BusinessServices.Check.Threshold.DataCollection server configuration variable is used.

Object Check

Object check is based on object status. An object check has its own status threshold starting from which the check is counted as failed. The threshold can be set separately for each check. If the default value is chosen, the value of BusinessServices.Check.Threshold.Objects server configuration variable is used.

NXSL Script Check

An NXSL script check either returns success (the test result is ok) or failure (the service has failed). For success, true (or the constant OK) should be returned; for failure, false (or the constant FAIL) should be returned. Additionally, the script can return a text string with the failure reason, which is interpreted as a failed check.

The following special variables are available in NXSL scripts for service checks:

  • $object — the object for which the check is executed

  • $node — the current node for which the check is executed (null if the object is not a node)

  • $service — the business service this check belongs to

  • $reason — failure reason; the script can set this variable to report why the check failed

Business Service Prototype

To avoid manually defining the same business service multiple times (for multiple clients or infrastructure items), you can create a business service prototype. The principle behind business service prototypes is similar to DCI instance discovery. There are instance discovery options and a script to filter them. For instances that pass the filter, business services are created.

In the object and DCI auto-apply scripts of created business services, information about the instance value and ID of the business service prototype are available.