7 Replies Latest reply on Jul 4, 2016 1:03 AM by lll8lll

    create custom hardware sensor using OID's

    Vijay Raje

      For Cisco Fabric Interconnect we have created several UNDP poller to show hardware information such as power consumption.

       

      Is there any way to create custom hardware sensor using OID's. & it should show under below hardware health view.

       

      hard health.JPG

        • Re: create custom hardware sensor using OID's
          lll8lll

          I have for days to create custom hardware sensors, and as far as I can see it is not possible.

           

          This is very dissapointing, and I hope Solarwinds do something about it. Much of the point in having the

          system is to monitor the hardware health of our devices.

           

          I have tried to poll the hardware sensors with UnDP pollers. I get the values, and I can create alerts,

          however there is no way to create a similar view as the view for the native HW sensors.

           

          For a Cisco ASA there is 15 sensors. In order to monitor all of them I have to create 15 UnDP pollers

          and 15 alerts. I could have done with onlu one,  if summary of a SNMP table had worked with UnDp, but it dont.

           

          I could have gotten away with one Alert if it was possible to create sensible AND/OR clauses in the

          alert manager, but it isnt (only insensible ones...).

           

          I could have made a similar view as the one you have posted if Custom Tables supported scope, but

          they dont....

           

          I Could have made a similar view as the one you have posted if Custom Queries supported cell formatting,

          but they dont...

           

          The only thing I havent tried is to attach a INSERT SQL clause to the UnDP pollers ti insert the polled

          values into the native hardware sensor table. However this is not documented in any good way so I

          hessitate to try it.

           

          So I am stuck...

            • Re: create custom hardware sensor using OID's
              Vijay Raje

              Thanks for reply. Let me know if you got any work around for this.

                • Re: create custom hardware sensor using OID's
                  lll8lll

                  The only workaround is to use UnDP pollers, and create a custom view for the information.

                  I ended up with using a Custom Query resource. The SQL for the Custom query is here:

                   

                  SELECT  Sensor_Names.Value as Name,
                    CASE Sensor_Type.value
                    WHEN 10 THEN ToString(Sensor_Values.Value + ' Rpm')
                    WHEN 12 THEN CASE Sensor_Values.Value WHEN 2 THEN 'DOWN' ELSE 'OK' END
                    WHEN 8 THEN ToString(Sensor_Values.Value + ' °C')
                    ELSE ToString(Sensor_Values.Value + ' ' + Sensor_Display.Value)
                    END as Unit,
                    --Sensor_Severity.value as Severity,
                    --Sensor_Status.Value as Status,
                    CASE Sensor_Type.value
                    WHEN 8 THEN
                     CASE Sensor_Status.value
                     WHEN 0 THEN '/Orion/HardwareHealth/Images/Temperature_Up.png'
                     ELSE '/Orion/HardwareHealth/Images/Temperature_Down.png'
                     END
                    WHEN 10 THEN
                     CASE Sensor_Status.value
                     WHEN 0 THEN '/Orion/HardwareHealth/Images/Fan_Up.png'
                     ELSE '/Orion/HardwareHealth/Images/Fan_Down.png' END
                    WHEN 12 THEN
                     CASE Sensor_Status.value
                     WHEN 0 THEN '/Orion/HardwareHealth/Images/PowerSupply_Up.png'
                     ELSE '/Orion/HardwareHealth/Images/PowerSupply_Down.png' END
                    ELSE
                     CASE Sensor_Status.value
                     WHEN 0 THEN '/Orion/HardwareHealth/Images/Generic_Up.png'
                     ELSE '/Orion/HardwareHealth/Images/Generic_Down.png' END
                    END as [_IconFor_Name]
                   
                  FROM (
                    SELECT CS.RowID as RowID, IsNull(CS.Status, 0) as Value, CA.NodeID
                    FROM Orion.NPM.CustomPollerStatus CS
                    INNER JOIN Orion.NPM.CustomPollerAssignment CA ON CA.CustomPollerAssignmentID = CS.CustomPollerAssignmentID
                    WHERE (CA.CustomPollerID='E200B54B-C47B-42F7-89C6-5F0784724C0A') AND (CA.NodeID=${NodeID})

                  ) Sensor_Values

                  LEFT OUTER JOIN (
                    SELECT CS.RowID as RowID, IsNull(CS.Status, 0) as Value, CA.NodeID
                    FROM Orion.NPM.CustomPollerStatus CS
                    INNER JOIN Orion.NPM.CustomPollerAssignment CA ON CA.CustomPollerAssignmentID = CS.CustomPollerAssignmentID
                    WHERE (CA.CustomPollerID='ABB18B3C-BCB2-473D-AC66-24BED1C8C799') AND (CA.NodeID=${NodeID})
                  ) Sensor_Names ON Sensor_Names.RowID=Sensor_Values.RowID AND Sensor_Names.NodeID=Sensor_Values.NodeID

                  LEFT OUTER JOIN (
                    SELECT CS.RowID as RowID, IsNull(CS.Status, 0) as Value, CA.NodeID
                    FROM Orion.NPM.CustomPollerStatus CS
                    INNER JOIN Orion.NPM.CustomPollerAssignment CA ON CA.CustomPollerAssignmentID = CS.CustomPollerAssignmentID
                    WHERE (CA.CustomPollerID='F2DA14E8-0A02-4DDD-94A8-B997E7981716') AND (CA.NodeID=${NodeID})
                  ) Sensor_Display ON Sensor_Display.RowID=Sensor_Values.RowID AND Sensor_Display.NodeID=Sensor_Values.NodeID

                  LEFT OUTER JOIN (
                    SELECT SUBSTRING(CS.RowID, 1, 2) as RowID, IsNull(CS.Status, 0) as Value, CA.NodeID
                    FROM Orion.NPM.CustomPollerStatus CS
                    INNER JOIN Orion.NPM.CustomPollerAssignment CA ON CA.CustomPollerAssignmentID = CS.CustomPollerAssignmentID
                    WHERE (CA.CustomPollerID='9A8397E8-DC3C-4674-902D-F5DE8EB7F796') AND (CA.NodeID=${NodeID})
                  ) Sensor_Status ON Sensor_Status.RowID=Sensor_Values.RowID AND Sensor_Status.NodeID=Sensor_Values.NodeID

                  LEFT OUTER JOIN (
                    SELECT CS.RowID as RowID, IsNull(CS.Status, 0) as Value, CA.NodeID
                    FROM Orion.NPM.CustomPollerStatus CS
                    INNER JOIN Orion.NPM.CustomPollerAssignment CA ON CA.CustomPollerAssignmentID = CS.CustomPollerAssignmentID
                    WHERE (CA.CustomPollerID='57F28AF3-D7AB-408B-897E-674D72BFFB74') AND (CA.NodeID=${NodeID})
                  ) Sensor_Type ON Sensor_Type.RowID=Sensor_Values.RowID AND Sensor_Type.NodeID=Sensor_Values.NodeID

                  LEFT OUTER JOIN (
                    SELECT SUBSTRING(CS.RowID, 1, 2) as RowID, IsNull(CS.Status, 0) as Value, CA.NodeID
                    FROM Orion.NPM.CustomPollerStatus CS
                    INNER JOIN Orion.NPM.CustomPollerAssignment CA ON CA.CustomPollerAssignmentID = CS.CustomPollerAssignmentID
                    WHERE (CA.CustomPollerID='AE8F6616-4408-4332-B376-3A39E7BBCA23') AND (CA.NodeID=${NodeID})
                  ) Sensor_Severity ON Sensor_Severity.RowID=Sensor_Values.RowID AND Sensor_Severity.NodeID=Sensor_Values.NodeID