다음을 통해 공유


IoT Hub용 디바이스 업데이트 진단 개요

IoT Hub용 디바이스 업데이트에는 디바이스 쪽 오류를 진단하고 해결하는 데 도움이 되는 몇 가지 기능이 있습니다. v0.8.0 에이전트 릴리스에서는 다음 두 가지 진단 기능을 사용할 수 있습니다.

  • 최신 미리 보기 버전의 디바이스 업데이트 사용자 인터페이스에서 배포 오류 코드를 직접 볼 수 있습니다.

  • 원격 로그 수집 을 사용하면 로그 작업을 만들 수 있습니다. 이 작업은 대상 디바이스에 연결된 Azure Blob Storage 계정에 디바이스 진단 로그를 업로드하도록 지시합니다.

UI의 배포 오류 코드

디바이스가 디바이스 업데이트 서비스에 대한 배포 실패를 보고하면 디바이스 업데이트 사용자 인터페이스는 디바이스의 보고 resultCodeextendedResultCode 사용자 인터페이스를 표시합니다. 다음 단계를 사용하여 이러한 코드를 확인합니다.

  1. Azure Portal에서 IoT Hub로 이동합니다.

  2. 업데이트를 선택한 다음 그룹 및 배포 탭으로 이동합니다.

  3. 활성 배포가 있는 그룹의 이름을 선택하여 그룹 세부 정보 페이지로 이동합니다.

  4. 디바이스 목록에서 디바이스 이름을 선택하여 디바이스 세부 정보 패널을 엽니다. 여기에서 디바이스가 보고한 결과 코드를 볼 수 있습니다.

  5. 디바이스 업데이트 참조 에이전트는 결과 코드 필드에 대한 표준 HTTP 상태 코드 규칙을 따릅니다(예: "200"은 성공을 나타낸다). 결과 코드를 구문 분석하는 방법에 대한 자세한 내용은 디바이스 업데이트 클라이언트 오류 코드를 참조하세요.

    비고

    사용자 지정된 결과 코드를 보고하도록 디바이스 업데이트 에이전트를 수정한 경우에도 숫자 코드는 디바이스 업데이트 사용자 인터페이스로 전달됩니다. 그런 다음, 이러한 숫자 코드를 해석하기 위해 생성한 문서를 참조할 수 있습니다.

원격 로그 수집

오류를 진단하고 문제를 해결하기 위해 디바이스의 자세한 정보가 필요한 경우 로그 수집 기능을 사용하여 대상 디바이스에 연결된 Azure Blob Storage 계정에 디바이스 진단 로그를 업로드하도록 지시할 수 있습니다. 디바이스에서 원격으로 진단 로그를 수집하는 지침에 따라 이 기능을 사용할 수 있습니다.

디바이스 업데이트의 원격 로그 수집은 서비스 기반 작업 기반 기능입니다. 로그 수집을 활용하려면 디바이스에서 진단 인터페이스 및 구성 파일만 구현하고 SDK를 통해 Azure Blob Storage에 파일을 업로드할 수 있어야 합니다.

높은 수준에서 로그 수집 기능은 다음과 같이 작동합니다.

  1. 사용자는 진단 인터페이스를 구현한 최대 100개의 디바이스를 대상으로 하는 디바이스 업데이트 사용자 인터페이스 또는 API를 사용하여 새 로그 작업을 만듭니다.

  2. 디바이스 업데이트 서비스는 진단 인터페이스를 사용하여 대상 디바이스에 로그 수집 시작 메시지를 보냅니다. 이 시작 메시지에는 연결된 Azure Storage 계정에 업로드하기 위한 로그 작업 ID 및 SAS 토큰이 포함됩니다.

  3. 시작 메시지를 받으면 대상 디바이스의 디바이스 업데이트 에이전트가 온-디바이스 에이전트 구성 파일에 지정된 미리 정의된 파일 경로에서 파일을 수집하고 업로드하려고 시도합니다. 디바이스 업데이트 참조 에이전트는 기본적으로 디바이스 업데이트 에이전트 진단 로그(aduc.log) 및 DO 에이전트 진단 로그("do-agent.log")를 업로드하도록 구성됩니다.

  4. 그런 다음 디바이스 업데이트 에이전트는 로그 작업 ID, ResultCode 및 ExtendedResultCode를 포함하여 작업 상태( 성공 또는 실패)를 서비스에 다시 보고합니다. 디바이스 업데이트 에이전트가 로그 작업에 실패하면 자동으로 세 번 다시 시도하여 최종 상태만 서비스에 다시 보고합니다.

  5. 모든 대상 디바이스가 터미널 상태를 디바이스 업데이트 서비스에 다시 보고하면 디바이스 업데이트 서비스는 로그 작업을 성공 또는 실패로 표시합니다. 로그 작업이 성공하면 모든 대상 디바이스가 로그 작업을 성공적으로 완료했음을 나타냅니다. 실패한 로그 작업은 하나 이상의 대상 디바이스가 로그 작업에 실패했음을 나타냅니다.

    비고

    로그 작업은 대상 디바이스에서 병렬로 수행되므로 일부 대상 디바이스가 로그를 성공적으로 업로드했지만 전체 로그 작업이 실패한 것으로 표시될 수 있습니다. 사용자 인터페이스 또는 API를 통해 로그 작업 세부 정보를 확인하여 성공한 디바이스와 실패한 디바이스를 확인할 수 있습니다.

다음 단계

디바이스 업데이트의 원격 로그 수집 기능을 사용하는 방법 알아보기: IoT Hub용 디바이스 업데이트를 사용하여 디바이스에서 진단 로그 원격 수집