Create or edit a CI identification rule

Identification rules are used to uniquely identify CIs in the CMDB, as part of the identification and reconciliation process. Each table in the CMDB can be associated with a single identification rule.

Before you begin

Role required: admin, or itil_admin (on top of itil)
Note: Users with the itil role have read access to the CI identification rules.

About this task

In a CI identification rule, specify identifier entries and related entries that uniquely identify the CI. Review the following before creating identification rules:

Procedure

  1. Use the CI Class Manager:
    1. Navigate to Configuration > CI Class Manager.
    2. Select a class in the Class Hierarchy.
    3. In the sidebar on the right, select CI Identifiers.
  2. Or, navigate to Configuration > Identification/Reconciliation > CI Identifiers.
  3. Click New or open an existing rule.
  4. Complete the form.
    Table 1. Identifier form
    Field Description
    Name Name of CI identifier.
    Applies to Class that this CI identifier applies to.
    Description Description of the CI identifier.
    Independent Check box indicating that the CI identifier can identify the CI independently of other CIs.

    See Identification rules and Effective usage of CMDB Identification for more information.

  5. Right-click the form header and click Save.
  6. In the Identifier Entries related list, click New or open an existing entry to specify criteria for matching the CI.
  7. Fill in the fields, as appropriate.
    Table 2. Identifier Entry form
    Field Description
    Active Check box that specifies the identifier entry is active.
    Criterion attributes The set of attributes to uniquely identify the CI. Attributes can belong to the current class, or to a parent class.

    Click the lock icon to view, add, or remove attributes from the identification rule.

    It is not possible to add reference fields as a criterion attribute. Reference fields store sys_ids that point to a record in another table, and thus is considered a weak criterion attribute (in terms of uniqueness) for the current table.

    Optional condition Use the Add Filter Condition and the Add "OR" Clause buttons to construct a filter to narrow the set of records that will be searched for a matching CI. Optional condition is applied only to lookup based identification.
    Identifier The CI identifier to which this identifier entry belongs to. By default it is set to the identifier you previously selected.
    Priority Priority of the identifier entry. Identifier entries are applied based on priority. Rules with lower priority numbers are given higher priority. Identifier entries of identical priorities are applied randomly.

    It is recommended that you keep gaps between the priority numbers, so you can assign the unused priority numbers to new entries without modifying the existing priority order.

    Search on table The table to search during the identification process. The table list consists of tables that either derive from the Configuration Item [cmdb_ci] table, or other tables that reference the CI and can be used as a lookup table for identification.

    The lookup table used should have a reference field to cmdb_ci, otherwise the identifier entry is considered invalid.

    Allow fallback to parent's rules Check box to specify that the identification rules of the CI's parent are used if a match is not found for this identification rule. Applies only for dependent identification rules.
    Enforce exact count match (Lookup) Check box to specify that for lookup identification, match only on exact lookup records count match.
    Allow null attribute Check box to allow null values for criterion and unique attributes.
  8. Click Submit.

Example

For example, the pre-defined Hardware Rule applies to the Hardware [cmdb_ci_hardware] table. It has an identifier entry with the criterion attribute Serial Number, Serial Number Type and its Search on table field is set to Serial Number.

The following payload snippet adds a CI to the cmdb_ci_linux_server class, that is a child of the Hardware class:

{
    "items": [
        {
            "className": "cmdb_ci_linux_server",
            "lookup": [
                {
                    "className": "cmdb_serial_number",
                    "values": {
                        "serial_number": "VMware-42 21 e3 da 44 14 5a a6-56 48 2b 0a 28 53 42 4c",
                        "serial_number_type": "system",
                        "valid": "true"
                    }
                },
                {
                    "className": "cmdb_serial_number",
                    "values": {
                        "serial_number": "4221E3DA-4414-5AA6-5648-2B0A2853424C",
                        "serial_number_type": "uuid",
                        "valid": "true"
                    }
                },                }
            ],
            "values": {
                ......
                "name": "xpolog2.lab3",
                "os_name": "Linux",
                "output": "Linux xpolog2.lab3 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux",
                "serial_number": "VMware-42 21 e3 da 44 14 5a a6-56 48 2b 0a 28 53 42 4c",
                "sys_class_name": "cmdb_ci_linux_server"
            }
        }
    ]
}
                         

When the Hardware Rule is applied, the Serial Number [cmdb_serial_number] table is searched for a match with the values specified within the lookup key. Unless Enforce exact count match (Lookup) is checked, it is not necessary for every lookup key to return a match, as long as there is at least one match. If all matches reference the same CI, then that CI is considered to be the existing CI record. If no match is found, then the identification search continues to the next rule entry. If after all the rules are exhausted without finding a match, a new CI record is created in the database.