Troubleshooting Guide
This guide details diagnostics and remediation procedures for common operational issues encountered in Cockpit deployments.
1. Diagnostics: Host Node Status is "Disconnected"
Symptom: A physical hypervisor node running Vapor displays as disconnected in the Cockpit console, and performance graphs for that node show no updates.
Remediation Workflow:
- Network Connectivity Verification: Check that the Cockpit service host can route to the Vapor host. Verify that TCP ports
7770(API interface) and7770(event streams) are open and reachable from the Cockpit server. - Daemon Status Check: Log into the affected hypervisor host and query the status of the local Vapor service:bashIf the service is stopped, restart it:
systemctl status vapor.servicesystemctl start vapor.service. - API Token Rotation: Cockpit authenticates with Vapor using API tokens. If the token is invalid or has expired, access will be refused. Generate a new API token from the Vapor local configuration and update the host registration details in Cockpit.
2. Diagnostics: TLS Certificate Errors
Symptom: Operations fail with SSL/TLS handshake warnings, or live migrations fail to initialize between hypervisors.
Remediation Workflow:
- Verify Hypervisor Virtualization Status: Connect to the hypervisor and ensure the virtualization daemon is active:bash
systemctl status libvirtd - Re-initialize TLS Credentials: You can force Cockpit to re-generate libvirt certificates on the node by triggering the TLS configuration endpoint:bash
# Renewal request sent to the local Vapor daemon curl -sk -X POST https://localhost:7770/api/v1/system/tls/libvirt/setup - Establish Trust Chains: Ensure both physical host servers are active and registered within the same Cockpit inventory scope to allow Cockpit to distribute and synchronize CA certificates.
3. Diagnostics: Host Connection Flipping (Advisory Lock Conflict)
Symptom: A physical host's connection state in the Cockpit console switches rapidly between connected and disconnected.
Remediation Workflow:
- Identify Lock Holders: This behavior occurs when multiple active Cockpit instances attempt to manage the same physical host simultaneously. Query the PostgreSQL database to identify current advisory lock sessions:sql
-- Query active transactional advisory locks SELECT pid, classid, objid FROM pg_locks WHERE locktype = 'advisory'; - Re-synchronize Management Daemons:
- Stop the Cockpit service processes on all active instances.
- Start the Cockpit service on the primary node and wait for it to establish connections to the host inventory.
- Start the Cockpit service on secondary nodes. The secondary nodes will detect the active advisory locks and remain in standby mode.