The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This document describes the basic configuration and troubleshooting for Playback feature on a Digital Network Architecture Center (DNAC) and Connected Mobile Experience (CMX) Server integration.
Playback is part of the CMX location services which provides end host live location and tracking over Wireless floor maps which can be integrated with DNA Analytics functionality.
Cisco recommends that you have knowledge of these topics:
- DNA Center and CMX must be already integrated.
- Floor map have been added or imported on DNAC WebGUI > Design > Network Hierarchy section.
- End hosts are displayed on the corresponding map.
- Basic linux foundation.
The information in this document is based on these software and hardware versions:
- DNA Center running version 2.1.2.5
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document have been configured for testing purposes. If your network is live, ensure that you understand the potential impact of any command.
This section provides information you can use in order to troubleshoot your configuration.
$ magctl appstack status | egrep "STATUS|dna-maps-service"
NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
fusion dna-maps-service-7dffd9d6b6-58qjb 1/1 Running 3 133d <none>
It would be required to have service in Ready and Running Status.
$ magctl service status dna-maps-service
Name: dna-maps-service-7dffd9d6b6-58qjb
Namespace: fusion
Node:
Start Time: Tue, 01 Dec 2020 19:43:27 +0000
Labels: pod-template-hash=3899858262
serviceName=dna-maps-service
version=7.14.117.62009
Annotations: <none>
Status: Running
IP:
Controlled By: ReplicaSet/dna-maps-service-7dffd9d6b6
Containers:
dna-maps-service:
Container ID: docker://ddbe6999823a6830983611c1900c4a5d255b40b5a1957bef2d2ecddcd606a0b9
Image: maglev-registry.maglev-system.svc.cluster.local:5000/fusion/dna-maps-service:7.14.117.62009
Image ID: docker-pullable://maglev-registry.maglev-system.svc.cluster.local:5000/fusion/dna-maps-service@sha256:0b6510c1c29d260492647b586ffb714f1689ae7ec9d5f63905bb0ad4dac738c9
Ports: 22222/TCP, 11111/TCP
Host Ports: 0/TCP, 0/TCP
State: Running
.
.
<Output omitted>
.
.
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
.
.
<Output omitted>
.
.
Events: <none>
Note: It is recommended to run this set of commands a couple of times (each 10 minutes) to ensure the service is not having constant restarts. In case the service is reloading constantly, refer to the second command to verify the last service Events section for more detail.
1. Click on the icon on the top left of the DNAC Web GUI.
2. Go to System > Settings > DNA Spaces/CMX Servers.
3. Confirm the CMX Server/s are added into the correct section and marked as Registered status.
4. From DNAC CLI ping the CMX Server.
5. Click on the icon on the top left of the DNAC Web GUI.
6. Go to Design > Network Settings > Wireless.
7. Confirm on the DNA Spaces/CMX Servers section that the desired server is Selected and Saved on the Global Hierarchy or the desired site.
1. Click on the icon on the top left of the DNAC Web GUI
2. Go to System > Settings > Debugging logs.
3. On Service list, select dna-maps-service. Then select Debug as Logging Level and define a timestamp.
4. Click on Save and this will automatically start debugging our selected service.
Note: Before DNAC version 2.1.2.x (Wolverine), running dna-maps debugging is not supported through DNAC Web GUI. So, it is required to turn ON service debugs manually on DNAC CLI
To generate debug level on dna-maps-service we would need to connect to DNAC CLI and modify the API parameters to the needed value:
Generate Authentication Token
$ curl -s -k -u admin -X POST https://<DNAC_IP>/dna/system/api/v1/auth/token | jq -r .Token
Use the following CURL command to enable debugging for the dna-maps-service. Ensure that the response comes back as a 200 OK
$ curl -k -i -X POST 'https://<DNAC_IP>/api/v1/dna-maps-service/testing/logging/level?loggingLevel=5 ' --header 'X-Auth-Token:<TOKEN_FROM_PREVIOUS_STEP>' --form 'Content-Type='
Example:
$ curl -k -i -X POST 'https://x.x.x.x/api/v1/dna-maps-service/testing/logging/level?loggingLevel=5 ' --header 'X-Auth Token:eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI1ZjQ2NDZkOGE3NmQ4ZDAwY2UzNzA4ZWYiLCJhdXRoU291cmNlIjoiaW50ZXJuYWwiLCJ0ZW5hbnROYW1lIjoiVE5UMCIsInJvbGVzIjpbIjVmNDY0NmQ4YTc2ZDhkMDBjZTM3MDhlZSJdLCJ0ZW5hbnRJZCI6IjVmNDY0NmQ3YTc2ZDhkMDBjZTM3MDhlYyIsImV4cCI6MTYxODQyNDE3OCwiaWF0IjoxNjE4NDIwNTc4LCJqdGkiOiIwYTU4YWVmYS03ZTgwLTRlOGUtODg4OC0wODBiNTk4ZWM0NTciLCJ1c2VybmFtZSI6ImFkbWluIn0.Li0BGN3VeVRIeWlrUsd94hnQt0xlCx0fJHCAtg0pQ7wx9MMC1UMImcuFabHXUgVmHcDrIAgds5GyBnNaPKfgs9qsvmjhJyVHZdT7_f8YJ2BihkgEokfJbIkcb7Ulp7AqIzceACYpZXeBmfQtDCNDyJveoz1XLaKu69JYzArf8UaPzg3jHVoq9m6N5ohypMC-pmsp87-SbOoD-2x660K7Ankzqqtxw4vhyAp0atcYujPg0-8G4fkOPrLE-Cw6SXb8YonrjWVPbrBwfqENTr6sUj7SrPlH_CVBGzRG20YxaYvn_yeGG8E1pbCgDEK2UjyRaH-FM9BHIqY3TNUIf0mdvQ' --form 'Content-Type='
HTTP/1.1 100 Continue
HTTP/1.1 200 OK
$ magctl service logs -rf dna-maps-service | lql
This will start displaying the logs on the CLI, it is recommended to save the logging on the application terminal or add the option > log.txt at the end of the command to automatically store the outputs into a log file on /home/maglev path.
1. Go into the Floor map where a non working end host is located at.
2. Click on the end host blue icon. This will open a new side tab with the Client 360 information with the MAC Address, IP and related information.
3. Click again on the Playback tab.
At this point, the DNA Center would be displaying on CLI the backend service debugs with the conversion between DNAC and CMX Server.
Example:
|2021-03-31 16:23:13,024 | DEBUG | scheduler-12 | | o.s.web.client.RestTemplate | - Created GET request for "https://x.x.x.x/api/location/v3/clients/count?associatedOnly=true "
|2021-03-31 16:23:13,024 | DEBUG | scheduler-12 | | o.s.web.client.RestTemplate | - Setting request Accept header to [application/xml, text/xml, application/json, application/*+xml, application/*+json]
|2021-03-31 16:23:16,028 | DEBUG | scheduler-12 | | o.s.web.client.RestTemplate | - GET request for "https://x.x.x.x/api/location/v3/clients/count?associatedOnly=true " resulted in 503 (Service Unavailable); invoking error handler
|2021-03-31 16:23:16,030 | ERROR | scheduler-12 | | c.c.a.m.c.p.i.CMXVerificationRestClientImpl | - Error occurred during interaction with CMX to get client counts for CMX IpAddr x.x.x.x org.springframework.web.client.HttpServerErrorException: 503 Service Unavailable at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:89)
~[spring-web-4.3.19.RELEASE.jar:4.3.19.RELEASE] at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:708)
~[spring-web-4.3.19.RELEASE.jar:4.3.19.RELEASE] at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:661)
~[spring-web-4.3.19.RELEASE.jar:4.3.19.RELEASE] at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:621)
~[spring-web-4.3.19.RELEASE.jar:4.3.19.RELEASE] at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:539)
~[spring-web-4.3.19.RELEASE.jar:4.3.19.RELEASE] at com.cisco.apicem.maps.cmx.proxy.impl.CMXVerificationRestClientImpl.checkCMXServiceability(CMXVerificationRestClientImpl.java:169)
~[cmx-proxy-7.14.264.62702.jar:7.14.264.62702] at com.cisco.csg.ngmaps.impl.apicem.integration.diagnostic.cmx.CMXDiagnosticJob.diagnose(CMXDiagnosticJob.java:114)
~[classes/:na] at jdk.internal.reflect.GeneratedMethodAccessor118.invoke(Unknown Source) ~[na:na]
Caution: Once troubleshooting is done, it is required to set again debugging level to default in case it was configured on DNAC CLI
$ curl -k -i -X POST 'https://<DNAC_IP>/api/v1/dna-maps-service/testing/logging/level?loggingLevel=3 ' --header 'X-Auth-Token:<TOKEN_FROM_PREVIOUS_STEP>' --form 'Content-Type='
Example:
$ curl -k -i -X POST 'https://x.x.x.x/api/v1/dna-maps-service/testing/logging/level?loggingLevel= 3' --header 'X-Auth-Token:eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiI1ZjQ2NDZkOGE3NmQ4ZDAwY2UzNzA4ZWYiLCJhdXRoU291cmNlIjoiaW50ZXJuYWwiLCJ0ZW5hbnROYW1lIjoiVE5UMCIsInJvbGVzIjpbIjVmNDY0NmQ4YTc2ZDhkMDBjZTM3MDhlZSJdLCJ0ZW5hbnRJZCI6IjVmNDY0NmQ3YTc2ZDhkMDBjZTM3MDhlYyIsImV4cCI6MTYxODQyNDE3OCwiaWF0IjoxNjE4NDIwNTc4LCJqdGkiOiIwYTU4YWVmYS03ZTgwLTRlOGUtODg4OC0wODBiNTk4ZWM0NTciLCJ1c2VybmFtZSI6ImFkbWluIn0.Li0BGN3VeVRIeWlrUsd94hnQt0xlCx0fJHCAtg0pQ7wx9MMC1UMImcuFabHXUgVmHcDrIAgds5GyBnNaPKfgs9qsvmjhJyVHZdT7_f8YJ2BihkgEokfJbIkcb7Ulp7AqIzceACYpZXeBmfQtDCNDyJveoz1XLaKu69JYzArf8UaPzg3jHVoq9m6N5ohypMC-pmsp87-SbOoD-2x660K7Ankzqqtxw4vhyAp0atcYujPg0-8G4fkOPrLE-Cw6SXb8YonrjWVPbrBwfqENTr6sUj7SrPlH_CVBGzRG20YxaYvn_yeGG8E1pbCgDEK2UjyRaH-FM9BHIqY3TNUIf0mdvQ' --form 'Content-Type='
HTTP/1.1 100 Continue
HTTP/1.1 200 OK