Se um dispositivo se desconectar inesperadamente, use a Device Trace Query para revisar seu histórico de conexões. Os resultados exibem cada evento de conexão, desconexão e encerramento com o motivo detalhado, o que facilita a identificação da causa da queda.
Pré-requisitos
Antes de começar, verifique se você tem:
Uma instância do ApsaraMQ for MQTT em execução
O Group ID e o Device ID do dispositivo de destino
Consultar eventos de conexão do dispositivo
Faça login no console do ApsaraMQ for MQTT. No painel de navegação à esquerda, clique em Instances.
Na barra de navegação superior, selecione a região onde a instância está localizada. Clique no nome da instância para abrir a página Instance Details.
Localize a instância que deseja gerenciar. Na coluna Actions, escolha More > Device Trace Query.
-
Na página Device Trace Query, especifique o Group ID, o Device ID e o Time Range e clique em Search.
NotaO intervalo máximo de consulta é de um dia.
Resultados da consulta
A consulta retorna uma tabela com as seguintes colunas:
|
Coluna |
Descrição |
|
Channel ID |
ID da conexão. |
|
Device Action |
Tipo de evento de conexão. Consulte a seção Ações do dispositivo abaixo. |
|
Action Description |
Motivo ou resultado do evento. Consulte a seção Descrições das ações abaixo. |
|
Time |
Carimbo de data/hora em que o evento ocorreu. |
Ações do dispositivo
Cada ação representa uma etapa no ciclo de vida da conexão MQTT:
|
Valor |
Significado |
Etapa do ciclo de vida |
|
|
O cliente enviou uma solicitação CONNECT ao broker. |
Início da conexão |
|
|
A conexão TCP foi fechada. |
Término da conexão (passivo) |
|
|
O cliente enviou uma solicitação DISCONNECT ao broker. |
Término da conexão (ativo) |
Descrições das ações
Cada descrição explica por que o estado da conexão mudou:
|
Valor |
Significado |
|
|
O broker aceitou a solicitação de conexão do cliente. |
|
|
Conexão fechada. O cliente falhou na verificação de permissão para acessar a instância. |
|
|
Conexão fechada. O cliente falhou na verificação de permissão para acessar tópicos. |
|
|
Conexão fechada devido a conflito no ID do cliente. |
|
|
Conexão fechada. O broker não detectou heartbeat do cliente. |
|
|
Conexão fechada devido a exceção no lado do cliente. O cliente não enviou pacote DISCONNECT. |
|
|
O cliente iniciou desconexão normal ao enviar pacote DISCONNECT. |
|
|
Conexão fechada. O broker foi atualizado ou ficou offline para manutenção. |
Solucionar problemas de desconexão
Use o valor de Action Description para identificar a causa raiz da desconexão:
Falha na verificação de permissão
Indicadores: not authorized, topic auth failed
Verifique se as credenciais do cliente estão corretas e se ele tem as permissões necessárias para a instância e os tópicos de destino. Confira os itens a seguir:
As credenciais do cliente são válidas e não expiraram.
As permissões foram concedidas para os tópicos específicos nos quais o cliente se inscreve ou publica.
Conflito de ID do cliente
Indicador: clientId conflict
Dois clientes com o mesmo ID não mantêm conexões simultâneas. Para resolver:
Garanta que cada cliente use um ID exclusivo.
Verifique se há implantações duplicadas ou provisionamento mal configurado que possa atribuir o mesmo ID a vários dispositivos.
Tempo limite de heartbeat
Indicador: no heart
O broker fecha a conexão se não receber heartbeat do cliente. Possíveis causas:
Instabilidade de rede impede que pacotes de heartbeat cheguem ao broker.
O processo do cliente está bloqueado ou sobrecarregado, o que impede a transmissão oportuna do heartbeat.
Encerramento inesperado no lado do cliente
Indicador: closed by client
A conexão TCP foi encerrada sem que o cliente enviasse um pacote DISCONNECT. Isso geralmente indica:
Falha ou exceção não tratada na aplicação cliente.
Interrupção de rede no nível do sistema operacional (por exemplo, alteração de regra de firewall ou falha na NIC).
O processo do cliente foi finalizado forçadamente.
Inspecione os logs da aplicação cliente e os logs de rede do sistema para identificar a causa.
Manutenção do broker
Indicador: ServerShutdown
Nenhuma ação necessária. O broker fechou as conexões durante atualização agendada ou janela de manutenção.
Tópicos relacionados
Consultar o status de um dispositivo: Verifique se um dispositivo está online ou offline.