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.
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
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...
Thanks for reply. Let me know if you got any work around for this.
Thanks for reply, but unable to find sensor* table in database. please help to get this.
Is it required any special permission..
awesome peice of code like it.
can i ask what was your throught process here x.NODEID= ${NODEID})
ans can you do thjs with captions?