Some of the common troubleshooting steps are described here, which user must follow if discovery or monitoring is not working as expected.
Troubleshooting Methodologies -1
- Getting Collector Id for a VCO:
- Run “dmctl -s <server name> invoke ICF_PersistentDataSet::VCOTopologyCollectorInstanceIds get”
- Returns two blocks for each VCO. Each block has a collector Id and a tag to indicate if it is discovery/monitoring collector .
- Run “dmctl -s <server name> invoke ICF_PersistentDataSet::VCOTopologyCollectorInstanceIds get”
- Logs and log locations:
- Collector logs are located at /opt/DCF/Collecting/Collector-Manager/<collector Id>/logs/
- Logging and troubleshooting:
- Edit /opt/DCF/Collecting/Collector-Manager/<collector Id>/conf/logging.properties to increase log level
- Change the default INFO level to one of – CONFIG, FINE, FINER & FINEST (lowest value)
- The new log level takes effect in the next discovery
- The kafka messages can also be configured to be written to file:
- Edit /opt/DCF/Collecting/Collector-Manager/<collector Id>/conf/collecting.xml. Change enabled=true for file collector
- <connector enabled="true" name="File" type="File-Connector" config="Collector-Manager/<collector Id>/conf/file-connector.xml" />
- Edit /opt/DCF/Collecting/Collector-Manager/<collector Id>/conf/collecting.xml. Change enabled=true for file collector
Troubleshooting Methodologies - 2
- Check if the /opt/DCF/Collecting/Stream-Collector/<Collector Id>/conf/requests/context-vco.xml has proper values (username, password, port & protocol) for VeloCloud access.
- For specific discovery/monitoring issues use REST API to get the data directly from VCO to confirm VCO is returning proper value. The base URI for the REST API is https://<VCO IP>/portal/rest/
DCF Collector (Discovery & Monitoring)
Topology/Status | REST API | User Type | ||
---|---|---|---|---|
Operator | MSP | Enterprise | ||
Login | ||||
Login | /login/operatorLogin | Yes | NA | NA |
Login | /login/enterpriseLogin | Not Used | Yes | Yes |
Discovery | ||||
Enterprises | /network/getNetworkEnterprises | Yes | NA | NA |
Enterprises | enterpriseProxy/getEnterpriseProxyEnterprises | NA | Yes | NA |
Enterprises | enterprise/getEnterprise | Not used | Not used | Yes |
Edge | /network/getNetworkEnterprises { “with” : [“edges”]} |
Yes | NA | NA |
Edge | /enterprise/getEnterpriseEdges | Not used | Yes | Yes |
Edge interfaces (WAN and LAN) | /edge/getEdgeConfigurationStack | Yes | Yes | Yes |
Edge links | /enterprise/getEnterpriseEdges | Yes | Yes | Yes |
Gateway | /network/getNetworkGatewayPools | Yes | Yes | NA |
GatewayPool | /network/getNetworkGatewayPools | Yes | Yes | NA |
Non VeloCloud Site and the Tunnels | /enterprise/getEnterpriseDataCenters
|
Yes | Yes | Yes |
Edge and Gateway relationship | /network/getNetworkGatewayPools
(connectedEdgeList field in the response) |
Yes | NA | NA |
Edge and Gateway relationship | gateway/getGatewayEdgeAssignments | Not used | Yes | NA |
Edge and Gateway relationship | /edge/getEdgeConfigurationStack | Not used | Not used | Yes |
Edge Clusters | /edge/getEdgeConfigurationStack /enterprise/getEnterpriseEdgeServices |
Yes | Yes | Yes |
Edge Hub and Spoke Relationship | /edge/getEdgeConfigurationStack /enterprise/getEnterpriseEdgeServices |
Yes | Yes | Yes |
Edge and Gateway relationship | edge/getEdge | Yes | Yes | Yes |
Monitoring | ||||
Edge Status | enterprise/getEnterpriseEdges | Yes | Yes | Yes |
Edge link Status | enterprise/getEnterpriseEdges | Yes | Yes | Yes |
Edge link Performance data | monitoring/getAggregateEdgeLinkMetrics | Yes | Yes | NA |
Gateway Status | network/getNetworkGatewayPools | Yes | Yes | NA |
Non VC site Tunnel Status | enterprise/getEnterpriseDataCenters | Yes | Yes | Yes |
Edge performance data | metrics/getEdgeStatusMetrics | Yes | Yes | Yes |
Troubleshooting Methodologies -3
- Logs and log locations:
- Server logs are located at $INSTALL_DIR/smarts/local/logs
- Logging and troubleshooting:
- Enable Discovery logging:
- Run dmctl –s <server> put ESM_Manager::ESM-Manager::EnableVeloCloudDiscoveryDebug TRUE
- Run dmctl –s <server> put ESM_Manager::ESM-Manager::IsDebug TRUE
- Run dmctl –s <server> put ESM_Manager::ESM-Manager::LogLevel DEBUG
Note: This logs all the Kafka messages for all VCO.
- Enable Discovery logging:
- Enable Monitoring Logging:
- Run dmctl –s <server> put ESM_Manager::ESM-Manager:: EnableVeloCloudMonitoringDebug TRUE
- Run dmctl –s <server> put ESM_Manager::ESM-Manager::LogLevel DEBUG
Note: This logs all the Kafka messages for all VCO.
- Make sure VeloCloud feature is enabled (default enabled):
- Run dmctl –s <server> get ESM_Manager::ESM-Manager::IsVC
- Smarts notifies DiscoveryFailure & MonitoringFailure event for the Orchestrator with the reason for failure set in the event details.
- Log analysis:
- Discovery Kafka message:
- Sample:
{"groupName":"group","discoveryID":null,"jobID":"9999","type":"Tenant","timestamp":1554472776,"value":0.0,"action":"r","properties":{"VelocloudOrchestrator":"10.106.124.199","Tenant-name":"testTenant_1","source":"velocloud-sdwan4dfefd0c-c8b6-41ac-a83f-96776c9001c4","type":"Tenant","Tenant-Id":"1","EnterpriseLogicalId":"c8cc3bc7-df6e-407c-ac30-352b4b3de93a"},"metrics":{"VCO-Req":{"properties":{"unit":"code","name":"VCO-Req"},"value":8080.0}},"relations":[{"type":"Orchestrator","element":"VCO-a.b.c.d","relationName":"SupervisedBy"}],"initialized":true,"forceRefresh":true,"name":"testTenant_1"} Creates Tenant::testTenant_1 Creates Orchestrator::VCO-a.b.c.d Establish relationship Tenant::testTenant_1 SupervisedBy Orchestrator::VCO-a.b.c.d
- Sample:
- Monitoring Kafka message:
- Sample:
{"groupName":"group","discoveryID":null,"jobID":"9999","type":"VGateway","timestamp":1554753805,"value":0.0,"action":"\u0000","properties":{"instanceName":"GatewayName","attributes":"Status,IsActivated","source":"velocloud-sdwan048048cb-701e-440d-85e9-e46110965181","GatewayName":"VGateway-OneCloud-GW1-Bangalore","type":"VGateway","attributevalues":"OK,TRUE"},"metrics":{"VCO-Req":{"properties":{"unit":"code","name":"VCO-Req"},"value":0.0}},"relations":[],"initialized":true,"forceRefresh":false,"name":"VGateway-OneCloud-GW1-Bangalore"} VGateway::Vgateway-OneCloud-GW1-Bangalore is the instance name Status is OK IsActivated is TRUE
- Sample:
- Discovery Kafka message:
- Smarts Domain Managers
-
Getting Collector Id for a VCO:
Run "dmctl -s <server name> invoke ICF_PersistentDataSet::VCOTopologyCollectorInstanceIds get"
Returns two blocks for each VCO. Each block has a collector Id and a tag to indicate if it is discovery/monitoring collector
<connector enabled="true" name="File" type="File-Connector" config="Collector-Manager/<collector Id>/conf/file-connector.xml" />
-
DCF Logs and log locations:
Collector logs are located at /opt/DCF/Collecting/Collector-Manager/<collector Id>/logs/
-
DCF Logging and troubleshooting:
Edit /opt/DCF/Collecting/Collector-Manager/<collector Id>/conf/logging.properties to increase log level
Change the default INFO level to one of - CONFIG, FINE, FINER & FINEST (lowest value)
The new log level takes effect in the next discovery.
-
The kafka messages can also be configured to be written to file.
Edit /opt/DCF/Collecting/Collector-Manager/<collector Id>/conf/collecting.xml.
Change enabled=true for file collector.
- Check if the /opt/DCF/Collecting/Stream-Collector/<Collector Id>/velo/conf/requests/context-vco.xml has proper values (username, password, port & protocol) for VeloCloud access.
- For specific discovery/monitoring issues use REST API to get the data directly from VCO to confirm VCO is returning proper value. The base URI for the REST API is https://<VCO IP>/portal/rest/. A REST client (e.g Postman, Insomnia & SoapUI) can be used to issue these REST queries.
Note: The various VCO REST APIs used for discovery and monitoring for different user types are documented at the table REST API used for Discovery and monitoring for different user types.
- Smarts Logging:
- Server logs are located at $INSTALL_DIR/smarts/local/logs
- Enable Discovery logging:
- Run dmctl -s <server> put ESM_Manager::ESM-Manager::EnableVeloCloudDiscoveryDebug TRUE
- Run dmctl -s <server> put ESM_Manager::ESM-Manager::IsDebug TRUE
- Run dmctl -s <server> put ESM_Manager::ESM-Manager::LogLevel DEBUG
- Enable Monitoring Logging:
- Run dmctl -s <server> put ESM_Manager::ESM-Manager:: EnableVeloCloudMonitoringDebug TRUE
- Run dmctl -s <server> put ESM_Manager::ESM-Manager::LogLevel DEBUG
Note: This logs all the Kafka messages for all VCO.
- Enable Discovery logging:
- Server logs are located at $INSTALL_DIR/smarts/local/logs
- Smarts Log analysis.
- Discovery Kafka message:
-Sample: {"groupName":"group","discoveryID":null,"jobID":"9999","type":"Tenant","timestamp":1554472776,"value":0.0,"action":"r","properties":{"VelocloudOrchestrator":"10.106.124.199","Tenant-name":"testTenant_1","source":"velocloud-sdwan4dfefd0c-c8b6-41ac-a83f-96776c9001c4","type":"Tenant","Tenant-Id":"1","EnterpriseLogicalId":"c8cc3bc7-df6e-407c-ac30-352b4b3de93a"},"metrics":{"VCO-Req":{"properties":{"unit":"code","name":"VCO-Req"},"value":8080.0}},"relations":[{"type":"Orchestrator","element":"VCO-a.b.c.d","relationName":"SupervisedBy"}],"initialized":true,"forceRefresh":true,"name":"testTenant_1"}
Creates Tenant::testTenant_1
Creates Orchestrator::VCO-a.b.c.d
Establish relationship Tenant::testTenant_1 SupervisedBy Orchestrator::VCO-a.b.c.d
- Monitoring Kafka message:
-Sample: {"groupName":"group","discoveryID":null,"jobID":"9999","type":"VGateway","timestamp":1554753805,"value":0.0,"action":"\u0000","properties":{"instanceName":"GatewayName","attributes":"Status,IsActivated","source":"velocloud-sdwan048048cb-701e-440d-85e9-e46110965181","GatewayName":"VGateway-OneCloud-GW1-Bangalore","type":"VGateway","attributevalues":"OK,TRUE"},"metrics":{"VCO-Req":{"properties":{"unit":"code","name":"VCO-Req"},"value":0.0}},"relations":[],"initialized":true,"forceRefresh":false,"name":"VGateway-OneCloud-GW1-Bangalore"}
VGateway::Vgateway-OneCloud-GW1-Bangalore is the instance name
Status is OK
IsActivated is TRUE
- Discovery Kafka message:
- Feature is enabled (default enabled)
Run dmctl -s <server> get ESM_Manager::ESM-Manager::IsVC
- Smarts ESM server raises a DiscoveryFailure/MonitoringFailure event on the Orchestrator instance when there is an internal error or communication failure between the components. The event has the reason for the failure set in the event details.
-