Introduction to the Monitoring REST API
The Monitoring REST API allows allow you to gather session and node-specific information by using Monitoring nodes in your network. A session is defined as the duration between when you access a desired node and complete the operations needed to gather information.
Monitoring REST API calls allow you to locate, monitor, and accumulate important real-time, session-based information stored in individual endpoints in a network. You can access this information through a Monitoring node.
The real-time, session-based information that you gather can help understand Cisco ISE operations and assist in diagnosing conditions or issues. It can also be used to troubleshoot error conditions or an activity or behavior that may be affecting monitoring operations. As shown in Figure 1-1, the Monitoring REST API calls are used to access the Monitoring node and retrieve important session-based information that is stored in the Cisco ISE deployment endpoints.
Figure 1-1 Monitoring REST API Calls in a Distributed Deployment
To perform operations using the Monitoring REST APIs, the users must be assigned to one of the following Admin Groups and must be authenticated against the credentials stored in the Cisco ISE internal database (internal admin users):
The following Monitoring REST API categories are supported:
You can use these APIs to gather information about endpoints being monitored by the Monitoring persona. For the remainder of this guide, “Monitoring node” will be used to describe the Monitoring persona of a Cisco ISE node.
Any attempt to use these categories to gather information about the Policy Service persona of a Cisco ISE appliance will result in an error. For more information about Cisco ISE nodes and personas, see Cisco Identity Services Engine Admin Guide.
Verifying a Monitoring Node
Before you can successfully invoke the API calls on a Monitoring node, you need to verify that the node you want to monitor is valid.
Note To be able to use a public Monitoring REST API, you must first authenticate with Cisco ISE using valid credentials.
Step 1 Enter valid login credentials (Username and Password) in the Cisco ISE Login window, and click Login.
The Cisco ISE dashboard and user interface appears.
Step 2 Choose Administration > System > Deployment.
The Deployment Nodes page appears, which lists all configured nodes that are deployed.
Step 3 In the Roles column of the Deployment Nodes page, verify that the role for the target node that you want to monitor is listed as a Monitoring node.
Supported API Calls
The following tables describe the different types of API calls and provide an example of the API call format:
- Table 1-1—defines API calls for session management.
- Table 1-2—defines API calls for troubleshooting.
- Table 1-3—defines CoA API calls.
If you intend to use a generic programmatic interface to authenticate with the Monitoring REST API supported by Cisco ISE, you need to first create a REST-based client that bridges Cisco ISE and the specific tool you use. You then use this REST client to authenticate with the Cisco ISE Monitoring REST APIs, marshal and submit the API requests to the Monitoring nodes, and then unmarshal the API responses and pass them on to the specified tool.
|
|
---|---|
Lists the number of active sessions. https://<ISEhost>/admin/API/mnt/Session/ActiveCount Note You must add the HTTP authorization header with the authorization credentials to view the number of active sessions. |
|
Lists the number of Postured endpoints. https://<ISEhost>/admin/API/mnt/Session/PostureCount Note Posture is a service that aids in checking the state (or posture) for all the endpoints that connect to a Cisco ISE network. Cisco ISE utilizes NAC Agent for checking the posture compliance of a device. |
|
Lists the number of active Profiler service sessions. https://<ISEhost>/admin/API/mnt/Session/ProfilerCount Note Profiler is a service that aids in identifying, locating, and determining the capabilities of all attached endpoints on a Cisco ISE network. |
|
Note A session list includes the MAC address, network access device (NAD) IP address, username, and session ID information associated with a session. |
|
https://<ISEhost>/admin/API/mnt/Session/ActiveList Note In this release of Cisco ISE, the maximum number of active authenticated endpoint sessions that can be displayed is limited to 250,000. |
|
Lists all currently active authenticated sessions. https://<ISEhost>/admin/API/mnt/Session/AuthList/<parameteroptions> You can specify the following parameter options that will return different values:
Enter the date and time for the start time and end time in the following format:
Note Every Cisco ISE node is configured with a time zone. Recommended time zone is UTC. See Sample Data Returned from the AuthList API Call with the null/null Option, for samples that show all four parameter options. |
|
Note This is a timestamp-based search for the latest session that contains the specified search attribute. |
|
Searches the database for the latest session that contains the specified MAC address. https://<ISEhost>/admin/API/mnt/Session/MACAddress/<macaddress> Note XX:XX:XX:XX:XX:XX is the MAC address format and is not case sensitive (for example, 0a:0B:0c:0D:0e:0F). Note The MAC address serves as the only unique key to finding the correct session you want to monitor. Use the ActiveList API call to list all active sessions and their MAC addresses, from which you can base your MAC address search. |
|
Searches the database for the latest session that contains the specified username. https://<ISEhost>/admin/API/mnt/Session/UserName/<username> Note Usernames must conform to the same Cisco ISE password policy used for network usernames. The only invalid character for the Monitoring REST APIs is the backslash (\) character. For details, see “User Password Policy” in Cisco Identity Services Engine User Guide, Release 1.1. |
|
Searches the database for the latest session that contains the specified NAS IP address (IPv4 or IPv6 address). https://<ISEhost>/admin/API/mnt/Session/IPAddress/<nasipaddress> Note xxx.xxx.xxx.xxx is the NAS IP address format (for example, 10.10.10.10) https://<ISEhost>/admin/API/mnt/Session/IPAddress/<nasipv6address> Note xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx is the NAS IPv6 address format (for example, 2001:cdba:0:0:0:0:3247:9651) |
|
Searches the database for the latest session that contains the specified audit session ID. https://<ISEhost>/admin/API/mnt/Session/Active/SessionID/<audit-session-id>/0 Note Use the ActiveList API call to list all active sessions and their audit session IDs, from which you can base your audit session ID search. Alternatively, you can obtain the audit session ID from the Live Sessions page in the Admin portal. |
For specific details about Cisco ISE API calls for session management, see Chapter 2, “Session Management Query APIs”.
|
|
---|---|
Lists the node version and type. https://<ISEhost>/admin/API/mnt/Version Node type can be any of the following values (0-3): Note STAND_ALONE_MNT_NODE means it is a Monitoring node that does not function in any distributed deployment. |
|
Lists the reasons for failure. https://<ISEhost>/admin/API/mnt/FailureReasons Each failure reason displays an error code (failureReason id), a brief description (code), a failure reason (cause), and a possible response (resolution), as shown in the following example: <failureReason id="100009"> Note The FailureReasons API call to be called only once to gather the information from the Monitoring node. You should store the contents of any returned failure reasons into your own file system or database. The returned contents of these API calls are intended to be used for reference purposes. If you experience any issues during authentication, you should compare the failure reason code provided in the authentication response with the list of failure reasons that you have stored in your own file system or database. For a complete list of Cisco ISE failure reasons, see Appendix A, “Cisco ISE Failure Reasons Report” . |
|
Lists the authentication status for all sessions. https://<ISEhost>/admin/API/mnt/AuthStatus/MACAddress/<macaddress>/<numberofseconds>/<numberofrecordspermacaddress>/All Note The seconds parameter <numberofseconds> is user-configurable, the range is from 0 to 432000 seconds (5 days). |
|
Lists the accounting status of all sessions within a specific period of time. https://<ISEhost>/admin/API/mnt/AcctStatusTT/MACAddress/ Note The seconds parameter <numberofseconds> is user-configurable, with the range is from 0 to 432000 seconds (5 days). |
For specific details about Cisco ISE API calls for troubleshooting, see Chapter 2, “Session Management Query APIs”.
For details about Cisco ISE Change of Authorization API calls, see Chapter 4, “Change of Authorization REST APIs”.
HTTP PUT API Calls
Similar to AuthStatus API call in Table 1-2 , there is an HTTP PUT version of an API call that allows clients to retrieve account status. The Monitoring REST API supports both HTTP PUT and HTTP GET calls, with the examples in this guide documenting HTTP GET calls. HTTP PUT addresses the need for calls that require parameter inputs. The following schema file example is a request for account status: