MQTT broker 진단 시스템은 메트릭, 로그 및 자체 검사 프로브를 통해 broker 상태를 모니터링하는 기본 제공 도구 집합입니다. 배포 전에 MQTT 브로커에 필요한 진단 구성을 결정합니다.
Important
진단은 Broker 리소스에 설정됩니다. Azure CLI 또는 Azure Portal을 사용하여 초기 배포 중에 진단을 구성합니다. broker 설정을 변경하려면 새 broker 리소스를 배포합니다. 자세한 내용은 기본 Broker 사용자 지정을 참조하세요.
자체 확인
MQTT 브로커의 자체 검사 메커니즘은 기본적으로 설정됩니다. 진단 프로브 및 OTel(OpenTelemetry) 추적을 사용하여 브로커를 모니터링합니다. 프로브는 테스트 메시지를 전송하여 시스템 동작 및 타이밍을 확인합니다.
유효성 검사 프로세스는 테스트 결과를 예상 결과와 비교하여 시스템이 제대로 작동하는지 확인합니다. 이러한 결과는 다음과 같습니다.
- 메시지가 시스템을 통과하는 경로입니다.
- 시스템 타이밍 동작입니다.
진단 프로브는 MQTT 브로커에서 MQTT 작업(PING, CONNECT, PUBLISH, SUBSCRIBE, UNSUBSCRIBE)을 정기적으로 실행하고 해당 ACK 및 추적을 모니터링하여 복제 프로토콜의 대기 시간, 메시지 손실 및 정확성을 확인합니다.
Important
자체 점검 진단 프로브는 azedge/dmqtt/selftest 토픽에 메시지를 게시합니다. 로 시작하는 azedge/dmqtt/selftest진단 프로브 토픽을 게시하거나 구독하지 마세요. 이러한 항목을 게시하거나 구독하면 프로브 또는 자체 테스트 검사에 영향을 줄 수 있으며 잘못된 결과가 발생할 수 있습니다. 잘못된 결과가 진단 프로브 로그, 메트릭 또는 대시보드에 나열될 수 있습니다. 예를 들어 진단 프로브 로그에 "작업 유형이 '게시'인 프로브 이벤트에 대한 경로 확인 실패" 문제가 표시될 수 있습니다. 자세한 내용은 알려진 문제참조하세요.
MQTT broker의 진단은 자체 토픽에서 진단 메시지를 생성하지만, # 토픽을 구독하면 자가 테스트에서 메시지를 받을 수 있습니다. 이는 제한 사항이며 예상되는 동작입니다.
진단 설정 구성
대부분의 시나리오에서는 기본 진단 설정으로 충분합니다. MQTT broker에 대한 기본 진단 설정을 재정의하려면 Broker 리소스의 diagnostics 섹션을 편집합니다. 현재 --broker-config-file 플래그를 사용하여 az iot ops create 명령을 통해 Azure IoT 작업를 배포할 때만 설정을 변경할 수 있습니다. 자세한 내용은 고급 MQTT broker 구성에 대한 Azure CLI 지원을 참조하세요.
덮어쓰려면 BrokerDiagnostics API 참조에 따라 브로커 구성 파일을 준비하십시오. 다음은 그 예입니다.
{
"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
}
}
}
그런 다음, 다음 예제와 같이 az iot ops create 명령과 --broker-config-file 플래그를 사용하여 IoT Operations를 배포합니다. (간단히 하기 위해 다른 매개 변수는 생략됩니다.)
az iot ops create ... --broker-config-file <FILE>.json