Implemented

We support hardware health already and can be alerted upon.  Anything additional can be collected via the Universal Device Poller

https://oriondemo.solarwinds.com/Orion/NetPerfMon/NodeDetails.aspx?NetObject=N:222

Cisco Nexus Hardware(Fan, Power Supply & Module) Alerts


Hi Team,

It would be great if NPM can poll for Cisco Nexus devices Hardware(Fan, Power Supply & Modules) & provide results. As most of them are moving towards Cisco Nexus for datacenters and every component in a datacenter device becomes highly critical which needs to be alerted. Currently there is no good way for alerting Cisco Nexus modules and no native webview for Nexus Fan, Powersupply & Modules.

I raised a case#582735 for alerting of Cisco Nexus Fan, Power supply & modules and support team advised for a feature request. Kindly look into this as this will benefit many customers as most of them are moving towards Cisco Nexus in datacenters.

Thanks & Regards,

Vasu.V.K

  • Like

    Hotspot Temperature Value: 42 Degree Celsius
    Temperature State: GREEN
    Yellow Threshold : 105 Degree Celsius
    Red Threshold : 125 Degree Celsius
    SW PID Serial# Status Sys Pwr PoE Pwr Watts
    -- ------------------ ---------- --------------- ------- ------- -----
    1A PWR-C1-350WAC DCB1911H1JL OK Good n/a 350
    1B PWR-C1-350WAC DCB1911H1E5 OK Good n/a 350
    2A PWR-C1-350WAC DCB1911H1HG OK Good n/a 350
    2B PWR-C1-350WAC DCB1911H1HM OK Good n/a 350
    3A PWR-C1-350WAC ART2148F8FW OK Good n/a 350
    3B Not Present
    3B alert is triggering which is not at all present on router as well as SolarWinds. Need help
  • Hi
    we are receiving power supply alerts for the one which is not under monitoring
    like switch logs:

  • FormerMember
    FormerMember in reply to mike1843

    How do I create a poller for each power supply?  I created a Custom Poller (ciscoEnvMonSupplyStatusDescr) and assigned to several cisco switches to report power failures. When creating the poller and ran the test, the results showed 2 power supplies.  But when I create an alert using your sql code above (thanks btw), it only reports back the status or the first power supply twice.  I have noticed this with other pollers related to power supplies as well.

    pastedImage_0.png

    pastedImage_1.png

    Any help is appreciated.

  • Nexus Device Tables . UnDP

    Note that the Serial# and Description are from the Cisco Set : 1.3.6.1.2.1.47.1.1.  - I use this set for just about any Serial and or Description information from Cisco devices.

  • Yes dkeyser the tabular pollers work for PowerSupply, Fan & Module and return a valid status that can be alerted on. I have 3 displays of each Rank (PS, FAN & Mod's) - Note that the PS Fans, show with the FANS range of ID's

      * Pressuring Cisco may not work, they have been moving towards a more advanced/convoluted MIB structure that is not so easy to read so that you have to buy their solutions for a full monitoring suite made easy for Cisco *

                    * UnDP's get me around this all day long *

  • I created a poller for each power supply (Including fexs).  I prefixed each pollername with N7KPS.  My alert email has the following in it:  The code is bit long, but it will return the status of each supply in the email.  If a PS does not exist, it will list it as Not Present.

    ${NodeName} has a power supply issue.

    Power Supply 1: ${SQL:SELECT CustomPollerStatus.Status, CustomPollerAssignment.CustomPollerID FROM CustomPollerStatus INNER JOIN CustomPollerAssignment ON (CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID) INNER JOIN CustomPollers ON (CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID) WHERE CustomPollerAssignment.NodeID = ${NodeID} AND CustomPollers.UniqueName = 'N7KPS1' UNION SELECT 'Not Present',NULL WHERE NOT EXISTS ( SELECT 1 FROM CustomPollerStatus INNER JOIN CustomPollerAssignment ON (CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID) INNER JOIN CustomPollers ON (CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID) WHERE CustomPollerAssignment.NodeID = ${NodeID} AND CustomPollers.UniqueName = 'N7KPS1')}
    Power Supply 2: ${SQL:SELECT CustomPollerStatus.Status, CustomPollerAssignment.CustomPollerID FROM CustomPollerStatus INNER JOIN CustomPollerAssignment ON (CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID) INNER JOIN CustomPollers ON (CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID) WHERE CustomPollerAssignment.NodeID = ${NodeID} AND CustomPollers.UniqueName = 'N7KPS2' UNION SELECT 'Not Present',NULL WHERE NOT EXISTS ( SELECT 1 FROM CustomPollerStatus INNER JOIN CustomPollerAssignment ON (CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID) INNER JOIN CustomPollers ON (CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID) WHERE CustomPollerAssignment.NodeID = ${NodeID} AND CustomPollers.UniqueName = 'N7KPS2')}
    Power Supply 3: ${SQL:SELECT CustomPollerStatus.Status, CustomPollerAssignment.CustomPollerID FROM CustomPollerStatus INNER JOIN CustomPollerAssignment ON (CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID) INNER JOIN CustomPollers ON (CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID) WHERE CustomPollerAssignment.NodeID = ${NodeID} AND CustomPollers.UniqueName = 'N7KPS3' UNION SELECT 'Not Present',NULL WHERE NOT EXISTS ( SELECT 1 FROM CustomPollerStatus INNER JOIN CustomPollerAssignment ON (CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID) INNER JOIN CustomPollers ON (CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID) WHERE CustomPollerAssignment.NodeID = ${NodeID} AND CustomPollers.UniqueName = 'N7KPS3')}
    Power Supply 4: ${SQL:SELECT CustomPollerStatus.Status, CustomPollerAssignment.CustomPollerID FROM CustomPollerStatus INNER JOIN CustomPollerAssignment ON (CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID) INNER JOIN CustomPollers ON (CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID) WHERE CustomPollerAssignment.NodeID = ${NodeID} AND CustomPollers.UniqueName = 'N7KPS4' UNION SELECT 'Not Present',NULL WHERE NOT EXISTS ( SELECT 1 FROM CustomPollerStatus INNER JOIN CustomPollerAssignment ON (CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID) INNER JOIN CustomPollers ON (CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID) WHERE CustomPollerAssignment.NodeID = ${NodeID} AND CustomPollers.UniqueName = 'N7KPS4')}


    Miscellaneous Pod Power Supply 1: ${SQL:SELECT CustomPollerStatus.Status, CustomPollerAssignment.CustomPollerID FROM CustomPollerStatus INNER JOIN CustomPollerAssignment ON (CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID) INNER JOIN CustomPollers ON (CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID) WHERE CustomPollerAssignment.NodeID = ${NodeID} AND CustomPollers.UniqueName = 'N7KPSMiscPodPS1' UNION SELECT 'Not Present',NULL WHERE NOT EXISTS ( SELECT 1 FROM CustomPollerStatus INNER JOIN CustomPollerAssignment ON (CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID) INNER JOIN CustomPollers ON (CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID) WHERE CustomPollerAssignment.NodeID = ${NodeID} AND CustomPollers.UniqueName = 'N7KPSMiscPodPS1')}
    Miscellaneous Pod Power Supply 2: ${SQL:SELECT CustomPollerStatus.Status, CustomPollerAssignment.CustomPollerID FROM CustomPollerStatus INNER JOIN CustomPollerAssignment ON (CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID) INNER JOIN CustomPollers ON (CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID) WHERE CustomPollerAssignment.NodeID = ${NodeID} AND CustomPollers.UniqueName = 'N7KPSMiscPodPS2' UNION SELECT 'Not Present',NULL WHERE NOT EXISTS ( SELECT 1 FROM CustomPollerStatus INNER JOIN CustomPollerAssignment ON (CustomPollerStatus.CustomPollerAssignmentID = CustomPollerAssignment.CustomPollerAssignmentID) INNER JOIN CustomPollers ON (CustomPollers.CustomPollerID = CustomPollerAssignment.CustomPollerID) WHERE CustomPollerAssignment.NodeID = ${NodeID} AND CustomPollers.UniqueName = 'N7KPSMiscPodPS2')}

  • Rather than pressuring Solarwinds to poll these stats, I think we would be better off in the long run to pressure Cisco to implement OIDs specific to the modules we would like to poll.  Using the table mentioned above is much better than having no monitoring at all but it is still just a workaround.

  • Are you able to send me details of that alert?

    thanks