How to Load an SNMP MIB Module for a MID Server to use for Discovery<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } .kb-wrapper { font-family: Lato, sans-serif; font-size: 12pt; line-height: 1.7; color: #1a1a1a; max-width: 100%; } .kb-wrapper h2 { font-family: Lato, sans-serif; font-size: 14pt; font-weight: 900; color: #032D42; border-bottom: 2px solid #e8fce4; padding-bottom: 4px; margin-top: 28px; margin-bottom: 12px; } .kb-wrapper p { margin: 0 0 12px 0; } .kb-wrapper ul { margin: 0 0 12px 0; padding-left: 24px; } .kb-wrapper ul > li { margin-bottom: 6px; } .kb-wrapper ol.kb-steps { list-style: none; counter-reset: kb-step-counter; padding-left: 0; margin: 0 0 16px 0; } .kb-wrapper ol.kb-steps > li { counter-increment: kb-step-counter; display: flex; align-items: flex-start; gap: 14px; margin-bottom: 14px; } .kb-wrapper ol.kb-steps > li::before { content: counter(kb-step-counter); min-width: 26px; height: 26px; background-color: #032D42; color: #63DF4E; font-family: Lato, sans-serif; font-size: 11pt; font-weight: 900; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 2px; } .kb-wrapper ol.kb-steps > li .step-content { flex: 1; } .kb-wrapper ol.kb-steps > li .step-content ul { margin-top: 6px; } .kb-wrapper .kb-note { border-left: 4px solid #52B8FF; background: #e6f4ff; padding: 10px 14px; margin: 0 0 16px 0; border-radius: 0 4px 4px 0; } .kb-wrapper .kb-note p { margin: 0; } .kb-wrapper .kb-note strong { color: #032D42; } .kb-wrapper .kb-warning { border-left: 4px solid #e6a817; background: #fff4e0; padding: 10px 14px; margin: 0 0 16px 0; border-radius: 0 4px 4px 0; } .kb-wrapper .kb-warning p { margin: 0; } .kb-wrapper code { background: #e6f0f5; color: #032D42; border: 1px solid #b8cfd8; border-radius: 3px; padding: 1px 5px; font-size: 11pt; font-family: "Courier New", monospace; } .kb-wrapper table { width: 100%; border-collapse: collapse; margin: 0 0 16px 0; font-size: 12pt; } .kb-wrapper table th { background-color: #032D42; color: #ffffff; padding: 8px 12px; text-align: left; font-weight: 700; } .kb-wrapper table td { padding: 8px 12px; border-bottom: 1px solid #d0dde3; vertical-align: top; } .kb-wrapper table tr:nth-child(even) td { background-color: #e8fce4; } .kb-wrapper h3 { font-family: Lato, sans-serif; font-size: 12pt; font-weight: 700; color: #032D42; margin-top: 20px; margin-bottom: 8px; } .kb-wrapper .kb-related-links a { color: #032D42; text-decoration: underline; } .kb-wrapper .kb-related-links a:hover { color: #52B8FF; } .kb-wrapper .kb-link-disclaimer { font-size: 10pt; font-style: italic; color: #555; margin: 2px 0 10px 0; } .kb-wrapper { font-family: Lato, sans-serif; font-size: 12pt; line-height: 1.7; color: #1a1a1a; max-width: 100%; } .kb-wrapper h2 { font-family: Lato, sans-serif; font-size: 14pt; font-weight: 900; color: #032D42; border-bottom: 2px solid #e8fce4; padding-bottom: 4px; margin-top: 28px; margin-bottom: 12px; } .kb-wrapper p { margin: 0 0 12px 0; } .kb-wrapper ul { margin: 0 0 12px 0; padding-left: 24px; } .kb-wrapper ul > li { margin-bottom: 6px; } .kb-wrapper ol.kb-steps { list-style: none; counter-reset: kb-step-counter; padding-left: 0; margin: 0 0 16px 0; } .kb-wrapper ol.kb-steps > li { counter-increment: kb-step-counter; display: flex; align-items: flex-start; gap: 14px; margin-bottom: 14px; } .kb-wrapper ol.kb-steps > li::before { content: counter(kb-step-counter); min-width: 26px; height: 26px; background-color: #032D42; color: #63DF4E; font-family: Lato, sans-serif; font-size: 11pt; font-weight: 900; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 2px; } .kb-wrapper ol.kb-steps > li .step-content { flex: 1; } .kb-wrapper ol.kb-steps > li .step-content ul { margin-top: 6px; } .kb-wrapper .kb-note { border-left: 4px solid #52B8FF; background: #e6f4ff; padding: 10px 14px; margin: 0 0 16px 0; border-radius: 0 4px 4px 0; } .kb-wrapper .kb-note p { margin: 0; } .kb-wrapper .kb-note strong { color: #032D42; } .kb-wrapper .kb-warning { border-left: 4px solid #e6a817; background: #fff4e0; padding: 10px 14px; margin: 0 0 16px 0; border-radius: 0 4px 4px 0; } .kb-wrapper .kb-warning p { margin: 0; } .kb-wrapper code { background: #e6f0f5; color: #032D42; border: 1px solid #b8cfd8; border-radius: 3px; padding: 1px 5px; font-size: 11pt; font-family: "Courier New", monospace; } .kb-wrapper table { width: 100%; border-collapse: collapse; margin: 0 0 16px 0; font-size: 12pt; } .kb-wrapper table th { background-color: #032D42; color: #ffffff; padding: 8px 12px; text-align: left; font-weight: 700; } .kb-wrapper table td { padding: 8px 12px; border-bottom: 1px solid #d0dde3; vertical-align: top; } .kb-wrapper table tr:nth-child(even) td { background-color: #e8fce4; } .kb-wrapper h3 { font-family: Lato, sans-serif; font-size: 12pt; font-weight: 700; color: #032D42; margin-top: 20px; margin-bottom: 8px; } .kb-wrapper .kb-related-links a { color: #032D42; text-decoration: underline; } .kb-wrapper .kb-related-links a:hover { color: #52B8FF; } .kb-wrapper .kb-link-disclaimer { font-size: 10pt; font-style: italic; color: #555; margin: 2px 0 10px 0; } Summary This article describes how to load a custom SNMP Management Information Base (MIB) module into a ServiceNow instance for use with MID Server-based Discovery. Loading a custom MIB allows Discovery to resolve Object Identifier (OID) values using string or ASN notation in addition to numerical notation, enabling more flexible probe and pattern configuration for devices that use vendor-specific MIBs. By default, Discovery uses a set of standard MIB-2 (MGMT) OIDs to identify and classify SNMP-enabled devices. In some cases, a device may not respond to those standard OIDs, or the data returned by the device falls outside what Discovery natively supports. In these situations, loading a vendor-supplied MIB and customizing the relevant probe or pattern allows Discovery to query device-specific OIDs and retrieve information that would otherwise not be captured. Common scenarios include network or infrastructure devices that expose proprietary OIDs for metrics such as hardware health, component inventory, or performance data that are not part of the standard MIB-2 set. MIBs are loaded during MID Server startup. Both MIBs bundled with the MID Server software (industry-standard modules) and MIBs stored on the instance are loaded at that time. Note: Adding a MIB file allows OID values to be referenced using string/ASN notation, but does not guarantee that additional information will be retrieved by Discovery. It provides an alternative way to define OIDs that a probe or pattern can then be configured to query. Facts Role required: adminMIBs are only loaded during MID Server startup. A MID Server restart is required after adding a new MIB record for the module to take effect.MIB modules are stored as ecc_agent_mib records on the instance, with the actual MIB file attached to the record.MIB files sourced from device vendors may carry dependencies on other MIBs. All dependency MIBs must be present on the instance before the dependent MIB can load successfully.Any errors encountered during MIB loading are logged in the MID Server agent log.The MIB file name must begin with an alphabetical character. Remaining characters must be alphanumeric, a hyphen (-), or an underscore (_). The file must not have a file extension. Release All Releases Instructions Obtaining the MIB file The correct source for a MIB file is the manufacturer of the device being discovered. Most network hardware vendors — such as Cisco, Juniper, HP, and others — publish MIB files on their support portals or as part of their device software downloads. Using the vendor-supplied MIB ensures that OID definitions are accurate for the specific device make and model. Before downloading, confirm that the MIB file name does not include a file extension, or rename the file after downloading to remove it. The MIB name must begin with a letter and may only contain alphanumeric characters, hyphens, and underscores. Checking dependencies Many vendor MIBs depend on other MIBs being present. Before loading a new MIB, identify its dependencies by inspecting the MIB file directly, then verify that those MIBs are already loaded on the instance. Open the MIB file in a text editor and locate the IMPORTS statement near the top of the file. This statement lists the module names and OIDs that the MIB depends on. For example: Each module name listed after FROM in the IMPORTS block is a dependency that must be present on the instance.If the MIB file contains no IMPORTS statement, it has no dependencies and can be loaded directly. Navigate to All > MID Server > SNMP MIBs and search for each dependency module identified in the previous step. If a required MIB is missing, load it first using the procedure below before proceeding. Note: Third-party MIB browser tools can also be used to inspect MIB dependencies and validate MIB files before loading them. Examples include iReasoning MIB Browser and the Net-SNMP snmptranslate utility. These tools are not provided or supported by ServiceNow. Loading the MIB module Navigate to All > MID Server > SNMP MIBs. Click New to create a new ecc_agent_mib record. Complete the form fields: Name — Enter the name of the MIB. Use the actual MIB name. The name must begin with a letter and contain only alphanumeric characters, hyphens, or underscores — no file extension.Version — Enter the version of the MIB, if known.Source — Note where the MIB was obtained, such as the vendor support portal URL. This field is for reference only.Description — Enter a meaningful description that will appear in the ecc_agent_mib table.Active — Select this check box to enable the MIB module on the instance. Click the Add Attachment icon in the upper right of the form and attach the MIB file. The attachment name should match the MIB record name, though this is not strictly required. Click Submit to save the record. Restart the MID Server. MIB modules are only loaded at MID Server startup, so a restart is required for the new module to take effect. Note: After the MID Server restarts, check the MID Server agent log for any errors related to MIB loading. Errors typically indicate a missing dependency MIB or an invalid MIB file format. After loading Once the MIB is loaded, update the appropriate Discovery probe or pattern to query for the specific OID values defined in the new MIB. The loaded MIB enables OIDs to be referenced by their string or ASN names rather than numerical notation in probe and pattern configurations. Related Links Load a MIB module SNMP probe MIB modules SNMP probe parameters KB2988926 How to Create a Discovery Pattern Extension Section for an SNMP-Based Pattern to Query Custom OIDs