Welcome to the Provisioning Integration Server (PRIS) for OpenNMS

Version is: BLEEDING

If you have a large network and discovery doesn’t help and you have one or multiple inventory, PRIS can help you to use this sources as inventory for your OpenNMS. The result of PRIS is the OpenNMS requisition model which can be read from OpenNMS Provisiond. It gives you several steps to integrate, enrich, transform, clean up and merge your extracted data before you start monitoring with OpenNMS.

The output from PRIS is provided as XML over HTTP or just as a file ready to read from the OpenNMS Provisioning system.

PRIS can be downloaded from the GitHub page of the project.


OpenNMS PRIS overview
Figure 1. OpenNMS PRIS overview

The components from left to right are described as followed:

  • OpenNMS Provisiond: This is the internal daemon responsible to get nodes (networked devices) into OpenNMS. Provisiond scans for SNMP information, network services and has to model the network monitoring behavior for OpenNMS.

  • Driver: The driver is the method how to present the data from PRIS to OpenNMS. It is only possible to configure one driver per PRIS instance

  • OpenNMS Requisition: The data model which has to be built inside of PRIS. This is the shared model between OpenNMS and PRIS.

  • Requisition configuration: The description of the integration of your external datasource. A requisition configuration defines which source should be used or which scripts should be applied to modify or transform the data before they are provided into OpenNMS Provisiond.

  • Mapper Script: The mapper script is the last script executed before the generated requisition goes to OpenNMS Provisiond through the driver. You can use a mapper script to enrich the requisition, remove nodes or replace OpenNMS requistion node attributes.

  • Custom Scripts: In some cases an external inventory has its own data model, e.g. OCS Inventory. The script source can be used to map the external inventory-specific model into the OpenNMS requisition model.

  • Source: This is the specific implementation retrieving the data for from your external inventory.

  • External Inventory: The inventory from which you want to import data for OpenNMS. It could be a free application like phpIPAM, idoIT, ITIL ticket system like OTRS, a simple spreadsheet or just another OpenNMS instance.

Files and Folder structure

It is recommended to extract the tar.gz content to /opt/opennms-pris. The examples and the documentation are built based on this file structure. It is possible to install PRIS in a different directory, but you have to take care about adapting the paths in this documentation.

After extracting the archive the file structure should look like this:

├── documentation (1)
├── examples (2)
|   ├── fileExample
|   ├── httpExample
|   ├── jdbcExample
|   ├── mergeExample
|   ├── ocsExample
|   ├── scriptExample
|   └── xlsExample
├── (3)
├── lib (4)
├── opennms-pris.bat(5)
├── opennms-pris.init(6)
├── opennms-pris.jar(7)
├── opennms-pris.service(8)
├── requisitions (10)
└── scriptsteps (11)
    ├── custom (12)
    └── default (13)
  1. This documentation in HTML format; if you run PRIS in HTTP mode you can access the documentation at http://<your-ip>:<port>/documentation

  2. Configuration examples for requisitions for every available source

  3. Default configuration for PRIS to run in HTTP mode on port 8000

  4. Libraries for the different sources which can be used with PRIS

  5. Start script to run PRIS on a Windows

  6. Init script for old System V systems running PRIS in HTTP mode

  7. Main application file

  8. Systemd script to start PRIS as background daemon, copy to /etc/systemd/system/opennms-pris.service

  9. Start script to run PRIS on a Linux console in foreground

  10. Configuration directory for all requisitions to integrate inventories

  11. Default folder for scripts which are used in requisition configurations to manipulate the inventory import

  12. Drop-in for your custom created scripts

  13. Drop-in for default ready to use scripts

PRIS needs at minimum two configuration files. The first is called, and controls the general behavior of the provisioning integration server. A requisition is just a directory in the application server directory requisitions and has to contain a file called The directory name is used to access the requisition.

You can create multiple requisitions using different sources, by creating a directory for each requisition with a inside. The, the requisitions directory and the start script has to be in the same folder. By default we suggest to install your PRIS archive to /opt/opennms-pris. If you want to provide the OpenNMS requisitions via HTTP from the built-in Jetty web server as a background daemon, you can use the init scripts in the root directory of PRIS.