AWS IoT Core에서 특정 리소스의 로깅 수준을 동적으로 구성하려면 어떻게 해야 할까요?

4분 분량
0

AWS IoT Core 로그에 대한 리소스별 로깅을 동적으로 구성하고 싶습니다.

간략한 설명

참고: 이 문서는 AWS IoT Core 로그의 V2에만 해당됩니다.

AWS IoT Core 로그를 사용하여 특정 리소스의 로깅 수준을 동적으로 설정할 수 있습니다. 동적 사물 그룹을 사용하여 리소스별 로깅 수준을 설정할 수 있습니다. 클라이언트를 사물로 등록해야 하며 이 사물 이름과 연관된 동일한 클라이언트 ID로 연결해야 합니다. 동적 사물 그룹은 플릿 인덱싱 쿼리를 사용하여 쿼리 조건에 맞는 사물을 지속적으로 찾아서 그룹에 자동으로 추가합니다.

기본 로깅을 더 낮은 상세도 수준으로 구성하고 리소스별 로깅을 더 높은 상세도 수준으로 구성하는 것이 가장 좋습니다. 로그 상세도 수준에는 DISABLED(최저), ERROR, WARN, INFO, DEBUG(최고)가 포함됩니다.

동적 사물 그룹을 생성하거나 업데이트할 때 사물이 동적 사물 그룹에 속할 수는 있지만 해당 그룹에 자동으로 추가되지 않을 수 있습니다. 자세한 내용은 성공적인 명령으로 오류 로그 가능을 참조하세요.

중요: AWS IoT Core 플릿 크기에 따라, 더 상세한 로그 수준을 설정하면 비용이 많이 들고 문제 해결이 더 어려워질 수 있습니다. INFO 또는 DEBUG는 문제 해결 시 임시 조치로만 사용해야 합니다. 문제 해결이 완료되면 로깅 수준을 덜 자세한 설정으로 다시 설정해야 합니다.

해결 방법

전제 조건

IoT 관리자 권한 보안 인증 정보를 사용하여 AWS Command Line Interface(AWS CLI)를 로컬에 설치해야 합니다. AWS CLI용 기본 AWS 리전은 대상 AWS 리전을 가리켜야 합니다. 등록된 IoT 사물로 AWS IoT Core 엔드포인트에 연결되고 이와 상호 작용하는 클라이언트가 있어야 합니다.

참고: AWS CLI 명령을 실행할 때 오류가 발생하는 경우, 최신 버전의 AWS CLI를 사용하고 있는지 확인하세요.

특정 리소스에 대한 자동 로깅 구성

1.    AWS IoT 사물을 생성하고 사물 속성을 여기에 추가합니다.

참고: 필요에 따라 사물 속성을 더 추가할 수 있습니다. 그런 다음 동적 사물 그룹 쿼리를 변경하여 이러한 쿼리를 검색할 수 있습니다.

2.    사물 인덱싱을 켜세요.

3.    DescribeIndex 명령을 실행하여 다음과 같이 귀하의 사물 인덱스에 ACTIVE indexStatus 속성이 있는지 확인하세요.

aws iot describe-index --index-name "AWS_Things"

4.    AWS IoT 콘솔 또는 AWS CLI를 사용하여 동적 사물 그룹을 생성합니다.

AWS IoT 콘솔

1.    플릿 인덱싱을 아직 켜지 않았다면 플릿 인덱싱을 켜세요.

2.    AWS IoT 콘솔에 로그인합니다.

3.    탐색 창에서 모든 디바이스를 선택한 다음 사물 그룹을 선택합니다.

4.    사물 그룹 생성을 선택합니다.

5.    사물 그룹 유형에서 동적 사물 그룹 생성을 선택한 다음, 다음을 선택합니다.

6.    사물 그룹 이름logging_level_debug_dynamic을 입력합니다. 그다음, 사물 그룹 생성을 선택합니다.
참고: logging_level_debug_dynamic을 사물 그룹 이름으로 바꾸세요.

7.    쿼리attributes.firmware:1을 입력한 다음, Enter 키를 눌러서 검색 쿼리 문을 적용하세요.
참고: firmware:1을 쿼리에 사용하려는 사물 속성 및 값으로 바꿉니다.

8.    쿼리 미리 보기를 선택하여 쿼리 기준에 맞는 모든 사물을 확인하세요.

9.    사물 그룹 생성을 선택합니다.

AWS CLI

1.    CreateDynamicThingGroup 명령을 실행하여 동적 사물 그룹을 다음과 같이 생성합니다.

참고: 동적 사물 그룹 생성은 즉시 수행되지 않으며 완료하는 데 시간이 걸릴 수 있습니다. 자세한 내용은 동적 사물 그룹 생성을 참조하세요.

aws iot create-dynamic-thing-group \
 --thing-group-name "logging_level_debug_dynamic" \
 --query-string "attributes.firmware:1"

참고: 위 예시에서 firmware:1을 쿼리에 사용하려는 속성 및 값으로 바꾸세요. logging_level_debug_dynamic을 사물 그룹 이름으로 바꾸세요.

출력은 다음 메시지와 비슷하게 나타납니다.

{
 "thingGroupName": "logging_level_debug_dynamic",
 "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug_dynamic",
 "thingGroupId": "b8f96cc3-f36b-4da2-b0f8-e28f5a123456",
 "indexName": "AWS_Things",
 "queryString": "attributes.firmware:1",
 "queryVersion": "2017-09-30"
}

2.    DescribeThingGroup 명령을 실행하여 다음과 같이 동적 사물 그룹이 ACTIVE 상태인지 확인합니다.

aws iot describe-thing-group --thing-group-name "logging_level_debug_dynamic"

참고: 위 예시에서 logging_level_debug_dynamic을 귀하의 사물 그룹 이름으로 바꾸세요.

출력은 다음 메시지와 비슷하게 나타납니다.

{
 "thingGroupName": "logging_level_debug_dynamic",
 "thingGroupId": "b8f96cc3-f36b-4da2-b0f8-e28f5a123456",
 "thingGroupArn": "arn:aws:iot:eu-west-1:123456789012:thinggroup/logging_level_debug_dynamic",
 "version": 1,
 "thingGroupProperties": {},
 "thingGroupMetadata": {
 "creationDate": "2022-11-30T12:37:19.980000+00:00"
 },
 "indexName": "AWS_Things",
 "queryString": "attributes.firmware:1",
 "queryVersion": "2017-09-30",
 "status": "ACTIVE"
}

3.    SetV2LoggingLevel 명령을 실행하여 해당 리소스에 대한 로깅 수준을 설정합니다. 로깅 수준 설정을 완료하는 데 최대 십 분이 걸릴 수 있습니다.

aws iot set-v2-logging-level \
 --log-target targetType=THING_GROUP,targetName=logging_level_debug_dynamic \
 --log-level DEBUG

참고: 위 예시에서 logging_level_debug_dynamic을 귀하의 동적 사물 그룹 이름으로 바꾸세요.

출력은 다음 메시지와 비슷합니다. 기본 로깅은 출력에 포함되며 구성에 따른 세부 정보를 포함합니다. 구성한 다른 로깅 수준도 표시됩니다.

{
"logTargetConfigurations": [{
"logTarget": {
"targetType": "DEFAULT"
},
"logLevel": "WARN"
},
{
"logTarget": {
"targetType": "THING_GROUP",
"targetName": "
logging_level_debug_dynamic "
},
"logLevel": "DEBUG"
}
]
}

생성된 로그 모니터링

이슈 또는 문제에 대해 IoT 로그를 모니터링하는 것이 가장 좋습니다. Amazon CloudWatch Logs 콘솔 또는 AWS CLI를 사용하여 AWS IoT Core 로그를 모니터링할 수 있습니다. 자세한 내용은 AWS IoT Core에서 AWS IoT 로그의 로깅 수준을 가장 잘 관리하려면 어떻게 해야 할까요?의 ‘로그 항목 모니터링’ 섹션을 참조하세요.

관련 정보

AWS IoT Device Management 요금

AWS IoT Core의 기본 로깅 설정을 구성하려면 어떻게 해야 할까요?

AWS IoT Core에서 특정 리소스의 로깅 수준을 수동으로 구성하려면 어떻게 해야 할까요?

AWS 공식
AWS 공식업데이트됨 일 년 전