

# CloudWatch 인사이트를 사용하여 AWS IoT 무선의 로그 필터링
<a name="cwl-insights"></a>

CloudWatch Logs를 사용하여 필터 표현식을 생성할 수 있지만 CloudWatch 인사이트를 사용하여 애플리케이션에 따라 필터 표현식을 보다 효과적으로 생성하고 사용하는 것이 좋습니다.

먼저 CloudWatch **로그 그룹**을 사용하여 콘솔에서 로그 항목을 보는 데 사용할 수 있는 다양한 리소스 유형, 해당 이벤트 유형 및 로그 수준에 대해 알아보는 것이 좋습니다. 그런 다음 이 페이지에 있는 일부 필터 표현식의 예를 참조로 사용하여 AWS IoT 무선 리소스에 대한 고유한 필터를 생성할 수 있습니다.

## 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 무선에 대한 로그 그룹을 보려면 `/aws/iotwireless`를 선택합니다.

이제 쿼리 입력을 시작하여 로그 그룹을 필터링할 수 있습니다. 다음 섹션에는 리소스 지표에 대한 인사이트를 얻는 데 도움이 되는 몇 가지 유용한 쿼리가 포함되어 있습니다.

## 필터링할 유용한 쿼리를 만들고 AWS IoT 무선을 위한 인사이트 확보
<a name="insights-resource-filter"></a>

필터 표현식을 사용하여 CloudWatch 인사이트를 통해 유용한 로그 정보를 추가로 표시할 수 있습니다. 다음은 몇 가지 샘플 쿼리를 보여줍니다

### 특정 리소스 유형에 대한 로그만 표시
<a name="insights-gateway-filter"></a>

LoRaWAN 게이트웨이 또는 Sidewalk 디바이스와 같은 특정 리소스 유형에 대한 로그만 표시하는 데 도움이 되는 쿼리를 만들 수 있습니다. 예를 들어 Sidewalk 디바이스에 대한 메시지만 표시하도록 로그를 필터링하려면 다음 쿼리를 입력하고 **쿼리 실행**을 선택합니다. 이 쿼리를 저장하려면 **저장**을 선택합니다.

```
fields @message
| filter @message like /Sidewalk/
```

쿼리가 실행된 후, 결과는 **로그** 탭에서 볼 수 있고, 여기서 계정의 Sidewalk 디바이스와 관련된 로그의 타임스탬프가 표시됩니다. 이전에 Sidewalk 디바이스와 관련된 이벤트가 발생한 경우 이벤트가 발생한 시간을 표시하는 막대 그래프도 표시됩니다. 다음은 **로그** 탭의 결과 중 하나를 확장하는 경우의 예를 보여줍니다. 또는 Sidewalk 디바이스와 관련된 오류를 해결하려는 경우 로그 수준을 `ERROR`로 설정하는 다른 필터를 추가하여 오류 정보만 표시할 수 있습니다.

```
Field	          Value
@ingestionTime      1623894967640
@log	             954314929104:/aws/iotwireless
@logStream	   WirelessDevice-Downlink_Data-715adccfb34170214ec2f6667ddfa13cb5af2c3ddfc52fbeee0e554a2e780bed
@message	     {                    
                    "resource": "WirelessDevice",
                    "wirelessDeviceId": "3b058d05-4e84-4e1a-b026-4932bddf978d",
                    "wirelessDeviceType": "Sidewalk",
                    "devEui": "feffff000000011a",
                    "event": "Downlink_Data",
                    "logLevel": "INFO",
                    "messageId": "7e752a10-28f5-45a5-923f-6fa7133fedda",
                    "message": "Successfully sent downlink message. Amazon SidewalkId = 2000000006, Sequence number = 0"
                    }
@timestamp          1623894967640
devEui	           feffff000000011a
event	        Downlink_Data
logLevel            INFO
message	          Successfully sent downlink message. Amazon SidewalkId = 2000000006, Sequence number = 0
messageId	    7e752a10-28f5-45a5-923f-6fa7133fedda
resource	     WirelessDevice
wirelessDeviceId    3b058d05-4e84-4e1a-b026-4932bddf978d
wirelessDeviceType  Sidewalk
```

### 특정 메시지 또는 이벤트 표시
<a name="insights-gateway-filter"></a>

특정 메시지를 표시하고 이벤트가 발생한 시기를 관찰하는 데 도움이 되는 쿼리를 만들 수 있습니다. 예를 들어 LoRaWAN 무선 디바이스에서 다운링크 메시지가 전송된 시기를 확인하려면 다음 쿼리를 입력하고 **쿼리 실행**을 선탣합니다. 이 쿼리를 저장하려면 **저장**을 선택합니다.

```
filter @message like /Downlink message sent/
```

쿼리가 실행되면 다운링크 메시지가 무선 디바이스에 성공적으로 전송되었을 때의 타임스탬프를 보여주는 결과가 **로그** 탭에 표시됩니다. 이전에 무선 디바이스에 전송된 다운링크 메시지가 있는 경우 다운링크 메시지가 전송된 시간을 표시하는 막대 그래프도 표시됩니다. 다음은 **로그** 탭의 결과 중 하나를 확장하는 경우의 예를 보여줍니다. 또는 다운링크 메시지가 전송되지 않은 경우 문제를 디버깅할 수 있도록 메시지가 전송되지 않은 경우에 대한 결과만 표시하도록 쿼리를 수정할 수 있습니다.

```
Field	          Value
@ingestionTime      1623884043676
@log	             954314929104:/aws/iotwireless
@logStream	   WirelessDevice-Downlink_Data-42d0e6d09ba4d7015f4e9756fcdc616d401cd85fe3ac19854d9fbd866153c872
@message	     {
                    "timestamp": "2021-06-16T22:54:00.770493863Z",
                    "resource": "WirelessDevice",
                    "wirelessDeviceId": "3b058d05-4e84-4e1a-b026-4932bddf978d",
                    "wirelessDeviceType": "LoRaWAN",
                    "devEui": "feffff000000011a",
                    "event": "Downlink_Data",
                    "logLevel": "INFO",
                    "messageId": "7e752a10-28f5-45a5-923f-6fa7133fedda",
                    "message": "Downlink message sent. MessageId: 7e752a10-28f5-45a5-923f-6fa7133fedda"
                    }
@timestamp          1623884040858
devEui	           feffff000000011a
event	        Downlink_Data
logLevel            INFO
message	          Downlink message sent. MessageId: 7e752a10-28f5-45a5-923f-6fa7133fedda
messageId	    7e752a10-28f5-45a5-923f-6fa7133fedda
resource	     WirelessDevice
timestamp	    2021-06-16T22:54:00.770493863Z
wirelessDeviceId    3b058d05-4e84-4e1a-b026-4932bddf978d
wirelessDeviceType  LoRaWAN
```

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

CloudWatch Insights를 사용하여 로그 메시지를 필터링하는 쿼리를 생성하여 유용한 정보를 얻는 방법을 배웠습니다. 앞서 설명한 필터 중 일부를 결합하고 모니터링 중인 리소스에 따라 고유한 필터를 디자인할 수 있습니다. CloudWatch Insights 사용에 대한 자세한 내용은 [CloudWatch Insights로 로그 데이터 분석](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData)을 참조하세요.

CloudWatch Insights를 사용하여 쿼리를 생성한 후 저장한 경우 필요에 따라 저장된 쿼리를 로드하고 실행할 수 있습니다. 또는 CloudWatch **Logs Insights** 콘솔에서 **기록(History)** 버튼을 클릭하면 이전에 실행한 쿼리를 보고 필요에 따라 다시 실행하거나 추가 쿼리를 생성하여 추가로 수정할 수 있습니다.