Clarify provisioning workflow

Description

During the time we have many possibilities adding nodes in OpenNMS. There are basically two main concepts to get nodes into OpenNMS

Discovery:

  • IP addresses from IP ranges are reachable with ICMP generate a new suspect event which will trigger a workflow to create a Node in OpenNMS

  • The new suspect event can be handled from Capsd or Provisiond to detect running services on the new node.

Capsd (which seems deprecated to me) provides the following features:

  • scans the interface table using a MIB-II SNMP agent

  • scans for IP interfaces using a MIB-II SNMP agent

  • trys to figure out which protocols are running on an IP address

  • mechanism to elect a useful node label (User Defined, DNS lookup, SMB (NetBIOS), SNMP, IP Address)

  • can merge nodes if he finds two reachable IP adresses and figures out they belong to the same node based on the SNMP agent information

Provisiond

  • in OpenNMS 1.8 a provisioning system is introduced which allows to model a minimal requisition node. Based on the requisition node there are different possiblities to enhance the requisition node with discovered information and build an OpenNMS node

  • scanning the interface table in the same way capsd does using MIB-II SNMP agents

  • scanning for additional IP interfaces in the same way capsd does using MIB-II SNMP agents

  • discovering services provided on IP interfaces using detectors

  • additional to capsd allows to apply policies to control the behavior for (managing IP interfaces, set surveillance categories and control interface data collection)

  • requisition nodes are completely modeled and can be described in XML

  • provisiond can read this requisition model from external sources and synchronize them automatically with given schedules.

Provisiond has somehow similar functionality than Capsd but doesn't cover the whole feature set. Provisiond doesn't provide:

  • node label election

  • node merging

We have to decide how to deal with this two features, should they be in Provisiond or can we easily remove them. IMHO, The goal should be to remove Capsd code completely from the source and concentrate on the workflows with Provisiond.

By starting using Provisiond instead of Discovery/Capsd we introduced some inconsistencies in the workflow how to manage nodes in OpenNMS. Here are the ones I have figured out:

  • If you run Provisioning you cannot use the asset page anymore. Any change will be overwritten by a provisioning run. The minimum change I would suggest in a first step, turn of the availability to edit the asset page if the node is provisioned and just show the data. Give a hint to edit the asset information in the provisioning. In a next step there could be a possibility to redirect to the asset editor page for the requisition node.

  • The geographical map resolves the geo-location and writes this data to the asset table. If you change an address in a requisition node, the geo-location map will not update the geo-data. The update for geo-location should be a part of the provisioning.

  • If you define requisition like DNS or HTTP, it should not be possible to change the imported data through the WebUI, cause they will be overwritten in the next import step, the same is for the Quick-Add workflow which should not work for external systems.

  • Clarifying and consistent terminology for provisioning e.g. requisition, requisition group, provisioning group, foreign source, foreignid, service, monitor, detector, poller. It's even quite hard for native english people and not to mention non-native speakers.

  • The WebUI should use the Provisiond ReST API so we have the same behavior like people using it for integration

  • Describing fully the provisiond ReST API and clarify different behavior for insertNote, putNode, addNote, etc.

Acceptance / Success Criteria

None

Lucidchart Diagrams

Activity

Show:

Bonnie Robinson March 1, 2022 at 8:01 PM

, we updated the provisioning docs last year. Can we close this Jira? Would you like to review the Provisioning docs to make sure they cover the changes you list in the description? (Some of them may no longer be valid, as I don't think we need to talk about differences between 1.8 and 1.7.)

Alejandro Galue May 28, 2015 at 9:48 AM

Hello Jan, have you read the following document ?

http://www.opennms.org/w/images/c/ca/ProvisioningUsersGuide.pdf

Also, you don't need the "Quick-Add" functionality, that was created for a special use case which I'm sure it is not relevant for the rest of the world.

Provisiond is going to behave like Capsd for full auto-discover, in other words, if you use the new interface form, that will be processed by Provisiond (BTW, orders of magnitudes faster than Capsd), and the equivalent of the old capsd-configuration.xml for full auto-discover will be the default-foreign-source.xml.

Jan Papež May 28, 2015 at 4:55 AM

I'm really frustrated when i'm adding new node using new provisioning style. The Quick-Add functionality is too verbose. I liked /opennms/admin/newInterface.jsp?action=new form. But if Capsd is deprecated, I'm trying to live with the new provisioning requisitions style. I add node manually to specific Requisitions group, but it's quite annoying, because it needs too many clicks and remembering to not forget do Synchronize.

"Clarifying and consistent terminology for provisioning e.g. requisition, requisition group, provisioning group, foreign source, foreignid, service, monitor, detector, poller. It's even quite hard for native english people and not to mention non-native speakers."

I agree with Ronny Trommer. OpenNMS became too complicated to understand and control, so I made me think about switching to another NMS software....

Alejandro Galue March 21, 2014 at 1:45 PM
Edited

Michael,

I've fixed the Wiki for the Upgrade Tools based on what I tested. You can send the request to synchronize all the requisitions you have at the same time. Of course, it will take time to import and scan all of them, but OpenNMS will be able to handle it. What you cannot do is to try to synchronize the same requisition more than once (like hitting the Import button several times).

Michael Batz March 2, 2014 at 5:57 AM

It would be great to get some more informations on what is mentioned here:

http://www.opennms.org/wiki/Upgrade_Tools_for_1.12#What_happen_with_the_fix_for_the_MAC_Addresses_issue_.3F

"Synchronize all the requisitions one by one, and be sure to wait until each requisition was successfully updated before start synchronizing the next one. This is important because by design, OpenNMS can do one import operation at a time. This process could take time. "

Details

Assignee

Reporter

Labels

Doc Backlog Status

Doc Backlog Grooming Date

Components

Affects versions

Priority

PagerDuty

Created March 1, 2014 at 2:05 PM
Updated August 4, 2023 at 1:46 AM