SNAMP Overview

SNAMP is a software system for monitoring, distributed tracing and elasticity management of components in IT infrastructure. It is oriented on Operations and DevOps engineers.

SNAMP can be interpeted as SCADA for software components in IT landscape.

Architecture Overview

Gateway exposes management information to monitoring & management tool using a unified management protocol. Therefore, you can manage & monitor different managed resources with a single tool.

Resource Connector allows to obtain sensitive monitoring data from managed resource using some of the supported protocols (SNMP, JMX, SSH etc.). Managed resource is a unit of monitoring and can be represented by software or hardware component.

Resource Group is a group of managed resources. For example, cluster of some application can be represented as a group of resources and each resource represents instance of the application inside of cluster. Resource Group can specify some configuration that can be used as template configuration of resources in the group.

Supervisor controls groups of resources and provided summary metrics. Supervisor is responsible for automatic scaling of the group, health status control and automatic resource discovery.

SNAMP Web Console is a web interface for SNAMP available through modern web browsers which provides UI for monitoring with charts, topology of components using tracing information, configuration of elasticity management. It also provides configuration of gateways, resource connectors, resource groups and supervisors.

Let's take a look at this example:

Configuration Example

Example configuration contains following entities:

In this configuration, Grafana can monitor Java Applications, Linux Server and router using data stored in unified way in InfluxDB by SNAMP. Microsoft SCOM can monitor Java Applications, Linux Server and router via single SNMP protocol.

Using of third-party monitoring & management tools is just an offered feature of SNAMP. You can use only SNAMP Web Console for visualization of all necessary monitoring information.

Full set of supported management protocols listed here and here.

Concepts

SNAMP functionality based on the four main components:

The following diagram shows how the monitoring data flows through SNAMP main components:
Information Flow

The following diagram shows relationship between SNAMP main components:
Relationship

Managed Resource

Managed resource is an object of monitoring in your IT landscape. The possible (but not limited to) types of managed resources:

Managed resource is accessible with SNAMP if and only if that is connected via Resource Connector.

Resource Connector

Resource Connector is a software component used to connect managed resource to SNAMP via specific management protocol. Information model of each connected resource consists of the following entities (called management features):

Resource Connector may support all these features or some of them. Supported set of features depends on type of the Resource Connector. For example, SNMP Resource Connector doesn't support operations due to SNMP protocol limitations.

Resource Connector has the following characteristics:

Resource connector may be a member of the group. It is allowed to configure resource connector without membership. If it is a member of the group then configuration will be inherited from configuration of the group.

Resource connectors can be divided into two logical categories:

Attribute

Attribute describes the atomic metric of the connected managed resource. Each connected managed resource may have one or more attributes.

Attribute has the following characteristics:

The attribute configuration and attribute name might be specified by the SNAMP administrator. Other characteristics depends on the connected managed resource and cannot be changed by administrator.

Examples of attributes:

Event

Event (or notification) is a maintenance message emitted by managed resource. Events carry information about some certain changes in the managed resource.

Event has the following characteristics:

The event configuration, category and severity level (optionally) may be specified by the SNAMP administrator. Other characteristics depend on the connected managed resource and cannot be changed by administrator.

See Management Information Model for detailed information about severity level and notification content.

Examples of notifications:

Operation

Operation is a maintenance action that may be applied to the managed resource.

Operation has the following characteristics:

The operation configuration may be specified by SNAMP administrator. Other characteristics depend on the connected managed resource and cannot be changed by the administrator.

Examples of operations:

Health check

Health check provides information about state of the managed resource. Implementation of health checks depends on the type of Resource Connector and doesn't require any configuration parameters. Health status divides into two category:

Health check contains detailed information about malfunction.

Resource Group

Resource Group can be used to unite similar set of resource connectors. There are two possible ways to define resource group:

Resource Group has the following characteristics:

Gateway

Gateway is a software component used to expose management information of connected managed resources to monitoring & management tools using the specific management protocol.

Gateway uses resource connector to extract management information and expose one to the outside world. Gateway may expose all configured management features or some of them. That depends on type of the Gateway. For example, you have configured SNMP Gateway and JMX Connector. JMX Connector supports operations, but SNMP Gateway can't provide access to these operations due to SNMP protocol limitations.

Gateway has the following characteristics:

Some of gateways are useful even if you have no plans to use third-party monitoring tools. For example, InfluxDB Gateway can store monitoring information collected from all resource connectors into database for further retrospective analysis using BigData tools. Another example is SMTP Gateway that is responsible for sending e-mails to recipients when one of resource connectors reports important notifications or health checks.

Supervisor

Supervisor is important SNAMP component responsible for supervision of resource groups. It provides the following capabilities:

A set of supported capabilities depends on the type of supervisor. For example, default supervisor doesn't provide Discovery service.

Supervisor has the following characteristics:

Supervisor should be assigned to the group of resources defined implicitly or explicitly. Administrator can choose the necessary type of supervisor to be associated with the group. By default, SNAMP assigns default supervisor for each explicitly defined group. Implicitly defined group has no supervisor by default.

Technology Stack

SNAMP is constructed on top of Apache Karaf and requires Java Runtime Environment.

Technology Stack

From the Deployment Viewpoint, SNAMP is a set of OSGi bundles packaged into KAR (Apache Karaf Feature archive) archives.

Additional topics: