How Discovery captures model ID and manufacturer for servers and devicesIssue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #7057C7; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: block; max-width: ; width: auto; height: auto; } } This article describes how Discovery probes and patterns update the model_id and manufacturer for network devices, and Linux and Windows servers. The model_id and manufacturer are reference fields. In general, a probe gathers both the model_id and manufacturer from a device and passes 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 cmdb_model table is used if model_type is empty. Following are some of the tables used to find the model_id: Hardware cmdb_hardware_product_model Consumable cmdb_consumable_product_model Software cmdb_software_product_model Application cmdb_application_product_model Note: In some cases, the configuration item (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_id, not with the values directly. To resolve this issue, the sensor or pattern needs to call MakeAndModelJS to get the reference value instead. This can be confirmed by viewing the xml for the record. Network Devices (SNMP Discovery) For network devices, the model_id and manufacturer are collected in the classification phase of discovery by the SNMP - Classify probe. The following important object identifiers (OID) determine which model and manufacturer are used: mgmt.mib-2.entityMIB.entityMIBObjects.entityPhysical.entPhysicalTable entPhysicalModelNamemgmt.mib-2.entityMIB.entityMIBObjects.entityPhysical.entPhysicalTable entPhysicalMfgNamemgmt.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. Note: 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 Different distributions of UNIX or Linux use their own probes or sensors to collect the model_id and manufacturer. The default probes and sensors that collect the model and manufacturer are: Probe Command / ScriptLinux - Hardware Information dmidecode; echo dummy > /dev/null HP-UX - Hardware Model modelIBM AIX - Hardware Model lsattr -El sys0 -a modelname -F valueSolaris - Hardware Model suntype.sh Windows A Windows device model_id and manufacturer information are collected by the Windows - OS Information probe. The WMI fields used for model and manufacturer are: Win32_ComputerSystem.ManufacturerWin32_ComputerSystem.Model Retrieve Windows OS Servers pattern 1. Get Data Set By Windows - Classify 2. 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 returns the results containing the model_id. Once the data is retrieved from previous action, it is inserted into the 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: Other device classes There are many other device classes that can be discovered, and custom ones can be created. They each need to query the target device or application for such fields and use the MakeAndModelJS script to get the proper reference values to update the record. Patterns Patterns call the MakeAndModelJS via the Pattern Designer > Pre Post Processing script, in particular the OSs - Pre Sensor script. The Pattern/s column determines what patterns use this pre or post script to alter the payload. Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #7057C7; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: block; max-width: ; width: auto; height: auto; } } All releases Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: #000000; } span { font-size: 12pt; font-family: Lato; color: #000000; } h2 { font-size: 24pt; font-family: Lato; color: black; } h3 { font-size: 18pt; font-family: Lato; color: black; } h4 { font-size: 14pt; font-family: Lato; color: black; } a { font-size: 12pt; font-family: Lato; color: #00718F; } a:hover { font-size: 12pt; color: #024F69; } a:target { font-size: 12pt; color: #032D42; } a:visited { font-size: 12pt; color: #7057C7; } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: block; max-width: ; width: auto; height: auto; } }