The out-of-box "Hardware Rule" CMDB Identifier makes some general assumptions, and specific peculiarities of certain makes and models of devices won't work well. e.g. Name, IP or MAC address is not always unique.
This is the procedure of copying the Hardware Rule for a specific CI Class, which can then be modified to cope with those strange devices that don't fit the assumptions.
Once that has been done, the new Identifier will be used for that specific class of CI only, instead of the Hardware Rule.
An Example - Many Printers have the same Name
You may have a lot of similar devices/models that return the same default "Name" via SNMP. e.g. APC PDUs (name=RACKPDU), and Ricoh Afficio network printers (name=<model number> e.g. "MP 2550")
If 2 of those devices exist on the network, this is how the default "Hardware Rule" breaks.
- Discovery will see the 1st device, see that SNMP is open, and run the Classify and Identity probes.
- The data will include the Name and Serial number, plus network adapter information including IP Address and MAC Address of that 1st device.
- The Identification and Reconciliation Engine (IRE) will not be able to match any existing CI so will create a new CI
- Discovery now sees the 2nd device. This has the same Name (e.g. "RACKPDU"), but all the other identification data will be different.
- The Identification and Reconciliation Engine will run through each of the Hardware Rule's rules to compare what has been seen with what is already in the CMDB, in order:
- Search Serial Number table [cmdb_serial_number] for a matching serial_number,serial_number_type - No Match.
- Search the Serial Number field of the main Hardware [cmdb_ci_hardware] records - No Match.
- Search the Name field of the main Hardware [cmdb_ci_hardware] records - Match with 1st CI, not good!
- A match was made with the 1st device's CI, and that is then wrongly updated with the 2nd device's attributes.
- Every time either of those devices are re-discovered, the same CI will be updated and duplicate cmdb_ci_serial_number, cmdb_ci_network_adapter and cmdb_ci_ip_address records will be created each time, and be linked to that single main CI.
- If you have hundreds of similar devices, you end up with a real mess in those related tables. The only CI in the CMDB will randomly represent one of the devices and will regularly change attributes to match whatever was the last scanned, and no CIs will exist for all the others.
- Open the CI Class Manager: Configuration - CI Class Manager
- On the left, in the Class Hierarchy list, select the CI Class that needs a custom identifier. e.g. Hardware>Printer
- In the right column, select CI Identifiers. You will see the Hardware Rule listed in the "Identification" list.
- Click New in the header of that Identification list.
- Name your new Identifier. e.g. "Custom - Printer", and Submit.
- Back in the navigation, Open the list of Identifiers: Configuration - CI Identifiers
- Open the "Hardware Rule"
- For each of the Active records in the 'Identifier Entries' related list:
- Open the record
- Change 'Identifier' to your table name. e.g. cmdb_ci_printer
- If the 'Search on table' is Hardware:
- Note which fields are listed in 'Criterion attributes', as you're going to have to put those back in a moment. e.g. 'IP Address, MAC Address' or 'Serial number'
- change Search on table to your table. e.g. Printer.
- Add the fields you noted above back into the 'Criterion attributes'
- Right click the header, and 'Insert' to make a copy if that entry for your own identifier. (Don't save or submit or you will be modifying the Hardware Rule!)
- Open your new identifier. You will see your newly copied Identifier entries listed. At this point it is a straight copy of the Hardware Rule, and so functionally identical.
- De-activate the troublesome entries. e.g. Untick Active for the entry where the criterion is 'Name', if you've got CIs you know share the same name.
- You could also add new entries with other criteria needed to workaround the quirks of your specific device models.
If you are doing something similar to the above Printer example, where the Name rule is deactivated for Printers, then you would expect a lot of printer CIs to be created on the next discovery run, because there will be no match made with existing data. Then on the subsequent discovery run each of the individual CIs will be identified by serial number and updated correctly, because you still have the other entries in your new identifier. Non-Printers will not be affected by your change, and the Hardware Rule will continue to be used for those.
The Identification and Reconciliation engine is in the Geneva version and later, and is used by default in all new instances, but not all features used it straight away in upgraded instances.
Creating new Identifiers can have side effects. A lot of features use this for matching imported or discovered data with the existing CMDB records. Thorough testing of any discovery sources or imports is advisable on a sub-production instance after making any changes.