Issue
This article describes how Discovery probe","articleBody":"
How Discovery captures Model ID and Manufacturer for servers and devices
Issue
This article describes how Discovery probes and patterns update the model_id and manufacturer for network devices, Linux and Windows servers.
\r\nThe model_id and manufacturer are reference fields. In general, a probe will gather both the model_id and manufacturer from a device and pass the string values to the MakeAndModelJS.fromNames() function along with a model_type. The model_type determines the table that is used to get the model_id. The table cmdb_model is used if model_type is empty.
\r\nSome of the tables that are used to find the model_id:
\r\nHardware | cmdb_hardware_product_model |
Consumable | cmdb_consumable_product_model |
Software | cmdb_software_product_model |
Application | cmdb_application_product_model |
NOTE: In some cases, the CI may seem to have an empty model and manufacturer when in fact the field is populated. These fields are reference fields and should be populated with sys_ids, not with the values directly. To resolve this issue, the sensor/pattern will need to call MakeAndModelJS to get the reference value instead. This can be confirmed by viewing the xml for the record.
Network Devices (SNMP Discovery)
\r\nFor network devices, the model_id and manufacturer are collected on the classification phase of discovery by the SNMP - Classify probe.
\r\nThe following important OIDs determine which model and manufacturer are used:
\r\n- mgmt.mib-2.entityMIB.entityMIBObjects.entityPhysical.entPhysicalTable entPhysicalModelName
- mgmt.mib-2.entityMIB.entityMIBObjects.entityPhysical.entPhysicalTable entPhysicalMfgName
- mgmt.mib-2.system.sysObjectID
The model and manufacturer from Discovery Definition > Classification > SNMP System OIDs is used when sysObjectID is returned. The values returned by entPhysicalModelName and entPhysicalMfgNam are used if the sysObjectID value is not returned, or if there is no matching record for the sysObjectID under SNMP System OIDs.
\r\nNote – The model_id and manufacturer may alternate if the values for entPhysicalModelName and entPhysicalMfgName do not match the SNMP System OID values respectively and the sysObjectID is not returned consistently. Therefore, if possible, the values in the SNMP System OIDs should be updated to match what is returned by the device. Having two options to get model_id and manufacturer provides redundancy.
UNIX/Linux
\r\nDifferent distributions of UNIX/Linux use their own probe/sensors to collect the model_id and manufacturer.
\r\nThe out-of-box probes/sensors that collect the model and manufacturer are:
\r\nProbe | Command / Script |
Linux - Hardware Information | dmidecode; echo dummy > /dev/null |
HP-UX - Hardware Model | model |
AIX - Hardware Model | lsattr -El sys0 -a modelname -F value |
Solaris - Hardware Model | suntype.sh |
\r\n
Windows
\r\nThe Windows device's model_id and manufacturer information are collected by the Windows - OS Information probe.
\r\nThe WMI fields used for model and manufacturer are:
\r\n- Win32_ComputerSystem.Manufacturer
- Win32_ComputerSystem.Model
Windows OS Servers pattern retrieval steps:
\r\nStep 1: Get Data Set By Windows - Classify
\r\nStep 1.35: Get data from Win32_ComputerSystem
--> This is where the WMI Query is performed: "SELECT Name,Domain,Manufacturer,Model,UserName FROM Win32_ComputerSystem"
--> To test it you may login to your the host server, and try to execute in PowerShell the following command:
Get-WmiObject -query "SELECT Name,Domain,Manufacturer,Model,UserName FROM Win32_ComputerSystem"
This will return the results containing the "model_id".
\r\nOnce the data is retrieved from above step, it will be part of Step 9 - Insert System, OS and CPU data to [cmdb_ci_win_server] table where model_id = $computerInfo{1].Model
Therefore, what is retrieved from the host server, is the one that is being set to the CMDB.
The following example shows the result of running a PowerShell command to collect the model and manufacturer:
\r\nOther
\r\nThere are many other device classes that can be discovered, and custom ones can be created. They will each need to query the target device/application for such fields and use the MakeAndModelJS script to get the proper reference values to update the record.
\r\nPatterns
\r\nPatterns call the MakeAndModelJS via the "Pattern Designer > Pre Post Processing" script, in special the "OSs - Pre Sensor" script. The column "Pattern/s" determines what patterns will use this pre post script to alter the payload.