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

4분 분량
0

AWS IoT Core에서 AWS IoT 로그의 기본 로깅 설정을 구성하여 비용과 데이터 트래픽을 모두 줄이고 싶습니다.

간략한 설명

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

AWS IoT Core의 기본 로깅을 낮은 상세도 수준으로 설정하고 리소스별 로깅을 더 높은 상세도 표시 수준으로 구성하는 것이 가장 좋습니다. 로그 상세도 수준에는 DISABLED(사용 안 함, 최저), ERROR(오류), WARN(경고), INFO(정보), DEBUG(디버그, 최고)가 포함됩니다.

**중요:**AWS IoT Core 플릿 크기에 따라 더 상세한 로그 수준을 설정하면 비용이 많이 들고 문제 해결이 더 어려워질 수 있습니다. 더 상세한 로그 수준을 설정하면 데이터 트래픽도 늘어납니다. 문제 해결 시 INFO 또는 DEBUG를 임시 조치로만 사용하는 것이 가장 좋습니다. 문제 해결이 완료되면 로깅 수준을 더 상세한 설정으로 재설정하세요.

​해결 방법

전제 조건

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

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

기본 로깅 수준 설정

AWS IoT 로그의 기본 로깅 수준을 ERROR 또는 WARN으로 설정하면 로그 오류 또는 경고가 발생할 때 이를 검토할 수 있습니다.

**참고:**AWS Support에 지원을 요청하는 경우 문제를 해결할 수 있도록 AWS IoT Core 로그를 제공해야 합니다. 이 정보는 고객 데이터로 간주되며 AWS Support에서 액세스할 수 없습니다.

  1. list-v2-logging-levels AWS CLI 명령을 실행하여 현재 적용된 로깅 수준 구성을 찾으세요.
aws iot list-v2-logging-levels

로깅 수준이 설정되지 않아 AWS IoT 로그가 구성되지 않은 경우 NotConfiguredException 오류가 발생합니다.

AWS IoT Core 로그가 구성되어 있지만 꺼져 있는 경우 다음과 비슷한 출력이 표시됩니다.

{
 "logTargetConfigurations": [
 {
 "logTarget": {
 "targetType": "DEFAULT"
 },
 "logLevel": "DISABLED"
 }
 ]
}
  1. 다음 명령을 실행하여 현재 AWS IoT Core 로그에 구성된 AWS Identity and Access Management(IAM) 역할을 확인합니다.
aws iot get-v2-logging-options

IAM 역할이 구성된 경우 다음과 비슷한 출력이 표시됩니다.

{
"roleArn": "arn:aws:iam::123456789012:role/service-role/iot-log-role",
"defaultLogLevel": "DISABLED",
"disableAllLogs": false
}

**참고:**구성된 IAM 역할이 없는 경우 AWS IoT Core는 Amazon CloudWatch로 로그를 전송할 수 없으며 이 기능을 사용할 수 없습니다.

  1. AWS IoT Core 기본 로깅을 ERROR 또는 WARN과 같이 덜 상세한 로깅 수준 중 하나로 설정합니다. 이는 AWS IoT 콘솔 또는 AWS CLI를 사용하여 수행할 수 있습니다.

**참고:**문제를 해결하고 있는데 특정 클라이언트 특성이 없는 경우 기본 로깅 수준을 임시로 DEBUG로 설정할 수 있습니다. 수준을 DEBUG로 설정하면 플릿 크기 및 이 수준에서 소요된 기간에 따라 상당한 비용과 데이터 트래픽이 발생합니다.

AWS IoT 콘솔

  1. AWS IoT 콘솔에 로그인합니다. **참고:**구성하려는 AWS 리전을 선택해야 합니다.

  2. 탐색 창에서 Settings(설정)을 선택합니다.

  3. Logs(로그)에서 Manage Logs(로그 관리)를 선택합니다.

  4. Log role(로그 역할)에서 Create Role(역할 생성)을 선택합니다. 역할 이름을 입력한 다음 Create(생성)을 선택합니다.

  5. Log level(로그 수준)에서 덜 상세한 로깅 수준(ERROR 또는 WARN) 중 하나를 선택합니다.

  6. Update(업데이트)를 선택합니다.

  7. IAM 콘솔을 엽니다.

  8. 탐색 창에서 Roles(역할)을 선택합니다.

  9. 검색 상자에 생성한 로그 역할의 이름을 입력한 다음 역할을 선택합니다.

  10. Summary(요약)에서 로그 역할의 ARN을 기록해 둡니다. arn:aws:iam::123456789012:role/service-role/iot-log-role과 비슷해 보일 것입니다.

AWS CLI

  1. AWS IoT Core 로그 서비스에 사용할 특정 IAM 정책으로 IAM 역할을 생성합니다.

  2. 다음 명령을 실행하여 기본 로깅 수준을 WARN으로 설정합니다.

aws iot set-v2-logging-options \
 --role-arn arn:aws:iam::123456789012:role/service-role/iot-log-role \
 --default-log-level WARN

**참고:**이 예시에서는 --role-arn을 생성한 IAM 역할의 ARN으로 대체합니다. ****WARN을 기본 수준으로 설정하려는 로깅 수준으로 바꾸세요.

  1. 다음 명령을 실행하여 변경 사항이 로깅 수준에 반영되는지 확인합니다.
aws iot list-v2-logging levels

출력은 다음 메시지와 비슷합니다.

{
 "logTargetConfigurations": [
 {
 "logTarget": {
 "targetType": "DEFAULT"
 },
 "logLevel": "WARN"
 }
 ]
}
  1. 다음 명령을 실행하여 변경 사항이 로깅 옵션에 반영되는지 확인합니다.
aws iot list-v2-logging-options

출력은 다음 메시지와 비슷합니다.

{
 "roleArn": "arn:aws:iam::123456789012:role/service-role/iot-log-role",
 "defaultLogLevel": "WARN",
 "disableAllLogs": false
}

생성된 로그 모니터링

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

관련 정보

AWS IoT 모니터링

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

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

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