Planeamento de implantação - Diagnóstico

O sistema de diagnóstico de corretores MQTT é um conjunto de ferramentas integradas que monitorizam a saúde do corretor através de métricas, registos e sondas de auto-verificação. Decida antes da implementação que configuração de diagnóstico precisa para o broker MQTT.

Importante

Os diagnósticos são definidos no recurso Broker. Configure o diagnóstico durante a implantação inicial usando a CLI do Azure ou o portal do Azure. Se você quiser alterar as configurações do broker, implante um novo recurso do broker. Para saber mais, consulte Personalizar o corretor padrão.

Auto-verificação

O mecanismo de autoverificação do broker MQTT está ativado por padrão. Ele utiliza uma sonda de diagnóstico e rastreamentos OpenTelemetry (OTel) para monitorizar o broker. A sonda envia mensagens de teste para verificar o comportamento e o tempo do sistema.

O processo de validação verifica se o sistema funciona corretamente, comparando os resultados do teste com os resultados esperados. Estes resultados incluem:

  • Os caminhos que as mensagens percorrem através do sistema.
  • Comportamento de temporização do sistema.

A sonda de diagnóstico executa regularmente operações MQTT (PING, CONNECT, PUBLISH, SUBSCRIBE, UNSUBSCRIBE) no broker MQTT e supervisiona os ACKs e rastreamentos correspondentes para verificar a latência, a perda de mensagens e a correção do protocolo de replicação.

Importante

A sonda de diagnóstico de autoverificação publica mensagens no tópico azedge/dmqtt/selftest. Não publique nem assine tópicos de sondas de diagnóstico que comecem com azedge/dmqtt/selftest. A publicação ou subscrição destes tópicos pode afetar as verificações de sonda ou de autoteste e levar a resultados inválidos. Resultados inválidos podem ser listados em logs de sondas de diagnóstico, métricas ou dashboards. Por exemplo, poderá ver o problema "Falha na verificação de caminho para evento de sonda com tipo de operação 'Publicar'" nos registos de sonda de diagnóstico. Para obter mais informações, consulte Problemas conhecidos.

Mesmo que o diagnóstico do broker MQTT produza mensagens de diagnóstico em seu próprio tópico, você ainda pode obter mensagens do autoteste quando se inscrever no # tópico. Esta é uma limitação e um comportamento esperado.

Definir definições de diagnóstico

Na maioria dos cenários, as configurações de diagnóstico padrão são suficientes. Para substituir as configurações de diagnóstico padrão para o broker MQTT, edite a seção diagnostics no recurso Broker. Atualmente, é possível alterar as configurações apenas usando o sinalizador --broker-config-file ao implantar o Operações IoT do Azure com o comando az iot ops create. Para mais informações, consulte o suporte da CLI Azure para configuração avançada de corretores MQTT.

Para substituir, prepare um ficheiro de configuração de corretor seguindo a referência da API BrokerDiagnostics. Por exemplo:

{
  "diagnostics": {
    "metrics": {
      "prometheusPort": 9600
    },
      "logs": {
        "level": "info"
      },
    "traces": {
      "mode": "Enabled",
      "cacheSizeMegabytes": 16,
      "selfTracing": {
        "mode": "Enabled",
        "intervalSeconds": 30
      },
      "spanChannelCapacity": 1000
    },
    "selfCheck": {
      "mode": "Enabled",
      "intervalSeconds": 30,
      "timeoutSeconds": 60
    }
  }
}

Em seguida, implante as operações IoT com o comando az iot ops create e a flag --broker-config-file, conforme mostrado no exemplo a seguir. (Outros parâmetros são omitidos por uma questão de brevidade.)

az iot ops create ... --broker-config-file <FILE>.json

Passos seguintes