다음을 통해 공유


MQTT broker 진단 설정 구성

MQTT 브로커에 대한 메트릭, 로그 및 자체 검사를 구성하도록 진단 설정을 설정합니다.

중요합니다

진단은 Broker 리소스에 설정됩니다. Azure CLI 또는 Azure Portal을 사용하여 초기 배포 중에 진단을 구성합니다. broker 설정을 변경하려면 새 broker 리소스를 배포합니다. 자세한 내용은 기본 Broker 사용자 지정을 참조하세요.

메트릭

메트릭은 MQTT broker의 현재 및 과거 상태와 상태를 표시합니다. 이러한 메트릭은 OTLP(OpenTelemetry Protocol) 형식을 사용합니다. OpenTelemetry Collector를 사용하여 Prometheus 형식으로 변환하고 Prometheus용 Azure Monitor 관리형 서비스를 사용하여 Azure Managed Grafana 대시보드로 라우팅합니다. 자세한 내용은 관찰 가능성 및 모니터링 구성을 참조 하세요.

사용 가능한 메트릭의 전체 목록은 MQTT broker 메트릭을 참조하세요.

로그

로그는 MQTT Broker가 수행하는 작업에 대한 정보를 표시합니다. 이러한 로그는 컨테이너 로그로 Kubernetes 클러스터에 있습니다. Container Insights를 사용하여 Azure Monitor 로그로 보내도록 설정합니다.

자세한 내용은 관찰 가능성 및 모니터링 구성을 참조 하세요.

자체 확인

MQTT 브로커의 자체 검사 메커니즘은 기본적으로 설정됩니다. 진단 프로브 및 OTel(OpenTelemetry) 추적을 사용하여 브로커를 모니터링합니다. 프로브는 테스트 메시지를 전송하여 시스템 동작 및 타이밍을 확인합니다.

유효성 검사 프로세스는 테스트 결과를 예상 결과와 비교하여 시스템이 제대로 작동하는지 확인합니다. 이러한 결과는 다음과 같습니다.

  • 메시지가 시스템을 통과하는 경로입니다.
  • 시스템 타이밍 동작입니다.

진단 프로브는 MQTT 브로커에서 MQTT 작업(PING, CONNECT, PUBLISH, SUBSCRIBE, UNSUBSCRIBE)을 정기적으로 실행하고 해당 ACK 및 추적을 모니터링하여 복제 프로토콜의 대기 시간, 메시지 손실 및 정확성을 확인합니다.

중요합니다

자체 검사 진단 프로브는 토픽에 azedge/dmqtt/selftest 메시지를 게시합니다. 로 시작하는 azedge/dmqtt/selftest진단 프로브 토픽을 게시하거나 구독하지 마세요. 이러한 항목을 게시하거나 구독하면 프로브 또는 자체 테스트 검사에 영향을 줄 수 있으며 잘못된 결과가 발생할 수 있습니다. 잘못된 결과가 진단 프로브 로그, 메트릭 또는 대시보드에 나열될 수 있습니다. 예를 들어 진단 프로브 로그에 "작업 유형이 '게시'인 프로브 이벤트에 대한 경로 확인 실패" 문제가 표시될 수 있습니다. 자세한 내용은 알려진 문제를 참조하십시오.

MQTT broker의 진단은 자체 토픽에서 진단 메시지를 생성하지만, # 토픽을 구독하면 자가 테스트에서 메시지를 받을 수 있습니다. 이는 제한 사항이며 예상되는 동작입니다.

진단 설정 변경

대부분의 시나리오에서는 기본 진단 설정으로 충분합니다. MQTT broker에 대한 기본 진단 설정을 재정의하려면 Broker 리소스의 diagnostics 섹션을 편집합니다. 현재 --broker-config-file 플래그를 사용하여 az iot ops create 명령을 통해 Azure IoT Operations를 배포할 때만 설정을 변경할 수 있습니다.

덮어쓰려면 BrokerDiagnostics API 참조에 따라 브로커 구성 파일을 준비하십시오. 예시:

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

그런 다음, 다음 예제와 같이 az iot ops create 명령과 --broker-config-file 플래그를 사용하여 IoT Operations를 배포합니다. (간단히 하기 위해 다른 매개 변수는 생략됩니다.)

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

고급 MQTT broker 구성 및 Broker 예제에 대한 Azure CLI 지원에 대해 자세히 알아봅니.