Hardware CIs without Serial Numbers <!-- .SOKMKBArticle div.margin { padding: 10px 40px 40px 30px; color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; } .SOKMKBArticle div.fed{ background-color: #f5f8fa; border: 1px solid; border-color: #bfbfbf; padding: 10px; } .SOKMKBArticle .FedRestricted{ background-color: #c00000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .CustRestricted{ background-color: #ff0000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .SNRestricted{ background-color: #ea700d; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .SNConfidential{ background-color: #ffc000; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle .Public{ background-color: #00b050; color: #ffffff; padding: 10px; margin-top: 10px; text-align: center; font-size: 14pt; font-weight: bold; } .SOKMKBArticle table.tocTable { border: 1px solid; border-color: #f2f2f2; background-color: #f2f2f2; padding-top: .6em; padding-bottom: .6em; padding-left: .9em; padding-right: .6em; } .SOKMKBArticle table.noteTable { align: left; border: none; border-color: #81b5a1; background-color: #f2f2f2; width: 100%; border-spacing: 2; font-size: 11px; } .SOKMKBArticle table.internalTable { border-top: 1px solid; border-left: 1px solid; border-color: #81b5a1; width: 100%; border-spacing: 1px; } .SOKMKBArticle .sp td { border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #ffffff; height: 20px; padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; } .SOKMKBArticle .sphr td { border-right: 1px solid; border-bottom: 1px solid; border-color: #81b5a1; background-color: rgb(245, 245, 245); padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; height: 20px; } .SOKMKBArticle .sh td { border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #81b5a1; color: #ffffff; height: 20px; padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; } .SOKMKBArticle th { padding-top: .5em; padding-bottom: .5em; padding-left: .5em; padding-right: .5em; border-bottom: 1px solid; border-right: 1px solid; border-color: #81b5a1; background-color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; color: #ffffff; height: 20px; } .SOKMKBArticle td { border-color: #81b5a1; margin: 5px 5px 5px 5px; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; color: #283d40; } .SOKMKBArticle p { color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; } .SOKMKBArticle li { color: #283d40; font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; font-size: 10pt; line-height: 1.5; } .SOKMKBArticle pre { font-family: Courier New; } .SOKMKBArticle div { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; } .SOKMKBArticle hr { border-top-width: 1px; border-top-style: solid; border-top-color: #81b5a1; } .SOKMKBArticle a { color: #81b5a1; } .SOKMKBArticle a.two:link { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle a.two:visited { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle a.two:hover { color: #ffffff; background-color: #259b8a; } .SOKMKBArticle .button { padding: 15px 45px 15px 45px; margin-top: 20px; color: #ffffff; text-align: center; background-color: #1F8476; border: 1px solid; border-color: #1F8476; } .SOKMKBArticle .title { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #81b5a1; font-size: 30pt; } .SOKMKBArticle .hd1 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-size: 20pt; border-bottom: 1px solid; border-bottom-color: #81b5a1; text-decoration: none; } .SOKMKBArticle h1 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-size: 20pt; font-weight: normal; border-bottom: 1px solid; border-bottom-color: #81b5a1; text-decoration: none; } .SOKMKBArticle .hd2 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #68a1af; font-weight: bold; font-size: 16pt; text-decoration: none; } .SOKMKBArticle h2 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #68a1af; font-weight: bold; font-size: 16pt; font-weight: normal; text-decoration: none; } .SOKMKBArticle .hd3 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 14pt; text-decoration: none; } .SOKMKBArticle h3 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 14pt; text-decoration: none; } .SOKMKBArticle .hd4 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 12pt; text-decoration: none; } .SOKMKBArticle h4 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 12pt; text-decoration: none; } .SOKMKBArticle .hd5 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: bold; font-size: 10pt; text-decoration: bold; } .SOKMKBArticle h5 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: bold; font-size: 10pt; text-decoration: bold; } .SOKMKBArticle .hd6 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 10pt; text-decoration: underline; } .SOKMKBArticle h6 { font-family: Century Gothic, Verdana, Helvetica, Arial, sans-serif; color: #283d40; font-weight: normal; font-size: 10pt; text-decoration: underline; } .SOKMKBArticle details { font-size: 10pt; } .SOKMKBArticle details[open] summary ~ * { animation: sweep .5s; margin-top: 0; padding-top: 10px; } @keyframes sweep { 0% {opacity: 0; margin-top: -10px} 100% {opacity: 1; margin-top: 0px} } .SOKMKBArticle summary { cursor: pointer; outline: none; margin-bottom: 3px; } .SOKMKBArticle .summary { background-color: #81b5a1; font-size: 10px; color: white; cursor: pointer; padding: 5px; width: 100%; border: none; text-align: left; outline: none; vertical-align: top; } table, th, tr, td { border: 1pt solid #646464; } --> Get Well Playbook Hardware Configuration Items without Serial Numbers A guide for how to manage CIs that do not have serial numbers Table of Contents Summary. 3 Audience. 3 Problem Overview.. 3 Executive Summary. 3 How this playbook can help you achieve your business goals. 3 How this playbook is structured. 3 Problem Analysis 3 Upstream Causes3 Downstream consequences. 4 Impact on your Business. 4 Engagement Questions5 Remediation Plays 6 Summary. 6 Analysis Play. 7 Fix Play7 Data Governance. 11 General Usage Guidelines11 Summary Goal of this Playbook The goal of the playbook is to help you identify and manage CIs that do not have serial numbers. Author Emir EminovicDate 06/15/2020Addresses HSD # HSD0001706, HSD0006550Applicable ServiceNow Releases All ReleasesTime required ~ 1-4 Hours Audience Configuration Manager or Configuration Management teamServiceNow Administrator Note: As you follow the instructions in this playbook, you may need help from people in the following roles: Discovery AdministratorAsset ManagerCI Class Owner Problem Overview The configuration management database (CMDB) uses a serial number to track physical devices, such as laptops, servers, printers, and network devices. Each device in the CMDB needs a unique serial number. Otherwise, you run the risk of creating duplicate CIs. Executive Summary How this playbook can help you achieve your business goals Valid serial numbers can: Improve the Asset management lifecycle by linking asset records to the physical devicesReduce the mean-time-to-repair (MTTR) by letting the support teams identify CIs fasterProvide increased visibility into licensing data by keeping CI's unique based on serial numbersAssists you in getting help from the CI Manufacturer How this playbook is structured This playbook guides you through three plays. The first play (an analysis play) helps you identify the root cause of the missing serial numbers. The second play (a fix play) explains the five options you have for retrieving the missing serial number. The option you choose depends on the root cause.The third play (a governance play) explains the way you can keep your newly fixed CMDB healthy. Problem Analysis Upstream Causes A serial number may not be assigned or retained due to the following: Issues with the Discovery pattern, such as: Problems with the credential (sudoers)Issues with the logic of a modified pattern The configuration in use does not match the standard pattern You may have used manual imports that do not have serial numbersYou may have manually created CIs by using a table formYou may have set up an automated import from external sources with one of the following conditions: The serial number is missingThe serial number is not mapped to the correct fieldThe source data does not have the serial number Your Asset Management Process allows for shell record creation without a serial number Updates to the Asset Record are not reflect on the CMDB Downstream consequences Data Consequence: If you can't match and reconcile CIs based on the serial number, you may end up creating CI duplicates. These duplicates can cause data bloat. Operation Consequence: Your IT support teams may not be able to match and track the CIs (a requirement for effective IT Service Management [ITSM]). Extra work is then needed by that team to track the correct CI. Your IT Asset Management (ITAM) teams are also adversely affected if they can't link assets to a single device App Consequence: Missing serial number can create issues with IT Operations Management (ITOM) services like Discovery and Service Mapping. Impact on Your Business If you do not have complete information about your company's physical assets (such as the serial number), your business may be adversely affected in the following ways: Increased mean-time-to-respond (MTTR) - Without serial numbers, your support teams may struggle to find data, and may end up creating duplicate CIs.Incorrect asset management - License calculation reports may be incorrect (if duplicates are created due to the missing serial numbers)Audit compliance – You may not be able to show the complete chain of ownership if you do not have serial numbersCMDB trust – You may not completely trust the data in the CMDB. Engagement Questions Consider the answers to these questions: Are you currently using the Identification and Reconciliation Engine (IRE)?What process or criterion are you using to match the CIs to the physical devices?Do you have plans to address the missing serial numbers?Do you know how serial numbers are assigned to virtual devices?Do you have issues with your ITSM process for linking to CIs where needed? If there are duplicate CIs, it might be hard to know which CI to use. For example, one CI might be out of date.Do you have any duplicate CIs? If so, how many?Note the following points about duplicate CIs and serial numbers: If you do not have a serial number for a CI, and you change the name or IP address for the CI, the reconciliation engine sees this as a new CI. This can result in duplicates.If you have the serial number for a CI, the reconciliation engine matches the existing CI and updates the name and the IP address. This way, you can avoid creating duplicates. Remediation Plays Summary Play Analysis What is this play about See if any of your CIs are missing serial numbers Play Steps Run a script to identify the root cause. Fix Play What is this play about Lists the solutions you can use to solve the root cause (as identified in the Analysis Play), and retrieve the missing serial number. Play Steps Use the solution based on the root cause. Then check to see if the problem has been fixed. Verification Step Helps you validate that you have successfully executed this play Data Governance What is this play about Explains the importance of monitoring the health of the CMDB and validating the data in the CMDB. Play Steps Run a monthly report that details the overall health of the CMDB, and to make sure that the serial number is kept through the CI's lifecycle. Analysis Play What this Play is about This play helps you see if any of your CIs are missing serial numbers. This play includes running a fix script with two output sections; one section to validate the number of these CIs, and another section to help you determine the root cause. The script used to search for the CIs reviews the contents of the cmdb_ci_computer table and the cmdb_ci_netgear table for CIs with these attributes: InstalledOperationalSerial Number is Empty The script used to determine the root cause groups the CI data (collected over the last 90 days) by the following attributes: LocationClassDiscovery sourceAssigned toSupport groupAssignment groupCreated byUpdated by Required Tasks Option 1: Install CMDB and CSDM Data Foundations Dashboard from the ServiceNow App StoreNavigate to the CMDB Data Foundations Dashboard module in the left navigation menuSelect the Best Practices tabSelect the Hardware CIs Missing Serial Numbers report to view a list of CIs that are missing serial numbers. If you see a count of zero then this playbook is not applicable to you Option 2: Run this script as a Fix ScriptReview the results of the script. Here's a typical example the results of the script: The next steps depend on your results. Do one of the following: If all your CIs have serial numbers, you don't have to do anything else. You've completed the Analysis Play.Otherwise, continue with step 4. Review the results of the script to see if there is a common pattern. For example, a high number of Linux Servers missing serial numbers might indicate an issue with Discovery, such as an issue with credentials. Once you see the results of the script, you can see the root cause of the problem and fix it. Fix Play What this Play is about This play lists the solutions you can use to solve the root cause (as identified in the Validation Play), and retrieve the missing serial number. There are five solutions (listed below). Each solution corresponds to a specific root cause. Choose the solution you want to use based on that root cause. Required Tasks Navigate to the cmdb_ci_hardware list view and apply the following filters: Class is a Computer OR Network GearAND status is InstalledAND Operational Status is OperationalAND Serial Number is EmptyLoad the listChose a solution you want to use, based on the root cause of the problem. The table below lists the root cause and the corresponding solution to use. What is creating CIs without serial numbers (root cause) Solution to use Discovery Option A Third party integrations Option B Data Import schedule Option C Asset Management Option D Unknown Option E Option A: Discovery is creating CIs without a Serial Number Select a recently discovered CI from the class and view the details. Select the IP Address, as we will need it to run a test against itRun a Quick Discovery with the IP selected in step above. The Discovery takes a few minutes to complete.When Quick Discovery is complete, see if the CI now has a Serial Number Value If the CI has a serial number, you have fixed the problem. Note: you should run the discovery schedule for this CI ClassIf the CI does not have a serial number, you need to take a closer look at the pattern you are using. Continue to step 5. (IF applicable to you) To Debug the pattern, complete the following steps: Navigate to Pattern Designer and open the Pattern used to discover this classFind and select the Step where the serial number is being collected and Click the Debug Provide the Server Name and click test When the test completes successfully, a display similar to the following appears: 4. If you don't see a serial number, you may need additional components or different access privileges for the server you're using For Windows servers, the WMI Collector was required for New York, patch 9 and earlier. Review this KB Article for additional information.For Linux servers, you require sudo privileges to run dmidecode query. Follow the documentation. Also check HI for specific messages related to dmidecode such as KB0782245 or KB0694510 or many others. Search in HI for any other specific sudo errors related to dmidecode. These will be the majority of causes of serial_number missing from Discovery for Linux. Option B: A third-party integration is creating CIs without serial numbers Review the third-party integration settings. Make sure that the Data Source Field Mapping is set to copy the serial number from the source system into the serial number field (as shown in the following examples). Refer to the Vendor's technical documentation on how to best map attributes SCCM Data Source Field Mapping example VMware Virtual Server mapping (with UUID mapped to the serial number field) example You can use the discovery_source field to see which integration created the specific CI. For more information on setting map attributes, see the vendor's technical documentation. Option C: The Data Import Set is creating CIs without serial numbers Find the Data Import Set causing the problem and review the transform maps being used.Navigate to Table Transform Maps and set the Target Table variable to the relevant CI classReview Each transform map for the: Field Map where the target field is set to Serial Number (serial_number)Transform Scripts where the script contains the Serial Number (serial_number)Presence of Serial Number in any of the recent data importsNote: By default, the base system deletes data imports older than 7 days Searching for Transform Maps If you need help location the correct Transform Map(s) you can follow these steps: Navigate to sys_transform_entry.list and press EnterIn the List View for Field Maps, add the following two OR conditions: Target field IS serial_numberSource Script CONTAINS serial_number Your screen should look like this example: The list here contains a Map column, which contains a reference to each of the Transform Maps that appear to contain references to Serial Number. Searching for Transform Maps – Part 2 If you still don't see which Transform Map(s) are updating serial_number, check these other scripted transform locations. Navigate to sys_transform_script.list and press EnterAdd a filter condition: Script CONTAINS serial_number Your screen should look like this example: The list here contains References to Transform Maps. In this case, the scripts here are also part of Transform Maps, and might be setting / updating the values. Remember if you do not see any Transform Maps that are of interest, it could very well be that the Transform Map is not correctly configured to update the Serial Number field. In such a case, the client must know which Data Source is supposed to be performing this update so that you can confirm that the Field Map for serial_number is valid, and the Import Set Row records contain values to update those fields. Option D: Asset Management is creating CIs without Serial Number Navigate to Asset CI Field Mappings (alm_asset_ci_field_mapping.list)Search for Configuration Field is serial_numberMake sure the entry for Asset to CI Serial Number mapping is active Note: If you have created and activated custom mapping, consider removing it to avoid mapping conflicts. Option E: An unknown source is creating CIs without serial numbers In this option, you need to manually retrieve and update the missing information. Sort the missing serial number data by Location, Owner, or any other attribute that can help you identify the missing information.Reach out to people in your company who can help you find the missing information. For example, if your Windows servers in Data Center West are supported by a group in your organization, contact the lead for that group for help. Export the data to an Excel file.Send the file to the relevant group and ask them to provide the missing information. For instructions, see KB0830072If the CI is hardware, they may be able to get the missing information directly from what is listed on the CI. They may also tell you the name of the software application they use to collect this information. Reimport the data into your system. Make sure that the serial number field is included and mapped correctly.Make sure that the data has been imported correctly Data Governance What this play is about To maintain the health of the CMDB, you need to regularly monitor the number of CIs that don't have serial numbers. This play explains how to run a specific report that shows you that level of detail. Running this report monthly is one way to track the CI (and the serial number) as the CI goes through the lifecycle stages. While running this report is the most common method, you could also: Use the required or recommended health metric on the CMDB Health dashboards to measure the serial number attribute. For more information about CMDB health metrics, see CMDB Health dashboards. Set up a Data Certification workflow that assigns the CI Owner or the Supported By group the task of providing the serial number attribute manually. For more information about using Data Certification, see Data Certification Required tasks Create a monthly report that will list all CIs without Serial Numbers:Apply the following filters. Table is HardwareClass is a Computer OR is a Network GearAND status is InstalledAND Operational Status is OperationalAND Serial Number is Empty Review the results and action any CIs without a serial number General Usage Guidelines Use the ServiceNow base settings as much as possible. Use Discovery to collect the serial numbers from your devices. If you use Discovery but the serial numbers are not collectable, create a way to regularly supplement the information. That is, create an audit and schedule it to run regularly. Be sure to assign someone the task of creating and running the audit. About creating audits An audit is a great way to keep your CIs healthy. However, when you create an audit, keep the following points in mind: Create focused audits, not general or "catch all" audits. For example, group the audits by a specific attribute such as class, IP range, location, or assigned. Remember to schedule the audits to run on a regular basis (ideally, every week or every month). For details on creating an audit (and assigning it to someone as a task) see Create an audit. When you import CIs from external sources, check for ServiceNow plugins and use those plugins. If the external source doesn't have a plugin, or you are importing CIs manually, use the IRE. For more information about the IRE and import sets, see Apply CI Identification and Reconciliation to Import Sets. Congratulations You have completed this Get Well Playbook.