O console VNC não abre
Sintoma
O console da máquina virtual não abre na interface web, e a conexão não é estabelecida.
Como verificar
Siga estas etapas na ordem: cada etapa só é relevante se a verificação anterior tiver passado.
- Estado da máquina. O console abre apenas para uma máquina em execução: verifique a coluna State na lista de VMs. Uma máquina parada não tem botão de console.
- Permissões. O privilégio
Access VM Console(1102) permite abrir o console. Sem ele, a chamada retorna-403. - Log de segurança. Na seção
Security Event Log, defina o filtro Category comovirtual machines. Uma conexão bem-sucedida registravm.console_connected, uma conexão com falha registravm.console_connect_failed, e a própria solicitação do console registravm.console_access. Esses eventos mostram se a solicitação chegou à ponte WSS ou falhou antes. Os dois primeiros tipos de evento foram introduzidos na 3.0.5. - Caminho de rede até o endpoint HTTPS. A conexão WebSocket precisa atravessar todo o caminho:
proxies e balanceadores de carga que não repassam
Upgradequebram a conexão do console, enquanto as chamadas comuns da API continuam funcionando.
Causa
O console funciona pelo proxy WebSocket no endpoint HTTPS do cluster. A indisponibilidade geralmente é causada por uma sessão expirada ou por uma conexão WebSocket bloqueada no caminho até o endpoint HTTPS.
Há também uma terceira causa, menos óbvia: o mapeamento "token do console–máquina" é mantido na memória do dispatcher por 300 segundos, que também é o tempo de vida padrão da ponte WSS. O mapeamento deliberadamente não é persistente. Isso tem duas consequências. Um link de console não pode ser aberto mais tarde: após cinco minutos, ele não está mais associado a nada. Reiniciar o dispatcher perde o mapeamento. Os consoles abertos continuam funcionando porque o endpoint HTTPS do cluster mantém a ponte. O enriquecimento do log é perdido: o evento de conexão é registrado sem o usuário nem a máquina, restando apenas a impressão digital do token e o endereço do cliente no registro.
As falhas da própria chamada de console têm códigos específicos: -3103 significa que não existe máquina com esse
ID ou que ela está fora do seu escopo de visibilidade; -3112 significa que foi solicitado um tipo de console sem suporte;
-403 significa que falta o privilégio; -78 significa um erro de banco de dados.
Resolução
Renove a sessão (entre novamente) e verifique se o caminho de rede até o endpoint HTTPS do cluster permite conexões WebSocket; depois, abra o console de novo.
Se o log mostrar vm.console_connect_failed, a solicitação chegou à ponte, e o problema é
a rede ou o tempo de vida do mapeamento: abra o console novamente pela interface, e não por um link
salvo. Se o log não contiver nenhum dos três eventos, a falha ocorreu antes da ponte:
verifique o estado da máquina e o privilégio.
Métodos da API
As operações da API abordadas nesta página são vm-console, vm-get e security-event-list. Consulte a
referência da API.
Veja também
- Energia e console da VM—como abrir o console e o que ele suporta.
- Como ler o log e filtrar eventos—filtragem por categoria e análise de um registro individual.
- Papéis e privilégios—onde encontrar
Access VM Console.