메시지 라우팅 문제 해결 검사

완료됨

이 페이지에서는 IoT Hub 메시지 라우팅에 대한 일반적인 문제 및 해결 방법에 대한 모니터링 및 문제 해결 지침을 제공합니다.

메시지 라우팅 모니터링

전송된 메시지의 개요를 파악할 수 있도록 메시지 라우팅 및 엔드포인트와 관련된 IoT Hub 메트릭을 모니터링하는 것이 좋습니다. 사용자 지정 처리를 위해 IoT Hub 리소스 로그의 경로에 대한 작업을 Azure Monitor 로그, Event Hubs 또는 Azure Storage로 보내는 진단 설정을 만들 수도 있습니다.

또한 어느 경로의 쿼리이든 쿼리와 일치하지 않는 메시지를 유지하려면 대체 경로를 사용하도록 설정하는 것이 좋습니다. 이러한 메시지는 구성된 보존 기간(일)에 대한 기본 제공 엔드포인트에 보존 할 수 있습니다.

주요 문제

다음은 메시지 라우팅과 관련하여 가장 일반적으로 발생하는 문제입니다.

  • 내 디바이스의 메시지가 예상대로 라우팅되지 않음
  • 기본 제공 Event Hubs 엔드포인트에서 갑자기 메시지 가져오기가 중단되었습니다.

내 디바이스의 메시지가 예상대로 라우팅되지 않습니다.

이 문제를 해결하려면 다음 영역을 분석합니다.

  • 이 엔드포인트에 대한 라우팅 메트릭

    라우팅과 관련된 모든 IoT Hub 메트릭라우팅으로 시작합니다. 여러 메트릭의 정보를 결합하여 문제의 근본 원인을 식별할 수 있습니다. 예를 들어 라우팅 전달 메트릭을 사용하면 엔드포인트에 전달된 메시지의 수 또는 어느 경로의 쿼리이든 쿼리와 일치하지 않고 대체 경로가 사용되지 않았을 때 손실된 메시지의 수를 식별할 수 있습니다. 라우팅 대기 시간 메트릭을 검사하면 메시지 전달 대기 시간이 안정적인지 아니면 증가하는지 확인할 수 있습니다. 대기 시간이 증가하는 것은 특정 엔드포인트에 문제가 있음을 나타낼 수 있으므로 엔드포인트의 상태를 확인하는 것이 좋습니다. 이러한 라우팅 메트릭에는 엔드포인트 유형, 특정 엔드포인트 이름 및 메시지가 전달되지 않는 이유와 같은 메트릭에 대한 세부 정보를 제공하는 차원이 있습니다.

  • 운영 문제에 대한 리소스 로그

    경로 리소스 로그를 관찰하여 라우팅 및 엔드포인트 작업에 대한 자세한 정보를 얻거나 오류 및 관련 오류 코드를 식별하여 문제를 더 자세히 이해합니다. 예를 들어 로그의 작업 이름 RouteEvaluationError는 메시지 형식의 문제로 인해 경로를 평가할 수 없음을 나타냅니다. 특정 작업 이름에 대해 제공된 팁을 사용하여 문제를 완화할 수 있습니다. 이벤트가 오류로 기록되면 로그는 평가에 실패한 이유에 대한 자세한 정보도 제공합니다. 예를 들어 작업 이름이 EndpointUnhealthy인 경우 403004 오류 코드는 엔드포인트의 공간이 부족했음을 나타냅니다.

  • 엔드포인트의 상태

    REST API Get Endpoint Health를 사용하여 엔드포인트의 상태 정보를 가져올 수 있습니다. 엔드포인트 상태 가져오기 API는 다음을 제공합니다.

    • 메시지가 엔드포인트에 성공적으로 전송된 마지막 시간에 대한 정보
    • 마지막으로 알려진 오류
    • 마지막으로 알려진 오류 시간 및 이 엔드포인트에 대해 마지막으로 전송을 시도한 시간입니다. 특정 마지막으로 알려진 오류에 대해 제공된 완화 방법을 사용하세요.

기본 제공 엔드포인트에서 갑자기 메시지 가져오기가 중단되었습니다.

이 문제를 해결하려면 다음 영역을 분석합니다.

  • 새 경로를 만들었나요?

    일단 경로가 생성되면 경로가 해당 엔드포인트에 대해 생성되어 있지 않은 한, 데이터가 기본 제공 엔드포인트로 흐르는 것을 멈춥니다. 새 경로가 추가된 경우에도 메시지가 기본 제공 엔드포인트로 계속 흐르도록 하려면 이벤트 엔드포인트에 대한 경로를 구성합니다.

  • 대체 경로가 비활성화되었나요?

    대체 경로는 기존 경로의 쿼리 조건을 충족하지 않는 모든 메시지를 Event Hubs와 호환되는 기본 제공 Event Hubs(메시지/이벤트)로 보냅니다. 메시지 라우팅이 설정되어 있으면 대체 경로 기능을 사용하도록 설정할 수 있습니다. 기본 제공 엔드포인트에 대한 경로가 없고 대체(fallback) 경로를 사용할 수 있는 경우 경로의 모든 쿼리 조건을 충족하지 않는 메시지만 기본 제공 엔드포인트로 전송됩니다. 또한 기존 경로가 모두 삭제된 경우에는 대체(fallback) 경로가 기본 제공 엔드포인트에서 모든 데이터를 수신하도록 설정되어 있어야 합니다.

    Azure Portal에서 IoT Hub에 대한 메시지 라우팅 블레이드를 사용하여 대체 경로를 사용 또는 사용 안 함으로 설정할 수 있습니다. FallbackRouteProperties에 Azure Resource Manager를 사용하여 대체(fallback) 경로에 대해 사용자 지정 엔드포인트를 사용할 수도 있습니다.

IoT Hub 라우팅 엔드포인트에 대해 마지막으로 알려진 오류

REST API에서 엔드포인트 상태 가져오기는 엔드포인트의 상태와 마지막으로 알려진 오류를 제공하여 엔드포인트가 정상 상태가 아닌 이유를 식별합니다. 마지막으로 알려진 오류 테이블에는 가장 일반적인 오류가 나열됩니다.

경로 리소스 로그

작업 이름 및 오류 코드 테이블에는 경로 리소스 로그에 기록된 정보 및 오류 메시지가 나열됩니다.