Skip to content

5.2 DNAC Assurance Monitoring

5.2.1 Network Health Dashboard

+------------------------------------------------------------------+
|                    DNAC NETWORK HEALTH DASHBOARD                  |
+------------------------------------------------------------------+
|                                                                    |
|  OVERALL HEALTH: 97%  [████████████████████░░░]                   |
|                                                                    |
|  +------------+  +------------+  +------------+  +------------+   |
|  | WIRED      |  | WIRELESS   |  | CLIENTS    |  | APPS       |   |
|  | 98%        |  | 95%        |  | 96%        |  | 99%        |   |
|  | [████████] |  | [███████░] |  | [███████░] |  | [████████] |   |
|  +------------+  +------------+  +------------+  +------------+   |
|                                                                    |
|  DEVICE HEALTH BY SITE:                                           |
|  +--------------------+-------+--------+--------+--------+        |
|  | Site               | Total | Good   | Fair   | Poor   |        |
|  +--------------------+-------+--------+--------+--------+        |
|  | Mumbai HQ          | 52    | 50     | 2      | 0      |        |
|  | Chennai HQ         | 40    | 39     | 1      | 0      |        |
|  | London HQ          | 46    | 44     | 2      | 0      |        |
|  | Frankfurt HQ       | 32    | 32     | 0      | 0      |        |
|  | New Jersey HQ      | 56    | 54     | 1      | 1      |        |
|  | Dallas HQ          | 36    | 35     | 1      | 0      |        |
|  +--------------------+-------+--------+--------+--------+        |
|                                                                    |
+------------------------------------------------------------------+

5.2.2 Assurance Navigation

# DNAC Assurance > Health

Dashboard_Categories:
  Network_Health:
    Path: Assurance > Health > Network Health
    Metrics:
      - Overall Score
      - Device Reachability
      - Link Utilization
      - Error Rates

  Client_Health:
    Path: Assurance > Health > Client Health
    Metrics:
      - Wired Client Score
      - Wireless Client Score
      - Onboarding Success Rate
      - RSSI Distribution

  Application_Health:
    Path: Assurance > Health > Application Health
    Metrics:
      - Application Response Time
      - Packet Loss
      - Latency
      - Throughput

  Issue_Resolution:
    Path: Assurance > Issues & Events
    Categories:
      - P1 (Critical)
      - P2 (Major)
      - P3 (Minor)
      - P4 (Warning)

5.2.3 Key Health Metrics

Device Health Scoring

Component Weight Metrics
Reachability 25% ICMP, SNMP response
CPU Utilization 20% Average, peak
Memory Utilization 20% Average, peak
Interface Errors 15% CRC, input/output errors
Environmental 10% Temperature, power supply
Software 10% Version compliance, bugs

Client Health Scoring

Component Weight Metrics
Onboarding 30% DHCP, AAA, association time
Connectivity 25% DNS resolution, gateway reachability
RSSI (Wireless) 20% Signal strength distribution
SNR (Wireless) 15% Signal-to-noise ratio
Data Rate 10% Throughput achieved

5.2.4 Custom Dashboard Configuration

# Create Custom Dashboard
# Assurance > Dashboard > + Add Dashboard

Custom_Executive_Dashboard:
  Name: SD-Access Executive Summary
  Widgets:
    - Type: Health_Trend
      Data: Network_Health
      Period: 7_days

    - Type: Top_Issues
      Data: All_Issues
      Count: 10

    - Type: Site_Comparison
      Data: All_Sites
      Metric: Health_Score

    - Type: Authentication_Success
      Data: ISE_Integration
      Period: 24_hours

Custom_Operations_Dashboard:
  Name: NOC Operations View
  Widgets:
    - Type: Real_Time_Alerts
      Severity: P1, P2

    - Type: Device_Status
      Filter: Fabric_Nodes

    - Type: Client_Onboarding
      Metric: Success_Rate
      Period: 1_hour

    - Type: Fabric_Health
      Components: LISP, VXLAN, SGT

5.2.5 Assurance API Queries

#!/usr/bin/env python3
"""
DNAC Assurance API - Health Monitoring Script
"""

import requests
import json
from datetime import datetime

DNAC_HOST = "https://dnac.corp.local"
USERNAME = "api-user"
PASSWORD = "<api_password>"

def get_auth_token():
    """Obtain authentication token from DNAC"""
    url = f"{DNAC_HOST}/dna/system/api/v1/auth/token"
    response = requests.post(url, auth=(USERNAME, PASSWORD), verify=False)
    return response.json()["Token"]

def get_network_health(token):
    """Retrieve overall network health"""
    url = f"{DNAC_HOST}/dna/intent/api/v1/network-health"
    headers = {"X-Auth-Token": token, "Content-Type": "application/json"}

    response = requests.get(url, headers=headers, verify=False)
    return response.json()

def get_client_health(token):
    """Retrieve client health summary"""
    url = f"{DNAC_HOST}/dna/intent/api/v1/client-health"
    headers = {"X-Auth-Token": token, "Content-Type": "application/json"}

    timestamp = int(datetime.now().timestamp() * 1000)
    params = {"timestamp": timestamp}

    response = requests.get(url, headers=headers, params=params, verify=False)
    return response.json()

def get_issues(token, priority="P1"):
    """Retrieve active issues by priority"""
    url = f"{DNAC_HOST}/dna/intent/api/v1/issues"
    headers = {"X-Auth-Token": token, "Content-Type": "application/json"}

    params = {
        "priority": priority,
        "issueStatus": "active"
    }

    response = requests.get(url, headers=headers, params=params, verify=False)
    return response.json()

def main():
    token = get_auth_token()

    # Get network health
    network_health = get_network_health(token)
    print(f"Network Health Score: {network_health['response'][0]['healthScore']}%")

    # Get client health
    client_health = get_client_health(token)
    print(f"Client Health Score: {client_health['response'][0]['scoreDetail'][0]['scoreValue']}%")

    # Get P1 issues
    issues = get_issues(token, "P1")
    print(f"Active P1 Issues: {len(issues.get('response', []))}")

if __name__ == "__main__":
    main()