AWS IoT 무선 리소스에 대한 로깅 구성 - AWS IoT Wireless

AWS IoT 무선 리소스에 대한 로깅 구성

AWS IoT 무선 리소스에 대한 로깅을 구성하려면 API 또는 CLI를 사용합니다. AWS IoT 무선 리소스 모니터링을 시작할 때 기본 구성을 사용할 수 있습니다. 이렇게 하려면 이 주제를 건너뛰고 CloudWatch Logs를 사용한 AWS IoT 무선 모니터링(으)로 이동하여 로그를 모니터링할 수 있습니다.

로그 모니터링을 시작한 후 CLI를 사용하여 로그 수준을 더 상세한 옵션으로 변경할 수 있습니다(예: INFOERROR 정보를 제공하고 더 많은 리소스에 대한 로깅 활성화).

AWS IoT 무선 및 로그 수준

API 또는 CLI를 사용하기 전에 다음 표를 사용하여 로깅을 구성할 수 있는 다양한 로그 수준과 리소스에 대해 알아보세요. 이 표에서는 리소스를 모니터링할 때 CloudWatch Logs에 표시되는 파라미터를 보여줍니다. 리소스에 대한 로깅을 구성하는 방법은 콘솔에 표시되는 로그를 결정합니다.

샘플 CloudWatch Logs가 어떤 모습인지, 그리고 이러한 파라미터를 사용하여 AWS IoT 무선 리소스에 대한 유용한 정보를 로깅할 수 있는 방법에 대한 자세한 내용은 CloudWatch AWS IoT 무선 로그 항목 보기 섹션을 참조하세요.

로그 수준 및 리소스
명칭 가능한 값 설명
logLevel

INFO,ERROR 또는 DISABLED

  • ERROR: 작업을 실패하게 만든 오류를 표시합니다. 로그에 ERROR 정보만 포함됩니다.

  • INFO: 사물 흐름에 대한 상위 수준 정보를 제공합니다. 로그에 INFOERROR 정보가 포함됩니다.

  • DISABLED: 모든 로깅을 비활성화합니다.

resource

WirelessGateway 또는 WirelessDevice

리소스 유형(WirelessGateway 또는 WirelessDevice)입니다.

wirelessGatewayType LoRaWAN resource이(가) WirelessGateway일 때 무선 게이트웨이의 유형(항상 LoRaWAN)입니다.
wirelessDeviceType LoRaWAN 또는 Sidewalk resource이(가) WirelessDevice일 때 무선 디바이스의 유형(LoRaWAN 또는 Sidewalk)입니다.
wirelessGatewayId - resource이(가) WirelessGateway일 때 무선 게이트웨이의 식별자입니다.
wirelessDeviceId - resource이(가) WirelessDevice일 때 무선 디바이스의 식별자입니다.
event Join, Rejoin, Registration, Uplink_data, Downlink_data, CUPS_RequestCertificate 로그하려는 리소스가 무선 디바이스인지 또는 무선 게이트웨이인지에 따라, 로그되는 이벤트의 유형입니다. 자세한 내용은 CloudWatch AWS IoT 무선 로그 항목 보기 단원을 참조하십시오.

AWS IoT 무선 로깅 API

다음 API 작업을 통해 리소스 로깅을 구성할 수 있습니다. 이 표에서는 API 작업을 사용하기 위해 생성해야 하는 샘플 IAM 정책도 보여 줍니다. 다음 섹션에서는 API를 사용하여 리소스의 로그 수준을 구성하는 방법에 대해 설명합니다.

API 작업 로깅
API 이름 설명 샘플 IAM 정책

GetLogLevelsByResourceTypes

현재 기본 로그 수준 또는 리소스 유형별 로그 수준을 반환합니다. 여기에는 무선 디바이스 또는 무선 게이트웨이에 대한 로그 옵션이 포함될 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:GetLogLevelsByResourceTypes" ], "Resource": [ "*" ] } ] }

GetResourceLogLevel

지정된 리소스 식별자 및 리소스 유형에 대한 로그 수준 재정의를 반환합니다. 리소스는 무선 디바이스 또는 무선 게이트웨이일 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:GetResourceLogLevel" ], "Resource": [ "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a", ] } ] }

PutResourceLogLevel

지정된 리소스 식별자 및 리소스 유형에 대한 로그 수준 재정의를 설정합니다. 리소스는 무선 게이트웨이 또는 무선 디바이스일 수 있습니다.

참고

이 API는 계정당 200개의 로그 수준 재정의로 제한됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:PutResourceLogLevel" ], "Resource": [ "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a", ] } ] }

ResetAllResourceLogLevels

무선 게이트웨이와 무선 디바이스를 모두 포함하는 모든 리소스에 대한 로그 수준 재정의를 제거합니다.

참고

이 API는 UpdateLogLevelsByResourceTypes API를 사용하여 설정된 로그 수준에 영향을 주지 않습니다

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:ResetAllResourceLogLevels" ], "Resource": [ "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/*", "arn:aws:iotwireless:us-east-1:123456789012:WirelessGateway/* ] } ] }

ResetResourceLogLevel

지정된 리소스 식별자 및 리소스 유형에 대한 로그 수준 재정의를 제거합니다. 리소스는 무선 게이트웨이 또는 무선 디바이스일 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:ResetResourceLogLevel" ], "Resource": [ "arn:aws:iotwireless:us-east-1:123456789012:WirelessDevice/012bc537-ab12-cd3a-d00e-1f0e20c1204a", ] } ] }

UpdateLogLevelsByResourceTypes

기본 로그 수준 또는 리소스 유형별 로그 수준을 설정합니다. 무선 디바이스 또는 무선 게이트웨이에 대한 로그 옵션에 대해 이 API를 사용하고 CloudWatch에 표시될 로그 메시지를 제어할 수 있습니다.

참고

이벤트는 선택 사항이며 이벤트 유형은 리소스 유형에 연결됩니다. 자세한 내용은 이벤트 및 리소스 유형 단원을 참조하십시오.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iotwireless:UpdateLogLevelsByResourceTypes" ], "Resource": [ "*" ] } ] }

CLI를 사용하여 리소스의 로그 수준 구성

이 섹션에서는 API 또는 AWS CLI를 사용하여 AWS IoT 무선 리소스에 대한 로그 수준을 구성하는 방법에 대해 설명합니다.

CLI를 사용하기 전에 다음을 수행하세요.
  • 앞에서 설명한 대로 CLI 명령을 실행할 API에 대한 IAM 정책을 생성했는지 확인합니다.

  • 사용하려는 역할의 Amazon 리소스 이름(ARN)이 필요합니다. 로깅에 사용할 역할을 만들어야 하는 경우 계속하기 전에 AWS IoT 무선에 대한 로깅 역할 및 정책 생성 단원을 참조하세요.

AWS CLI를 사용하는 이유

기본적으로 AWS IoT 무선에 대한 로깅 역할 및 정책 생성에 설명된 대로 IAM 역할 IoTWirelessLogsRole을 생성하는 경우 AWS Management Console에서 기본 로그 수준이 ERROR인 CloudWatch Logs가 표시됩니다. 모든 리소스 또는 특정 리소스에 대한 기본 로그 수준을 변경하려면 AWS IoT 무선 로깅 API 또는 CLI를 사용합니다.

AWS CLI 사용 방법

API 작업은 모든 리소스에 대해 로그 수준을 구성할지 또는 특정 리소스에 대한 로그 수준을 구성할지에 따라 다음 유형으로 분류할 수 있습니다.

  • API 작업 GetLogLevelsByResourceTypesUpdateLogLevelsByResourceTypes는 계정에서 특정 유형의 모든 리소스(예: 무선 게이트웨이, LoRaWAN 또는 Sidewalk 디바이스)에 대한 로그 수준을 검색하고 업데이트할 수 있습니다.

  • API 작업 GetResourceLogLevel, PutResourceLogLevelResetResourceLogLevel은 리소스 식별자를 사용하여 지정한 개별 리소스의 로그 수준을 검색, 업데이트 및 재설정할 수 있습니다.

  • API 작업 ResetAllResourceLogLevelsPutResourceLogLevel API를 사용하여 로그 수준 재정의를 지정한 모든 리소스에 대해 로그 수준 재정의를 null로 재설정합니다.

CLI를 사용하여 AWS IoT에 대한 리소스별 로그인을 구성하려면
참고

여기에 표시된 CLI 명령에 해당하는 AWS API의 메서드를 사용하여 API로 이 절차를 수행할 수도 있습니다.

  1. 기본적으로 모든 리소스의 로그 수준은 ERROR로 설정됩니다. 계정의 모든 리소스에 대해 기본 로그 수준 또는 리소스 유형별 로그 수준을 설정하려면 update-log-levels-by-resource-types 명령을 사용합니다. 다음 예제에서는 JSON 파일 Input.json을 생성해서 CLI 명령에 대한 입력으로 제공하는 방법을 보여줍니다. 이 명령을 사용하여 로깅을 선택적으로 비활성화하거나 특정 유형의 리소스 및 이벤트에 대한 기본 로그 수준을 재정의할 수 있습니다.

    { "DefaultLogLevel": "INFO", "WirelessDeviceLogOptions": [ { "Type": "Sidewalk", "LogLevel": "INFO", "Events": [ { "Event": "Registration", "LogLevel": "DISABLED" } ] }, { "Type": "LoRaWAN", "LogLevel": "INFO", "Events": [ { "Event": "Join", "LogLevel": "DISABLED" }, { "Event": "Rejoin", "LogLevel": "ERROR" } ] } ] "WirelessGatewayLogOptions": [ { "Type": "LoRaWAN", "LogLevel": "INFO", "Events": [ { "Event": "CUPS_Request", "LogLevel": "DISABLED" }, { "Event": "Certificate", "LogLevel": "ERROR" } ] } ] }

    여기서 각 항목은 다음과 같습니다.

    WirelessDeviceLogOptions

    무선 디바이스에 대한 로그 옵션 목록입니다. 각 로그 옵션에는 무선 디바이스 유형(Sidewalk 또는 LoRaWAN)과 무선 디바이스 이벤트 로그 옵션 목록이 포함됩니다. 각 무선 디바이스 이벤트 로그 옵션에는 선택적으로 이벤트 유형 및 해당 로그 수준이 포함될 수 있습니다.

    WirelessGatewayLogOptions

    무선 게이트웨이에 대한 로그 옵션 목록입니다. 각 로그 옵션에는 무선 게이트웨이 유형(LoRaWAN)과 무선 게이트웨이 이벤트 로그 옵션 목록이 포함됩니다. 각 무선 게이트웨이 이벤트 로그 옵션에는 선택적으로 이벤트 유형 및 해당 로그 수준이 포함될 수 있습니다.

    DefaultLogLevel

    모든 리소스에 사용할 로그 수준입니다. 유효 값은 ERROR, INFODISABLED입니다. 기본 값은 INFO입니다.

    LogLevel

    개별 리소스 유형 및 이벤트에 사용할 로그 수준입니다. 이러한 로그 수준은 기본 로그 수준(예: LoRaWAN 게이트웨이의 경우 로그 수준 INFO, 두 이벤트 유형의 경우 로그 수준 DISABLEDERROR)을 재정의합니다.

    다음 명령을 실행하여 Input.json 파일을 명령에 대한 입력으로 제공하세요. 이 명령은 출력을 생성하지 않습니다.

    aws iotwireless update-log-levels-by-resource-types \ --cli-input-json Input.json

    무선 디바이스 및 무선 게이트웨이에 대한 로그 옵션을 제거하려면 다음 명령을 실행합니다.

    { "DefaultLogLevel":"DISABLED", "WirelessDeviceLogOptions": [], "WireslessGatewayLogOptions":[] }
  2. update-log-levels-by-resource-types 명령은 출력을 반환하지 않습니다. get-log-levels-by-resource-types 명령을 사용하여 리소스별 로깅 정보를 검색할 수 있습니다. 이 명령은 기본 로그 수준과 무선 디바이스 및 무선 게이트웨이 로그 옵션을 반환합니다.

    참고

    get-log-levels-by-resource-types 명령은 CloudWatch 콘솔에서 로그 수준을 직접 검색할 수 없습니다. get-log-levels-by-resource-types 명령을 사용하면 update-log-levels-by-resource-types 명령을 통해 리소스에 대해 지정한 최신 로그 수준 정보를 가져올 수 있습니다.

    aws iotwireless get-log-levels-by-resource-types

    다음 명령을 실행하면 update-log-levels-by-resource-types로 지정한 최신 로깅 정보를 반환합니다. 예를 들어, 무선 디바이스 로그 옵션을 제거한 경우 get-log-levels-by-resource-types를 실행하면 이 값이 null로 반환됩니다.

    { "DefaultLogLevel": "INFO", "WirelessDeviceLogOptions": null, "WirelessGatewayLogOptions": [ { "Type": "LoRaWAN", "LogLevel": "INFO", "Events": [ { "Event": "CUPS_Request", "LogLevel": "DISABLED" }, { "Event": "Certificate", "LogLevel": "ERROR" } ] } ] }
  3. 개별 무선 게이트웨이 또는 무선 디바이스 리소스에 대한 로그 수준을 제어하려면 다음 CLI 명령을 사용합니다.

    이러한 CLI를 사용하는 경우를 예로 들어 계정에서 많은 수의 무선 디바이스 또는 게이트웨이가 로그되고 있다고 가정해 보겠습니다. 일부 무선 디바이스에 대해서만 오류를 해결하려면 DefaultLogLevelDISABLED로 설정하여 모든 무선 디바이스에 대한 로깅을 비활성화하고 put-resource-log-level을 사용하여 계정에 있는 해당 디바이스에 대해서만 LogLevelERROR로 설정할 수 있습니다.

    aws iotwireless put-resource-log-level \ --resource-identifier --resource-type WirelessDevice --log-level ERROR

    이 예에서 명령은 지정된 무선 디바이스 리소스에 대해서만 로그 수준을 ERROR로 설정하고 다른 모든 리소스에 대한 로그는 비활성화됩니다. 이 명령은 출력을 생성하지 않습니다. 이 정보를 검색하고 로그 수준이 설정되었는지 확인하려면 get-resource-log-level 명령을 사용하세요.

  4. 이전 단계에서 문제를 디버깅하고 오류를 해결한 후 reset-resource-log-level 명령을 실행하여 해당 리소스의 로그 수준을 null로 재설정할 수 있습니다. put-resource-log-level 명령을 사용하여 여러 디바이스에 대한 오류 문제 해결과 같이 둘 이상의 무선 디바이스 또는 게이트웨이 리소스에 대한 로그 수준 재정의를 설정한 경우 reset-all-resource-log-levels 명령을 사용하여 해당 모든 리소스에 대해 로그 수준 재정의를 다시 null로 재설정할 수 있습니다.

    aws iotwireless reset-all-resource-log-levels

    이 명령은 출력을 생성하지 않습니다. 리소스에 대한 로깅 정보를 검색하려면 get-resource-log-level 명령을 실행합니다.

다음 단계

로깅 역할을 생성하고 AWS IoT 무선 API를 사용하여 AWS IoT Core for LoRaWAN 리소스에 대한 로깅을 구성하는 방법을 배웠습니다. 그런 다음 로그 항목 모니터링에 대해 알아보려면 CloudWatch Logs를 사용한 AWS IoT 무선 모니터링(으)로 이동하세요.