Quantcast
Channel: THWACK: Document List - Network Performance Monitor
Viewing all articles
Browse latest Browse all 1956

Cisco ASA Hardware Health & failover status monitoring

$
0
0

*****UPDATE:-  HARDWARE HEALTH IS INCLUDED IN NPM 12.2 PLEASE UPGRADE****

IF HARDWARE HEALTH IS MARKED AS CRITICAL ITS KNOWN ISSUE AND DEVELOPMENT TEAM IS CURRENTLY WORKING ON THIS

 

 

 

 

 

Hello Everyone.

In this article i have combined the required steps and information in order to monitor the Cisco Cisco ASA Hardware Health and fail-over status in Orion as work around .

If you have any difficulty please let me know .

Please Note: I have Cisco ASA 5506 and result may differ depending on the version and model you have.

 

✔ Download and import pre-build universal device poller (Attached - Scroll down to the page )

✔ Assign the UNDP Poller to required node and test

✔ Get the poller ID

✔ Custom SWQL Query

✔ Create Custom Query resource

 

 

Download the Custom Poller (Attached) and import in the Universal Device Poller

 

Open Universal Device Poller on the Orion Server >

 

 

Once imported > Right click on each Poller > Assign >

 

 

Assign it to your ASA > Test > (To make sure its working and valid for the ASA ) > Finish

 

 

Get the Poller ID

 

Now Go to your Cisco ASA Node>(Top Right Corner ) >  Click on the "Customize Page" >

Click on the + button > Search for the Resource "Universal Device Poller Status" >

Select Click "Submit"

 

 

 

You will be bale to see the below resource on the Node Details page.

 

Right Click on the first Poller and Copy Link address

 

 

Paste it in the Notepad copy what you need is the PollerID see an example below

 

Make a list for all the pollers one by one.(Remember Marking and sequence  )

 

Category

Poller Name

Poller ID

Hardware Health

entPhySensorValue

d3ef4593-7bf3-4cb0-a663-84028d36dca5

Hardware Health

entPhysicalName

2c6c8d51-6e76-4c16-8007-b0c7a4bfbfa9

Hardware Health

entPhySensorUnitsDisplay

4359cd09-0789-4bbe-a705-32d0c35e4af3

Hardware Health

ceSensorExtThresholdSeverity

ac89813d-9368-4a1c-a00c-987f9a7cd08c

Hardware Health

entPhySensorType

ba5b6415-edbc-4a1b-90f3-4930961e5615

Hardware Health

ceSensorExtThresholdEvaluation

43fe9676-5d5a-4a33-8d92-3d755f6b0dee

FailOver

cfwHardwareInformation

ce86effb-8cf5-4a06-9fa0-00cf54222702

FailOver

cfwHardwareStatusDetail

b6fdaae8-0e4c-4258-bd41-0d7037699985

FailOver

cfwHardwareStatusValue

45dd90df-9eb5-4e4c-8eac-cd463a4437c7

 

 

 

Create your custom SWQL Query Now change the below SQL Query according to the above Poller ID

 

 

*******SWQL FOR Hardware STATUS*******

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='d3ef4593-7bf3-4cb0-a663-84028d36dca5') 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='2c6c8d51-6e76-4c16-8007-b0c7a4bfbfa9') 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='4359cd09-0789-4bbe-a705-32d0c35e4af3') 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='ac89813d-9368-4a1c-a00c-987f9a7cd08c') 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='ba5b6415-edbc-4a1b-90f3-4930961e5615') 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='43fe9676-5d5a-4a33-8d92-3d755f6b0dee') AND (CA.NodeID=${NodeID})

) Sensor_Severity ON Sensor_Severity.RowID=Sensor_Values.RowID AND Sensor_Severity.NodeID=Sensor_Values.NodeID

 

 

 

 

******SWQL FOR FAILOVER STATUS*****

 

SELECT Caption_Values.Value as Caption,
  State_values.Value as State,
  CASE Caption_values.RowID
  WHEN 6 THEN --Status for primary unit
   CASE State_raw.Value
   WHEN 1 THEN '/Orion/Images/StatusIcons/Small-Unknown.gif'
   WHEN 2 THEN '/Orion/Images/StatusIcons/Small-Up.gif'
   WHEN 3 THEN '/Orion/Images/StatusIcons/Small-Down.gif'
   WHEN 4 THEN '/Orion/Images/StatusIcons/Small-Down.gif'
   WHEN 5 THEN '/Orion/Images/StatusIcons/Small-Down.gif'
   WHEN 6 THEN '/Orion/Images/StatusIcons/Small-Down.gif'
   WHEN 7 THEN '/Orion/Images/StatusIcons/Small-Down.gif'
   WHEN 8 THEN '/Orion/Images/StatusIcons/Small-Up-Down.gif'
   WHEN 9 THEN '/Orion/Images/StatusIcons/Small-Up.gif'
   WHEN 10 THEN '/Orion/Images/StatusIcons/Small-Up-Critical.gif'
   ELSE '/Orion/Images/StatusIcons/Small-Unknown.gif'
   END
  WHEN 4 THEN '/Orion/Images/StatusIcons/Small-Unknown.gif'
  WHEN 7 THEN
   CASE State_raw.Value
   WHEN 1 THEN '/Orion/Images/StatusIcons/Small-Unknown.gif'
   WHEN 2 THEN '/Orion/Images/StatusIcons/Small-Up.gif'
   WHEN 3 THEN '/Orion/Images/StatusIcons/Small-Down.gif'
   WHEN 4 THEN '/Orion/Images/StatusIcons/Small-Down.gif'
   WHEN 5 THEN '/Orion/Images/StatusIcons/Small-Down.gif'
   WHEN 6 THEN '/Orion/Images/StatusIcons/Small-Down.gif'
   WHEN 7 THEN '/Orion/Images/StatusIcons/Small-Down.gif'
   WHEN 8 THEN '/Orion/Images/StatusIcons/Small-Up-Down.gif'
   WHEN 9 THEN '/Orion/Images/StatusIcons/Small-Up.gif'
   WHEN 10 THEN '/Orion/Images/StatusIcons/Small-Up.gif'
   ELSE '/Orion/Images/StatusIcons/Small-Unknown.gif'
   END
  ELSE '/Orion/Images/StatusIcons/Small-Unknown.gif'
  END as [_IconFor_Caption]
 
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='ce86effb-8cf5-4a06-9fa0-00cf54222702') AND (CA.NodeID=${NodeId})

) Caption_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='b6fdaae8-0e4c-4258-bd41-0d7037699985') AND (CA.NodeID=${NodeId})
) State_values ON (Caption_Values.RowID= State_Values.RowID) AND (Caption_Values.NodeID = State_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='45dd90df-9eb5-4e4c-8eac-cd463a4437c7') AND (CA.NodeID=${NodeId})
) State_raw ON (State_Raw.RowID=Caption_Values.RowID) AND (State_Raw.NodeID=Caption_Values.NodeID)

WHERE NodeId=${NodeId}

 

 

Create custom query resources

 

Add "Custom Query" Resource on the Node details page .

 

 

Pate the above custom query in two different Custom Resources

 

 

Results:

 

Depending on the ASA version you have will be different

 


Viewing all articles
Browse latest Browse all 1956

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>