DX Unified Infrastructure Management

 View Only
Expand all | Collapse all

Collecting serial numbers with snmpcollector

  • 1.  Collecting serial numbers with snmpcollector

    Posted Jan 20, 2022 10:15 AM
    Hello,

    I have a request from a client to collect the serial numbers of some network equipment and create a report with them (for example iDRAC).
    I know I can do it by using the Device Self Certification portlet, but I was wondering if there is a simpler way.

    In Device Self Certification I can see a SerialNumber metric in System->Generic System metric family. This metric is absent in the Template Editor for snmpcollector.
    But there is Serial Number attribute in the snmpcollector configuration page.

    Please help!
    Many thanks!

    Marius






  • 2.  RE: Collecting serial numbers with snmpcollector

    Broadcom Employee
    Posted Jan 20, 2022 01:17 PM
    Hi Marius, Not sure what snmpcollector is seeing, so I would test by using a free mibbrowser tool (just google it). Verify the devices in question have information (the SN) at the oid location in the mibs. If so the snmpget probe should be able to pull it.


  • 3.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 20, 2022 02:17 PM
    My guess is the device is not returning the serial number which is why it is blank. 
    click the 3 dots to the left of 'poweredge r740' and run vendor cert, it's like a selective sapwalk. 
    When finished there is a popup window with the log, from that you can see what's happening. 
    If that shows it tried to get the serial number and  the return was blank it is off to the device admin to enable it. 

    Figuring you get that working you can either work on creating a custom dashboard or report. 
    or go with direct sql query, something like 
    select * FROM CM_DEVICE where dev_ip in ('x.x.x.x','x.x.x.x')
    if that looks right then
    select dev_id FROM CM_DEVICE where dev_ip in ('x.x.x.x','x.x.x.x')
    then pick one dev_id and plug it into
    select * FROM CM_DEVICE_ATTRIBUTE where dev_id = 'xxxxx'
    find the exact value used for the serial number and then 
    select * FROM CM_DEVICE_ATTRIBUTE where dev_attr_key = 'whatever'


  • 4.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 21, 2022 05:36 AM
    Hello,

    Thank you for your replies. I can get the SN with other SNMP tools and I think snmpcollector would be able to get it but probably it is not configured to do so. I don't know where to configure it, since Serial Number metric is missing from the Template Editor. 

    Thank you,

    Marius


  • 5.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 21, 2022 08:34 AM
    still recommend:
    click the 3 dots to the left of 'poweredge r740' and run vendor cert,

    The info at that generic system level looks like the same data at the profile top level System Information section. That comes in from discovery server, which may have failed to get the serial number, MAC address and the other items. If the above works that will confirm snmpcollector can get it, so then run the Force Component Rediscovery available at the top right 3 dots menu when the profile name is selected.


  • 6.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 21, 2022 09:04 AM
    Hello

    When I run the Vendor Certification Test I get some information, but SN is not among it.

    INDIVIDUAL SNMP OID RESPONSES (NAME :: OID = Current Value :: Last Value)
    systemFQDN :: 1.3.6.1.4.1.674.10892.5.1.3.1.0 = servername :: servername
    systemOSName :: 1.3.6.1.4.1.674.10892.5.1.3.6.0 = DellEMC-VMware ESXi :: DellEMC-VMware ESXi
    systemModelName :: 1.3.6.1.4.1.674.10892.5.1.3.12.0 = PowerEdge R740 :: PowerEdge R740
    systemOSVersion :: 1.3.6.1.4.1.674.10892.5.1.3.14.0 = 7.0 Update 3 Build-18644231 (A00) :: 7.0 Update 3 Build-18644231 (A00)
    globalSystemStatus :: 1.3.6.1.4.1.674.10892.5.2.1.0 = 3 :: 3
    
    DELTA OIDS (NAME :: OID = Current Value :: Last Value)
    
    UNSUPPORTED DEVICE OIDS (NAME :: OID = Current Value :: Last Value)
    METRIC NAME (or) VARIABLE NAME :: VALUE :: EXPRESSION
    Indexes :: 0 :: Index
    Names :: PowerEdge R740 servername :: isdef(systemModelName) ? (systemModelName + (isdef(systemFQDN) ? ( " " + systemFQDN) : "")) : "Dell PE iDRAC"
    Descriptions :: PowerEdge R740 servername :: isdef(systemModelName) ? (systemModelName + (isdef(systemFQDN) ? ( " " + systemFQDN) : "")) : "Dell PE iDRAC"
    OperatingSystemName :: DellEMC-VMware ESXi :: systemOSName
    OperatingSystemVersion :: 7.0 Update 3 Build-18644231 (A00) :: systemOSVersion
    StatusCode :: 3 :: globalSystemStatus
    TimeInOtherState :: 0 :: globalSystemStatus == 1 ? _rspDuration : 0
    TimeInUnknownState :: 0 :: globalSystemStatus == 2 ? _rspDuration : 0
    TimeInNormalState :: 3 :: globalSystemStatus == 3 ? _rspDuration : 0
    TimeInWarningState :: 0 :: globalSystemStatus == 4 ? _rspDuration : 0
    TimeInCriticalState :: 0 :: globalSystemStatus == 5 ? _rspDuration : 0
    TimeInFailedState :: 0 :: globalSystemStatus == 6 ? _rspDuration : 0
    PctTimeInOtherState :: 0 :: globalSystemStatus == 1 ? 100 : 0
    PctTimeInUnknownState :: 0 :: globalSystemStatus == 2 ? 100 : 0
    PctTimeInNormalState :: 100 :: globalSystemStatus == 3 ? 100 : 0
    PctTimeInWarningState :: 0 :: globalSystemStatus == 4 ? 100 : 0
    PctTimeInCriticalState :: 0 :: globalSystemStatus == 5 ? 100 : 0
    PctTimeInFailedState :: 0 :: globalSystemStatus == 6 ? 100 : 0
    TABLE OID :: VALUE 



  • 7.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 21, 2022 09:09 AM
    Edited by Marius Nitu Jan 21, 2022 09:11 AM
    I have noticed that if I add something to the vendor certification file, I can get the SN in the vendor certification test. I don'ț  know what to do with that, though.

    snmp-dell-pe-idrac-system.xml
    <Attribute name="iDRACSerialNumber" type="String">
    <IsKey>true</IsKey>
    <NeedsDelta>false</NeedsDelta>
    <Source>1.3.6.1.4.1.674.10892.2.1.1.11.0</Source>
    </Attribute>


    INDIVIDUAL SNMP OID RESPONSES (NAME :: OID = Current Value :: Last Value)
    iDRACSerialNumber :: 1.3.6.1.4.1.674.10892.2.1.1.11.0 = modifiedserialnumber :: modifiedserialnumber
    systemFQDN :: 1.3.6.1.4.1.674.10892.5.1.3.1.0 = servername :: servername
    systemOSName :: 1.3.6.1.4.1.674.10892.5.1.3.6.0 = DellEMC-VMware ESXi :: DellEMC-VMware ESXi
    systemModelName :: 1.3.6.1.4.1.674.10892.5.1.3.12.0 = PowerEdge R740 :: PowerEdge R740
    systemOSVersion :: 1.3.6.1.4.1.674.10892.5.1.3.14.0 = 7.0 Update 3 Build-18644231 (A00) :: 7.0 Update 3 Build-18644231 (A00)
    globalSystemStatus :: 1.3.6.1.4.1.674.10892.5.2.1.0 = 3 :: 3

    DELTA OIDS (NAME :: OID = Current Value :: Last Value)

    UNSUPPORTED DEVICE OIDS (NAME :: OID = Current Value :: Last Value)
    METRIC NAME (or) VARIABLE NAME :: VALUE :: EXPRESSION
    Indexes :: 0 :: Index
    Names :: PowerEdge R740 servername :: isdef(systemModelName) ? (systemModelName + (isdef(systemFQDN) ? ( " " + systemFQDN) : "")) : "Dell PE iDRAC"
    Descriptions :: PowerEdge R740 servername :: isdef(systemModelName) ? (systemModelName + (isdef(systemFQDN) ? ( " " + systemFQDN) : "")) : "Dell PE iDRAC"
    OperatingSystemName :: DellEMC-VMware ESXi :: systemOSName
    OperatingSystemVersion :: 7.0 Update 3 Build-18644231 (A00) :: systemOSVersion
    StatusCode :: 3 :: globalSystemStatus
    TimeInOtherState :: 0 :: globalSystemStatus == 1 ? _rspDuration : 0
    TimeInUnknownState :: 0 :: globalSystemStatus == 2 ? _rspDuration : 0
    TimeInNormalState :: 3 :: globalSystemStatus == 3 ? _rspDuration : 0
    TimeInWarningState :: 0 :: globalSystemStatus == 4 ? _rspDuration : 0
    TimeInCriticalState :: 0 :: globalSystemStatus == 5 ? _rspDuration : 0
    TimeInFailedState :: 0 :: globalSystemStatus == 6 ? _rspDuration : 0
    PctTimeInOtherState :: 0 :: globalSystemStatus == 1 ? 100 : 0
    PctTimeInUnknownState :: 0 :: globalSystemStatus == 2 ? 100 : 0
    PctTimeInNormalState :: 100 :: globalSystemStatus == 3 ? 100 : 0
    PctTimeInWarningState :: 0 :: globalSystemStatus == 4 ? 100 : 0
    PctTimeInCriticalState :: 0 :: globalSystemStatus == 5 ? 100 : 0
    PctTimeInFailedState :: 0 :: globalSystemStatus == 6 ? 100 : 0
    SerialNumber :: modifiedserialnumber :: iDRACSerialNumber

    TABLE OID :: VALUE



  • 8.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 21, 2022 09:23 AM
    The original snmp-dell-pe-idrac-system.xml only contains the information that I can view in Admin Console, and no OID for MAC address or Serial Number.

    <Expression destAttr="Indexes">Index</Expression>
    <Expression destAttr="Names">isdef(systemModelName) ? (systemModelName + (isdef(systemFQDN) ? ( " " + systemFQDN) : "")) : "Dell PE iDRAC"</Expression>
    <Expression destAttr="Descriptions">isdef(systemModelName) ? (systemModelName + (isdef(systemFQDN) ? ( " " + systemFQDN) : "")) : "Dell PE iDRAC"</Expression>
    <Expression destAttr="OperatingSystemName">systemOSName</Expression>
    <Expression destAttr="OperatingSystemVersion">systemOSVersion</Expression>
    <Expression destAttr="StatusCode">globalSystemStatus</Expression>
    <Expression destAttr="TimeInOtherState">globalSystemStatus == 1 ? _rspDuration : 0</Expression>
    <Expression destAttr="TimeInUnknownState">globalSystemStatus == 2 ? _rspDuration : 0</Expression>
    <Expression destAttr="TimeInNormalState">globalSystemStatus == 3 ? _rspDuration : 0</Expression>
    <Expression destAttr="TimeInWarningState">globalSystemStatus == 4 ? _rspDuration : 0</Expression>
    <Expression destAttr="TimeInCriticalState">globalSystemStatus == 5 ? _rspDuration : 0</Expression>
    <Expression destAttr="TimeInFailedState">globalSystemStatus == 6 ? _rspDuration : 0</Expression>
    <Expression destAttr="PctTimeInOtherState">globalSystemStatus == 1 ? 100 : 0</Expression>
    <Expression destAttr="PctTimeInUnknownState">globalSystemStatus == 2 ? 100 : 0</Expression>
    <Expression destAttr="PctTimeInNormalState">globalSystemStatus == 3 ? 100 : 0</Expression>
    <Expression destAttr="PctTimeInWarningState">globalSystemStatus == 4 ? 100 : 0</Expression>
    <Expression destAttr="PctTimeInCriticalState">globalSystemStatus == 5 ? 100 : 0</Expression>
    <Expression destAttr="PctTimeInFailedState">globalSystemStatus == 6 ? 100 : 0</Expression>


  • 9.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 21, 2022 09:52 AM
    I have not tried modifying a vendor cert file, but do know of consultants that have with success. Dev has advised me against doing it and so need to stick with that. 

    Perhaps snmpget is the best option here. It is better designed for this. 
    https://techdocs.broadcom.com/us/en/ca-enterprise-software/it-operations-management/ca-unified-infrastructure-management-probes/GA/alphabetical-probe-articles/snmpget-snmp-get.html

    It will allow you to add the OID and let you name the qos object.


  • 10.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 21, 2022 10:51 AM
    Thank you, David, I didn't think about snmpget.

    Snmpget would be a good option, but they want to run the report periodically and if they add another device, they would need another monitoring profile. 

    I think I will go for the custom vendor certifications using Selfcert portlet and maybe adapt the OOB ones.


  • 11.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 25, 2022 05:01 PM
    Hello, David!

    I created custom certifications for the iDRACs and 2 types of switches. I can see all the serial numbers in snmpcollector now.
    For one type of switches I get the serial numbers in CM_DEVICE_ATTRIBUTE, for the other type and the iDRACs I don't.

    I can see all the serial numbers in the snmpcollector database in COMPONENT_ATTRIBUTES.

    Do you have any advice?

    Thank you very much!

    Marius


  • 12.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 25, 2022 05:42 PM
    Does it look like CM_DEVICE_ATTRIBUTE has all the other details for these other type of switches and iDRACs? 

    This can be tough to track down.

    Check the discovery_server logs, search on a problem device IP, and might find a helpful error.

    Could setup snmpcollector on another hub with only one of these problem devices, and configured only to get the system info including the serial number.  Possibly the info coming from this instance will make it in and get associated to the device in CM_DEVICE_ATTRIBUTE, if not add a switch that works configured the same just to collect that info. Then at that hub setup a queue Name: snmp_test, Type: Attach, Subject: QOS_MESSAGE,QOS_DEFINITION. Using DrNimBUS it will be possible to review each message and compare the ones from the one working to not working. If they look the same then it's something at the backend. 




  • 13.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 28, 2022 08:14 AM
    Hello,

    I stand corrected. The Serial Numbers were collected by the discovery_agent. I made some correlations between CM_DEVICE and CM_DEVICE ATTRIBUTES and discovered this. I don't see any of the custom attributes I added collected by snmpcollector.

    I tried snmpget, but the SNs have also letters, so I can't use it.

    My configuration was with the discovery agent on the primary hub and no discovery agent on the hub with snmpcollector. I thought this might be an issue so I installed the discovery agent on the snmpcollector hub too and tested with one device.
    I deleted the device from the inventory and fron snmpcollector, discovered it with the second discovery agent and queried the discovery server. I still don't see the SN.

    Is there a way to configure which OIDs are queried by the discovery agent?
    I see there is a SNMP section in the discovey_agent.cfg.
    <snmp>
    timeout = 4
    num_retries = 1
    <models>
    <SystemEDGE>
    sysObjectID = 1.3.6.1.4.1.546
    model =
    roles = SystemEDGE
    </SystemEDGE>
    </models>
    </snmp>

    Thank you!

    Marius


  • 14.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 28, 2022 09:59 AM
    Side note: discovery effect origin, and origin is a major device correlation factor. 
    example 
    HubA has device under it 
    HubB has discovery_agent
    device has origin HubA from niscache 
    device has origin HubB from discovery
    this can result in two instances of the same device or one instance with two origin depending upon other correlation factors. 

    1.3.6.1.4.1.546 is specific to SystemEDGE with the goal of providing SystemEDGE clients with similar functionality using snmpcollector. 

    Don't have a device with a serial number in my lab. 
    Bumped up loglevel for discovery_agent to see what it gets: 
    entPhysicalTable 0 total rows queried
    entPhysicalTable query status : did not receive any successful variable bindings
    ifTable 7 total rows queried
    ipAddrTable 2 total rows queried
    ipAddressTable 0 total rows queried
    ipAddressTable query status : did not receive any successful variable bindings
    hrDeviceTable 15 total rows queried
    hrDiskStorageTable 1 total rows queried
    hrStorageTable 3 total rows queried
    memorySizeInKBytes=16776664 from HOST-RESOURCES-MIB 

    This is a test it out with no promises and at your own risk type of thing. 
    discovery_agent > raw configure > setup > snmp > models > New Section name it whatever > then add a new key matching the three under SystemEDGE but with your own values. 


  • 15.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 31, 2022 12:17 PM
    Hello David,

    I have tried 
    <DellPowerEdgeiDRAC7>
    sysObjectID = 1.3.6.1.4.1.674.10892.5
    model = 1.3.6.1.4.1.674.10892.2.1.1.11.0
    roles =
    </DellPowerEdgeiDRAC7>

    but it did not query the OID I provided to the model, it changed the model to "1.3.6.1.4.1.674.10892.2.1.1.11.0", literally. 
    Did I do something wrong?
    Did you add memorySizeInKBytes?

    I opened a support case and I was suggested to certify the devices, as per the link bellow:
    https://knowledge.broadcom.com/external/article?articleId=9900&_ga=2.201473303.707105864.1643626046-1051627154.1572358886

    Thank you!
    Marius



  • 16.  RE: Collecting serial numbers with snmpcollector

    Posted Jan 31, 2022 12:32 PM
    in my lab discovery_agent has:
    <SystemEDGE>
    sysObjectID = 1.3.6.1.4.1.546
    model =
    roles = SystemEDGE
    </SystemEDGE>

    so my guess would be along the lines of:
    <DellPowerEdgeiDRAC7>
    sysObjectID = 1.3.6.1.4.1.674.10892.5
    model =
    roles = DellPowerEdgeiDRAC7
    </DellPowerEdgeiDRAC7>