This article is intended to assist Customer Experience Engineers, Network Engineers, Field Engineers to diagnose and resolve common Crosswork Assurance on-premise installation and operational issues. It's organized by symptom so you can quickly find the right troubleshooting steps based on what you're seeing.
Troubleshooting Methodology
Before diving into specific issues, follow this systematic approach. It will save you time and help you avoid chasing symptoms instead of root causes:
Identify symptoms: Determine exactly what the user is experiencing.
Check platform health: Run standard health verification commands.
Isolate the layer: Determine if the issue is Infrastructure, Service, or Application related.
Collect logs: Gather relevant diagnostic information from the affected components.
Apply fix: Follow runbook steps or escalate to the next tier.
Pre-Flight Check Failures
These issues occur during installation before Crosswork Assurance is fully deployed. They're usually related to missing prerequisites or environment configuration.
Error: socat not found
Symptom: Installation fails with unable to do port forwarding: socat not found.
Cause: The socat package is missing from the Kubernetes nodes.
Resolution:
# RHEL/CentOS
sudo yum install -y socat
# Ubuntu/Debian
sudo apt-get install -y socat
# Verify installation
which socatError: IPv6/Dual-Stack Mismatch
Symptom: Pre-flight checks fail indicating a dual-stack version is required.
Cause: An IPv6 address was detected but a non-dual-stack deployer version was selected.
Resolution: Download the correct dual-stack version (e.g., 25.7.250-105-dualstack) and re-run the installation.
Error: Insufficient Resources
Symptom: Pre-flight checks fail with resource warnings.
Cause: Node does not meet minimum requirements (32 vCPU, 64GB RAM minimum per node).
Resolution:
Verify node resources:
kubectl describe node <node-name>Scale up VM resources or add additional nodes
Re-run pre-flight checks
Error: RBAC Permission Denied
Symptom: Installation fails with permission errors.
Cause: User lacks cluster-admin permissions.
Resolution:
# Grant cluster-admin to current user
kubectl create clusterrolebinding cluster-admin-binding \
--clusterrole=cluster-admin \
--user=$(gcloud config get-value account)Pod Issues
Pod problems are the most common issues you'll encounter. This section covers the main pod states that indicate problems and how to resolve them.
Pods Stuck in Pending
Diagnosis:
kubectl describe pod <pod-name> -n pcaCommon Causes and Fixes:
The following table maps pending pod causes to their resolutions. Check the Events section of kubectl describe pod to identify which cause applies:
Cause | Fix |
|---|---|
Insufficient CPU/Memory | Scale up nodes or reduce resource requests |
PVC not bound | Check StorageClass availability |
Node selector mismatch | Verify node labels |
Taints preventing scheduling | Add tolerations or remove taints |
Check PVC status:
kubectl get pvc -n pca
kubectl describe pvc <pvc-name> -n pcaPods in CrashLoopBackOff
This means the pod is starting, crashing, and restarting repeatedly. The key is to check the logs from the previous container instance.
Diagnosis:
# Get current logs
kubectl logs <pod-name> -n pca
# Get logs from previous crash
kubectl logs <pod-name> -n pca --previous
# Check events
kubectl describe pod <pod-name> -n pcaCommon Causes:
Missing configuration or secrets
Database connection failures
Out of memory (OOMKilled)
Application startup errors
Pods in ImagePullBackOff
Symptom: Pod can't pull container image.
Diagnosis:
kubectl describe pod <pod-name> -n pca | grep -A 5 "Events"Common Causes:
Invalid image pull secret
Network connectivity to registry
Image doesn't exist
Database Issues
Database problems affect multiple services. If you're seeing widespread failures, check the databases first.
PostgreSQL Connection Failures
Symptoms: Multiple services failing, authentication errors, configuration not loading.
Diagnosis:
# Check PostgreSQL pod
kubectl get pods -n pca -l app=postgres
kubectl logs -n pca $(kubectl get pods -n pca -l app=postgres -o jsonpath='{.items[0].metadata.name}')
# Test connectivity
kubectl exec -it -n pca $(kubectl get pods -n pca -l app=postgres -o jsonpath='{.items[0].metadata.name}') -- psql -U postgres -c "SELECT 1;"Common Fixes:
Check PVC is bound and has space
Verify PostgreSQL pod has enough memory
Check for connection limit exhaustion
Druid Issues
Symptoms: No data in dashboards, slow queries, historical data missing.
Diagnosis:
# Check all Druid components
kubectl get pods -n pca | grep druid
# Check coordinator status
kubectl port-forward -n pca svc/druid-coordinator 8081:8081 &
curl http://localhost:8081/status
# Check supervisor status
curl http://localhost:8081/druid/indexer/v1/supervisorCommon Fixes:
Restart failed supervisors
Check MinIO connectivity for deep storage
Verify Kafka topics exist and have data
Kafka Issues
Kafka is the backbone of the data pipeline. If Kafka is unhealthy, no new data will flow through the system.
High Consumer Lag
Symptoms: Data delays, dashboards showing stale data.
Diagnosis:
kubectl exec -it -n pca $(kubectl get pods -n pca -l app=kafka -o jsonpath='{.items[0].metadata.name}') -- \
kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --all-groupsCommon Fixes:
Check consumer pod health (Ignite, Druid indexers)
Verify consumer pods have enough resources
Scale up consumer replicas if needed
Kafka Broker Not Ready
Diagnosis:
# Check Kafka pods
kubectl get pods -n pca -l app=kafka
# Check Kafka logs
kubectl logs -n pca $(kubectl get pods -n pca -l app=kafka -o jsonpath='{.items[0].metadata.name}')Common Causes:
Zookeeper connectivity issues
Disk space exhaustion
Memory pressure
Certificate Issues
Certificate problems cause secure connections to fail. They can affect both internal service communication and external access.
Certificate Expired or Invalid
Symptoms: TLS errors, services can't communicate, browser certificate warnings.
Diagnosis:
# Check certificate status
kubectl get certificates -n pca
# Check specific certificate
kubectl describe certificate <cert-name> -n pca
# Check expiration
kubectl get secret -n pca nginx-tls-secret-cm -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl x509 -noout -enddateCommon Fixes:
Check cert-manager is running
Verify ClusterIssuer is configured correctly
Delete certificate to trigger renewal
Network Issues
Network problems can manifest in many ways. Use these checks when you suspect connectivity issues.
Services Can't Communicate
Diagnosis:
# Test DNS resolution
kubectl run netdebug --rm -it --image=nicolaka/netshoot -n pca -- nslookup gather
# Test service connectivity
kubectl run netdebug --rm -it --image=nicolaka/netshoot -n pca -- curl -v http://gather/healthExternal Access Not Working
Diagnosis:
# Check ingress
kubectl get ingress -n pca
# Check nginx pod
kubectl get pods -n pca -l app=nginx
kubectl logs -n pca $(kubectl get pods -n pca -l app=nginx -o jsonpath='{.items[0].metadata.name}')Authentication Issues
Authentication problems prevent users from logging in. Zitadel is the identity provider for PCA.
Users Can't Log In
Diagnosis:
# Check Zitadel pod
kubectl get pods -n pca -l app=zitadel
kubectl logs -n pca $(kubectl get pods -n pca -l app=zitadel -o jsonpath='{.items[0].metadata.name}')Common Fixes:
Verify Zitadel database connectivity
Check SMTP configuration for password reset
Verify domain configuration matches DNS
Default Admin Password Not Working
For Crosswork Assurance 25.07 CA and later:
Password is displayed in Admin Console
Check Admin Console dashboard for credentials
Password Reset:
# Access Zitadel UI
# DNS mode: https://auth.{domain-name}
# No-DNS mode: https://{external-ip}:3443Performance Issues
Performance problems are often related to resource constraints or cache warming.
Slow Queries
Symptoms: UI dashboards load slowly, API timeouts.
Diagnosis:
# Check Druid historical cache
kubectl port-forward -n pca svc/health-clinic 8080:80 &
curl http://localhost:8080/metrics | grep druid_historical_cache
# Check Druid query metrics
curl http://localhost:8080/metrics | grep druid_queryCommon Fixes:
Wait for historical cache warm-up after restart
Check Druid resource allocation
Verify data retention policies
High Memory Usage
Diagnosis:
# Check pod resource usage
kubectl top pods -n pca --sort-by=memory
# Check node resources
kubectl top nodesLog Collection
When you need to escalate or investigate further, collect these logs:
Collecting Service Logs
# Single service logs
kubectl logs -n pca <pod-name> > <service>-logs.txt
# All pods in namespace
for pod in $(kubectl get pods -n pca -o jsonpath='{.items[*].metadata.name}'); do
kubectl logs -n pca $pod > logs/$pod.txt 2>&1
doneCreating a Support Bundle
The Admin Console can generate a comprehensive support bundle that includes logs, configuration, and diagnostic information:
Access the Admin Console.
Navigate to the Troubleshoot section.
Click Analyze to generate a comprehensive support bundle.
Download the bundle and share it with Cisco support.
Collecting Events
kubectl get events -n pca --sort-by='.lastTimestamp' > pca-events.txtEscalation Checklist
Before escalating to Cisco support, ensure you have collected the following information. This will help support resolve your issue faster:
Support bundle from Admin Console
helmStderrlogs from failed deploymentOutput of
kubectl get pods -n pca -o wideOutput of
kubectl get events -n pcaRelevant service logs
Crosswork Assurance version and deployer version
Deployment type (VM/K8s, single/multi-node)
Network configuration (DNS/No-DNS, IPv4/IPv6)
Quick Reference Commands
Keep these commands handy for rapid troubleshooting:
# Overall health
kubectl get pods -n pca
kubectl get deployments -n pca
kubectl get statefulsets -n pca
# Logs
kubectl logs -n pca <pod-name>
kubectl logs -n pca <pod-name> --previous
# Describe resources
kubectl describe pod -n pca <pod-name>
kubectl describe pvc -n pca <pvc-name>
# Events
kubectl get events -n pca --sort-by='.lastTimestamp'
# Resource usage
kubectl top pods -n pca
kubectl top nodes
# Exec into pod
kubectl exec -it -n pca <pod-name> -- /bin/sh© 2026 Cisco and/or its affiliates. All rights reserved.
For more information about trademarks, please visit: Cisco trademarks
For more information about legal terms, please visit: Cisco legal terms