Provisioning

Provisioning is a mechanism to import node and service definitions either from an external source such as DNS or HTTP or via the Horizon web UI. The Provisiond daemon maintains your managed entity inventory through policy-based provisioning.

Provisiond comes with a RESTful Web Service API for easy integration with external systems such as a configuration management database (CMDB) or external inventory systems. It also includes an adapter API for interfacing with other management systems such as configuration management.

How It Works

Provisiond receives requests to add managed entities (nodes, IP interfaces, SNMP interfaces, services) via three basic mechanisms:

Horizon enables you to control Provisiond behavior by creating provisioning policies that include scanning frequency, IP ranges, and which services to detect.

Regardless of the method, provisioning is an iterative process: you will need to fine-tune your results to exclude or add things to what you monitor.

Automatic Discovery

Horizon uses an ICMP ping sweep to find IP addresses on the network and provision node entities. Using auto discovery with detectors lets you specify services that you need to detect in addition to the ICMP IP address ping. Import handlers let you to further control provisioning.

Automatically discovered entities are analyzed, persisted to the relational data store, and managed based on the policies defined in the default foreign source definition:

  • scanned to discover node entity‚Äôs interfaces (SNMP and IP)

  • interfaces are persisted

  • service detection of each IP interface

  • node merging

Merging occurs only when two automatically discovered nodes appear to be the same node. Nodes discovered directly are not included in the node merging process.

Directed Discovery

Directed discovery lets you specify what you want to provision based on an existing data source such as an in-house inventory, standalone provisioning system, or set of element management systems. Using an import requisition, this mechanism directs Horizon to add, update, or delete a node entity exactly as defined by the external source. No discovery process is used for finding more interfaces or services.

An import requisition is an XML definition of node entities to be provisioned from an external source into Horizon. See the requisition schema (XSD) for more information.

Understanding the Process

Directed disovery involves three phases:

  • import (with three sub-phases)

    • marshal

    • audit

    • limited SNMP scan

  • node scan

  • service scan

The import phase begins when Provisiond receives a request to import a requisition from a URL. The requisition is marshalled into Java objects for processing. An audit, based on the unique foreign ID of the foreign source, determines whether the node already exists; the imported object is then added, updated, or deleted from the inventory.

If any syntactical or XML structural problems occur in the requisition, the entire import is abandoned and no import operations are completed.

If a requisition node has an interface defined as the primary SNMP interface, then during the update and add operations the node is scanned for minimal SNMP attribute information.

The node scan phase discovers details about the node and interfaces that were not directly provisioned. All physical (SNMP) and logical (IP) interfaces are discovered and persisted based on any provisioning policies that may have been defined for the foreign source associated with the import requisition.

After interface discovery, Provisiond moves to service detection on each IP interface entity.