

# CloudWatch AWS IoT 무선 로그 항목 보기
<a name="cwl-format"></a>

[AWS IoT 무선에 대한 로깅 역할 및 정책 생성](create-logging-role-policy.md)에 설명된 대로 AWS IoT 무선에 대한 로깅을 구성하고 일부 로그 항목을 작성한 후 다음 단계를 수행하여 CloudWatch 콘솔에서 로그 항목을 볼 수 있습니다.

## CloudWatch Logs 그룹에서 AWS IoT 로그 보기
<a name="viewing-logs"></a>

[CloudWatch 콘솔](https://console.aws.amazon.com/cloudwatch)에서 CloudWatch Logs는 **/aws/iotwireless**라는 로그 그룹에 나타납니다. CloudWatch Logs에 대한 자세한 내용은 [CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/WhatIsCloudWatchLogs.html)를 참조하세요.

**CloudWatch 콘솔에서 AWS IoT 로그를 보려면**

[CloudWatch 콘솔](https://console.aws.amazon.com/cloudwatch)로 이동하여 탐색 창에서 **로그 그룹**을 선택합니다.

1. **필터** 텍스트 상자에 **/aws/iotwireless**를 입력한 다음 `/aws/iotwireless` 로그 그룹을 선택합니다.

1. 계정에 대해 생성된 AWS IoT Core for LoRaWAN 로그의 전체 목록을 보려면 **모두 검색(Search all)**을 선택합니다. 개별 로그 스트림을 보려면 확장 아이콘을 선택합니다.

1. 로그 스트림을 필터링하기 위해 **이벤트 필터링** 텍스트 상자에 쿼리를 입력할 수도 있습니다. 몇 가지 시도해볼 만한 쿼리는 다음과 같습니다.
   + `{ $.logLevel = "ERROR" }` 

      이 필터를 사용하여 로그 수준이 `ERROR`인 모든 로그를 찾고 개별 오류 스트림을 확장하여 오류 메시지를 읽을 수 있습니다. 그러면 오류를 해결하는 데 도움이 됩니다.
   + `{ $.resource = "WirelessGateway" }` 

      로그 수준에 관계없이 `WirelessGateway` 리소스에 대한 모든 로그를 찾습니다.
   + `{ $.event = "CUPS_Request" && $.logLevel = "ERROR" }`

      이벤트 유형이 `CUPS_Request`이고, 로그 수준이 `ERROR`인 로그를 모두 찾습니다.

## 이벤트 및 리소스 유형
<a name="cwl-format-events-resources"></a>

다음 표에서는 로그 항목을 볼 수 있는 다양한 유형의 이벤트를 보여 줍니다. 이벤트 유형은 리소스 유형이 무선 디바이스인지 또는 무선 게이트웨이인지에 따라 달라집니다. 리소스 및 이벤트 유형에 대해 기본 로그 수준을 사용하거나 각각에 대해 로그 수준을 지정하여 기본 로그 수준을 재정의할 수 있습니다.


**사용된 리소스를 기반으로 하는 이벤트 유형**  

| Resource | 리소스 유형 | 이벤트 유형 | 
| --- | --- | --- | 
| 무선 게이트웨이 | LoRaWAN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/iot-wireless/latest/developerguide/cwl-format.html)  | 
| 무선 디바이스 | LoRaWAN |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/iot-wireless/latest/developerguide/cwl-format.html)  | 
| 무선 디바이스 | Sidewalk |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/iot-wireless/latest/developerguide/cwl-format.html)  | 

다음 주제에서는 이러한 이벤트 유형 및 무선 게이트웨이 및 무선 디바이스의 로그 항목에 대한 자세한 정보를 제공합니다.

**Topics**
+ [CloudWatch Logs 그룹에서 AWS IoT 로그 보기](#viewing-logs)
+ [이벤트 및 리소스 유형](#cwl-format-events-resources)
+ [무선 게이트웨이 및 무선 디바이스 리소스에 대한 로그 항목](wireless-log-entries.md)

# 무선 게이트웨이 및 무선 디바이스 리소스에 대한 로그 항목
<a name="wireless-log-entries"></a>

로깅을 활성화한 후에는 무선 게이트웨이 및 무선 디바이스에 대한 로그 항목을 볼 수 있습니다. 다음 섹션에서는 리소스 및 이벤트 유형에 따라 다양한 종류의 로그 항목에 대해 설명합니다.

## 무선 게이트웨이 로그 항목
<a name="gateway-log-entries"></a>

이 섹션에서는 [CloudWatch 콘솔](https://console.aws.amazon.com/cloudwatch)에 표시되는 무선 게이트웨이 리소스에 대한 샘플 로그 항목 중 일부를 보여줍니다. 이러한 로그 메시지는 이벤트 유형이 `CUPS_Request` 또는 `Certificate`일 수 있으며 리소스 수준 또는 이벤트 수준에서 `INFO`, `ERROR`, 또는 `DISABLED`의 로그 수준을 표시하도록 구성할 수 있습니다. 오류 정보만 보려면 로그 수준을 `ERROR`로 설정합니다. `ERROR` 로그 항목의 메시지에는 실패한 이유에 대한 정보가 포함됩니다.

무선 게이트웨이 리소스의 로그 항목은 다음 이벤트 유형에 따라 분류할 수 있습니다.
+ 

**CUPS\$1Request**  
게이트웨이에서 실행되는 LoRa Basic Station은 주기적으로 CUPS(Configuration and Update Server)에 업데이트 요청을 전송합니다. 이 이벤트 유형의 경우 무선 게이트웨이 리소스에 대한 CLI를 구성할 때 로그 수준을 `INFO`로 설정하면 로그에 다음과 같은 내용이 표시됩니다.
  + 이벤트가 성공하면 `logLevel`이 `INFO`인 로그 메시지가 표시됩니다. 메시지에는 게이트웨이에 전송된 CUPS 응답에 대한 세부 정보와 게이트웨이 세부 정보가 포함됩니다. 다음 예제는 이 로그 항목을 보여 줍니다. 로그 항목의 `logLevel` 및 기타 필드에 대한 자세한 내용은 [AWS IoT 무선 및 로그 수준](configure-resource-logging.md#log-levels-resources) 단원을 참조하세요.

    ```
    {
        "timestamp": "2021-05-13T16:56:08.853Z",
        "resource": "WirelessGateway",
        "wirelessGatewayId": "5da85cc8-3361-4c79-8be3-3360fb87abda",
        "wirelessGatewayType": "LoRaWAN",
        "gatewayEui": "feffff00000000e2",
        "event": "CUPS_Request",
        "logLevel": "INFO",
        "message": "Sending CUPS response of total length 3213 to GatewayEui: feffff00000000e2 with  TC Credentials,"
    }
    ```
  + 오류가 있는 경우 `logLevel`이 `ERROR`인 로그 항목이 표시되고 메시지에 오류 세부 정보가 포함됩니다. `CUPS_Request` 이벤트에 대해 오류가 발생할 수 있는 경우의 예로는 CUPS CRC 누락, AWS IoT Core for LoRaWAN에서 게이트웨이의 TC Uri 불일치, `IoTWirelessGatewayCertManagerRole` 누락 또는 무선 게이트웨이 레코드를 가져올 수 없음 등이 있습니다. 다음 예제는 CRC 누락 로그 항목을 보여 줍니다. 이 오류를 해결하려면 게이트웨이 설정을 확인하여 올바른 CUPS CRC를 입력했는지 확인하세요.

    ```
    {
        "timestamp": "2021-05-13T16:56:08.853Z",
        "resource": "WirelessGateway",
        "wirelessGatewayId": "5da85cc8-3361-4c79-8be3-3360fb87abda",
        "wirelessGatewayType": "LoRaWAN",
        "gatewayEui": "feffff00000000e2",
        "event": "CUPS_Request",
        "logLevel": "ERROR",
        "message": "The CUPS CRC is missing from the request. Check your gateway setup and enter the CUPS CRC,"
    }
    ```
+ 

**인증서**  
이 로그 항목은 무선 게이트웨이가 AWS IoT에 대한 연결을 인증하기 위한 올바른 인증서를 제공했는지 여부를 확인하는 데 도움이 됩니다. 이 이벤트 유형의 경우 무선 게이트웨이 리소스에 대한 CLI를 구성할 때 로그 수준을 `INFO`로 설정하면 로그에 다음과 같은 내용이 표시됩니다.
  + 이벤트가 성공하면 `logLevel`이 `INFO`인 로그 메시지가 표시됩니다. 메시지에는 인증서 ID 및 무선 게이트웨이 식별자에 대한 세부 정보가 포함됩니다. 다음 예제는 이 로그 항목을 보여 줍니다. 로그 항목의 `logLevel` 및 기타 필드에 대한 자세한 내용은 [AWS IoT 무선 및 로그 수준](configure-resource-logging.md#log-levels-resources) 단원을 참조하세요.

    ```
    {
        "resource": "WirelessGateway",
        "wirelessGatewayId": "5da85cc8-3361-4c79-8be3-3360fb87abda",
        "wirelessGatewayType": "LoRaWAN",
        "event": "Certificate",
        "logLevel": "INFO",
        "message": "Gateway connection authenticated. 
        (CertificateId: b5942a7aee973eda24314e416889227a5e0aa5ed87e6eb89239a83f515dea17c, WirelessGatewayId: 5da85cc8-3361-4c79-8be3-3360fb87abda)"
    }
    ```
  + 오류가 있는 경우 `logLevel`이 `ERROR`인 로그 항목이 표시되고 메시지에 오류 세부 정보가 포함됩니다. `Certificate` 이벤트에 대해 오류가 발생할 수 있는 경우의 예로는 잘못된 인증서 ID, 무선 게이트웨이 식별자 또는 무선 게이트웨이 식별자와 인증서 ID 간의 불일치 등이 있습니다. 다음 예는 잘못된 무선 게이트웨이 식별자로 인한 `ERROR`를 보여줍니다. 오류를 해결하려면 게이트웨이 식별자를 확인합니다.

    ```
    {
        "resource": "WirelessGateway",
        "wirelessGatewayId": "5da85cc8-3361-4c79-8be3-3360fb87abda",
        "wirelessGatewayType": "LoRaWAN",
        "event": "Certificate",
        "logLevel": "INFO",
        "message": "The gateway connection couldn't be authenticated because a provisioned gateway associated with the certificate couldn't be found. 
        (CertificateId: 729828e264810f6fc7134daf68056e8fd848afc32bfe8082beeb44116d709d9e)"
    }
    ```

## 무선 디바이스 로그 항목
<a name="device-log-entries"></a>

이 섹션에서는 [CloudWatch 콘솔](https://console.aws.amazon.com/cloudwatch)에 표시되는 무선 디바이스 리소스에 대한 샘플 로그 항목 중 일부를 보여줍니다. 이러한 로그 메시지의 이벤트 유형은 LoRaWAN 또는 Sidewalk 디바이스를 사용하는지 여부에 따라 다릅니다. 각 무선 디바이스 리소스 또는 이벤트 유형은 `INFO`, `ERROR`, 또는 `DISABLED`의 로그 수준을 표시하도록 구성할 수 있습니다.

**참고**  
요청에 LoRaWAN 및 Sidewalk 무선 메타데이터가 동시에 포함되어서는 안 됩니다. 이 시나리오에서 `ERROR` 로그 항목을 방지하려면 LoRaWAN 또는 Sidewalk 무선 데이터를 지정하세요.

### LoRaWAN 디바이스 로그 항목
<a name="lorawan-log-entries"></a>

LoRaWAN 무선 디바이스의 로그 항목은 다음 이벤트 유형에 따라 분류할 수 있습니다.
+ 

**`Join` 및 `Rejoin`**  
LoRaWAN 디바이스를 추가하고 AWS IoT Core for LoRaWAN에 연결할 때 디바이스에서 업링크 데이터를 전송하기 전에 `activation` 또는 `join procedure`라는 프로세스를 완료해야 합니다. 자세한 내용은 [AWS IoT Core for LoRaWAN에 무선 디바이스 추가](lorawan-end-devices-add.md) 단원을 참조하십시오.

  이 이벤트 유형의 경우 무선 게이트웨이 리소스에 대한 CLI를 구성할 때 로그 수준을 `INFO`로 설정하면 로그에 다음과 같은 내용이 표시됩니다.
  + 이벤트가 성공하면 `logLevel`이 `INFO`인 로그 메시지가 표시됩니다. 메시지에는 조인 또는 리조인 요청의 상태에 대한 세부 정보가 포함됩니다. 다음 예제는 이 로그 항목을 보여 줍니다. 로그 항목의 `logLevel` 및 기타 필드에 대한 자세한 내용은 [AWS IoT 무선 및 로그 수준](configure-resource-logging.md#log-levels-resources) 단원을 참조하세요.

    ```
    {
        "timestamp": "2021-05-13T16:56:08.853Z",
        "resource": "WirelessDevice",
        "wirelessDeviceType": "LoRaWAN",
        "WirelessDeviceId": "5da85cc8-3361-4c79-8be3-3360fb87abda",    
        "devEui": "feffff00000000e2",
        "event": "Rejoin",
        "logLevel": "INFO",
        "message": "Rejoin succeeded"
    }
    ```
  + 오류가 있는 경우 `logLevel`이 `ERROR`인 로그 항목이 표시되고 메시지에 오류 세부 정보가 포함됩니다. `Join` 및 `Rejoin` 이벤트에 대해 오류가 발생할 수 있는 경우의 예로는 잘못된 LoRaWAN 리전 설정 또는 잘못된 MIC(메시지 무결성 코드) 검사 등이 있습니다. 다음 예제에서는 MIC 검사로 인한 조인 오류를 보여줍니다. 오류를 해결하려면 올바른 루트 키를 입력했는지 확인하세요.

    ```
    {
        "timestamp": "2020-11-24T01:46:50.883481989Z",
        "resource": "WirelessDevice",
        "wirelessDeviceType": "LoRaWAN",
        "WirelessDeviceId": "cb4c087c-1be5-4990-8654-ccf543ee9fff",
        "devEui": "58a0cb000020255c",
        "event": "Join",
        "logLevel": "ERROR",
        "message": "invalid MIC. It's most likely caused by wrong root keys."
    }
    ```
+ 

**Uplink\$1Data 및 Downlink\$1Data**  
이벤트 유형 `Uplink_Data`는 페이로드가 LoRaWAN 또는 Sidewalk 디바이스에서 AWS IoT로 전송될 때 AWS IoT 무선가 생성하는 메시지에 사용됩니다. 이벤트 유형 `Downlink_Data`는 AWS IoT에서 무선 디바이스로 전송되는 다운링크 메시지와 관련된 메시지에 사용됩니다.

  이 이벤트 유형의 경우 무선 디바이스에 대한 CLI를 구성할 때 로그 수준을 `INFO`로 설정하면 로그에 다음과 같은 내용이 표시됩니다.
  + 이벤트가 성공하면 `logLevel`이 `INFO`인 로그 메시지가 표시됩니다. 메시지에는 전송된 업링크 또는 다운링크 메시지의 상태 및 무선 디바이스 식별자에 대한 세부 정보가 포함됩니다. 다음은 Sidewalk 디바이스에 대한 이 로그 항목의 예를 보여 줍니다. 로그 항목의 `logLevel` 및 기타 필드에 대한 자세한 내용은 [AWS IoT 무선 및 로그 수준](configure-resource-logging.md#log-levels-resources) 단원을 참조하세요.

    ```
    {
        "resource": "WirelessDevice",
        "wirelessDeviceId": "5371db88-d63d-481a-868a-e54b6431845d",
        "wirelessDeviceType": "Sidewalk",
        "event": "Downlink_Data",
        "logLevel": "INFO",
        "messageId": "8da04fa8-037d-4ae9-bf67-35c4bb33da71",
        "message": "Message delivery succeeded.  MessageId: 8da04fa8-037d-4ae9-bf67-35c4bb33da71. AWS IoT Core: {\"message\":\"OK\",\"traceId\":\"038b5b05-a340-d18a-150d-d5a578233b09\"}"
    }
    ```
  + 오류가 있는 경우 `logLevel`이 `ERROR`인 로그 항목이 표시되고 메시지에 오류 세부 정보가 포함되어 오류를 해결하는 데 도움이 됩니다. `Registration` 이벤트에 대해 오류가 발생할 수 있는 경우의 예로는 인증 문제, 유효하지 않거나 너무 많은 요청, 페이로드를 암호화하거나 해독할 수 없는 경우, 지정된 ID를 사용하여 무선 디바이스를 찾을 수 없는 경우 등이 있습니다. 다음 예는 메시지를 처리하는 동안 발생하는 권한 오류를 보여줍니다.

    ```
    {
        "resource": "WirelessDevice",
        "wirelessDeviceId": "cb4c087c-1be5-4990-8654-ccf543ee9fff",
        "wirelessDeviceType": "LoRaWAN",
        "event": "Uplink_Data",
        "logLevel": "ERROR",
        "message": "Cannot assume role MessageId: ef38877f-3454-4c99-96ed-5088c1cd8dee. 
        Access denied: User: arn:aws:sts::005196538709:assumed-role/DataRoutingServiceRole/6368b35fd48c445c9a14781b5d5890ed is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::400232685877:role/ExecuteRules_Role\tstatus code: 403, request id: 471c3e35-f8f3-4e94-b734-c862f63f4edb"
    }
    ```

### Sidewalk 디바이스 로그 항목
<a name="sidewalk-log-entries"></a>

Sidewalk 디바이스의 로그 항목은 다음 이벤트 유형에 따라 분류할 수 있습니다.
+ 

**`Registration`**  
이 로그 항목은 AWS IoT 무선에 등록하는 모든 Sidewalk 디바이스의 상태를 모니터링하는 데 도움이 됩니다. 이 이벤트 유형의 경우 무선 디바이스 리소스에 대한 CLI를 구성할 때 로그 수준을 `INFO`로 설정하면 `logLevel`이 `INFO` 및 `ERROR`인 로그 메시지가 표시됩니다. 메시지에는 시작부터 완료까지 등록 진행에 대한 세부 정보가 포함됩니다. `ERROR` 로그 메시지에는 디바이스 등록 관련 문제를 해결하는 방법에 대한 정보가 포함됩니다.

  다음은 로그 수준이 `INFO`인 로그 메시지에 대한 예를 보여줍니다. 로그 항목의 `logLevel` 및 기타 필드에 대한 자세한 내용은 [AWS IoT 무선 및 로그 수준](configure-resource-logging.md#log-levels-resources) 단원을 참조하세요.

  ```
  {
      "resource": "WirelessDevice",
      "wirelessDeviceId": "8d0b2775-e19b-4b2a-a351-cb8a2734a504",
      "wirelessDeviceType": "Sidewalk",
      "event": "Registration",
      "logLevel": "INFO",
      "message": "Successfully completed device registration. Amazon SidewalkId = 2000000002"
  }
  ```
+ 

**Uplink\$1Data 및 Downlink\$1Data**  
Sidewalk 디바이스의 이벤트 유형 `Uplink_Data` 및 `Downlink_Data`는 LoRaWAN 디바이스의 해당 이벤트 유형과 유사합니다. 자세한 내용은 LoRaWAN 디바이스 로그 항목에 대해 앞서 설명한 **Uplink\$1Data 및 Downlink\$1Data** 단원을 참조하세요.

### 다음 단계
<a name="cwl-format-next-steps"></a>

리소스에 대한 로그 항목을 보는 방법과, AWS IoT 무선에 대한 로깅을 활성화한 후 CloudWatch 콘솔에서 볼 수 있는 다양한 로그 항목을 보는 방법을 배웠습니다. **로그 그룹**을 사용하여 필터 스트림을 생성할 수 있지만 CloudWatch Insights를 사용하여 필터 스트림을 생성 및 사용하는 것이 좋습니다. 자세한 내용은 [CloudWatch 인사이트를 사용하여 AWS IoT 무선의 로그 필터링](cwl-insights.md) 단원을 참조하십시오.