When ACI switch/spine down alert is received in Smarts, what API query to be used to understand its genuineness.
Smarts - 10.1.x
TCSA - 2.4
To understand connectivity to ACI controller
, run the below queries in same order:
curl -k -X POST -H 'Content-Type: application/json' <PROTOCOL>://<IP>:<PORT>/api/aaaLogin.json -c /tmp/cookie.txt -d '{"aaaUser":{"attributes":{"name":"<USERNAME>","pwd":"<PASSWORD>"}}}'
curl -k -b /tmp/cookie.txt -X GET -H 'Content-Type: application/json' <PROTOCOL>://<APIC-IP>:<PORT>/api/class/topSystem.json
Note: Replace <USERNAME>, <PASSWORD>, <PROTOCOL>, <PORT> and <Device IP> with appropriate values.
In output received using above queries, if "state":"in-service"
that implies that connectivity to ACI is fine from Smarts.
To understand connectivity to Spine/leaf, run python script (spine_leaf_connectivity_test.py
) attached to this article:
Note: In the script, replace <USERNAME>, <PASSWORD>, <PROTOCOL>, <PORT> and <Device IP> with appropriate values.
Script by default has https, if needed change it to http.
Basically, script will call below query to get spine/leaf status:
base_url + 'api/class/fabricNode.json?query-target-filter=and(ne(fabricNode.role,%22unsupported%22),ne(fabricNode.role,%22controller%22)) '
where base_url is <PROTOCOL>://<IP>:<PORT>/api.
From the script output, if adst is off for leaf/spine which will set IsFabricStateDown to TRUE which will trigger Down alarm in Smarts.
Example: u'adSt': u'off'
Logic to create spine Unresponsive and Down are based on its Fabric Sate. The relevant attribute in Smarts is IsFabricStateDown.
If IsUnresponsive_internal is true then it could be because of IsFabricStateDown is true or the below.
IsEveryIPUnresponsive &&
IsEveryIPv6Unresponsive &&
IsEveryServiceUnresponsive &&
(HasFaultInstrumentedService || HasFaultInstrumentedSAP)))
where 'HasFaultInstrumentedService' will be set to true whenever any of the instrumented HostServices has a fault, and 'HasFaultInstrumentedSAP' will be set to true whenever any of the instrumented HostAccessPoints has a fault.