AWS IoT Core에서 AWS IoT 로그의 로그 수준을 관리하려면 어떻게 해야 합니까?

3분 분량
0

비용과 데이터 트래픽을 줄이기 위해 AWS IoT Core에서 AWS IoT 로그 수준을 구성할 때 모범 사례를 따르고 싶습니다.

간략한 설명

참고: 다음 해결 방법은 AWS IoT Core 로그 v2에만 해당됩니다.

가장 좋은 방법은 모니터링해야 하는 AWS IoT Core 리소스와 수준을 파악하는 것입니다. AWS IoT Core 리소스를 나눈 다음 각 세그먼트에 적절한 로그 수준을 할당합니다. 리소스에 대한 기본 로그 수준 또는 특정 로그 수준을 설정할 수 있습니다.

예를 들어, 기본 로깅을 덜 자세한 로그 수준(예: ERROR 또는 WARN)으로 구성합니다. 기본 로깅을 구성하면 리소스별 로깅이 구성되지 않은 모든 리소스에 구성이 적용됩니다. INFO 또는 DEBUG와 같은 더 자세한 수준을 가지려면 리소스별 로깅을 구성합니다. THING_GROUP, CLIENT_ID, SOURCE_IP, 또는 PRINCIPAL_ID와 같은 다양한 대상 유형에 대해 리소스 수준 로깅을 구성할 수 있습니다.

기본 로깅과 리소스별 로깅을 동시에 사용할 수 있습니다.

중요: AWS IoT Core 플릿 크기에 따라 로그 수준이 더 길수록 비용이 더 많이 발생하고 문제 해결이 더 어려워질 수 있습니다. 자세한 로그 수준이 높을수록 데이터 트래픽도 높아집니다. INFO 또는 DEBUG를 사용하여 일시적으로 문제를 해결하는 것이 가장 좋습니다. 문제를 해결한 후 로그 수준을 덜 자세한 수준으로 다시 설정합니다. 로그 수준에 대한 자세한 내용은 로그 수준을 참조하세요.

해결 방법

사전 요구 사항:

  • AWS IoT 관리자 권한 자격 증명을 사용하여 로컬 시스템에 AWS Command Line Interface(AWS CLI)를 설치했습니다. AWS CLI의 기본 AWS 리전은 대상 리전을 가리켜야 합니다.
  • 클라이언트가 AWS IoT Core에 등록되거나 등록되지 않은 AWS IoT 사물로 연결되어 있습니다.

참고: AWS Command Line Interface(AWS CLI) 명령 실행 시 오류가 발생하는 경우, AWS CLI 오류 문제 해결을 참고하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.

기본 로깅을 사용하여 비용 및 데이터 트래픽 절감

AWS IoT 로그의 기본 로그 수준을 ERROR 또는 WARN으로 설정하면 로그 오류 또는 경고를 검토할 수 있습니다. 이러한 자세한 정보 표시 수준은 비용과 데이터 트래픽을 줄여줍니다. 자세한 내용은 AWS IoT Core의 기본 로깅 설정을 구성하려면 어떻게 해야 할까요?를 참조하세요.

참고: AWS Support 사례를 생성하는 경우 AWS IoT Core 로그를 제공해야 합니다.

수동으로 리소스 기록

리소스를 수동으로 로깅하는 방법에 대한 자세한 내용은 AWS IoT Core에서 특정 리소스에 대한 로깅 수준을 수동으로 구성하려면 어떻게 해야 하나요?를 참조하세요.

동적으로 리소스 기록

리소스를 동적으로 로깅하는 방법에 대한 자세한 내용은 AWS IoT Core에서 특정 리소스에 대한 로깅 수준을 동적으로 구성하려면 어떻게 해야 하나요?를 참조하세요.

로그 항목 모니터링

Amazon CloudWatch 콘솔 또는 AWS CLI를 사용하여 AWS IoT 로그 항목을 모니터링합니다.

CloudWatch 콘솔

CloudWatch 콘솔에서 AWS IoT 로그를 모니터링하려면 CloudWatch 콘솔에서 AWS IoT 로그 보기를 참조하세요.

AWS CLI

AWS CLI에서 로그를 가져오려면 filter-log-events 명령을 실행합니다. YourStartTimeInMilliseconds를 시작 시간(밀리초)으로 바꿉니다.

aws logs filter-log-events --log-group-name AWSIotLogsV2 \
 --start-time YourStartTimeInMilliseconds

참고: --filter-pattern 을 사용하여 특정 로그 속성을 검색할 수 있습니다. 자세한 내용은 지표 필터, 구독 필터, 필터 로그 이벤트 및 Live Tail에 대한 필터 및 패턴 구문을 참조하세요.

logLevel 값은 대상에 대해 구성된 로그 수준입니다. 이 예에서 대상의 로그 수준은 INFO입니다.

{
 "timestamp": "2017-08-10 15:37:23.476",
 "logLevel": "INFO",
 "traceId": "20b23f3f-d7f1-feae-169f-82263394fbdb",
 "accountId": "123456789012",
 "status": "Success",
 "eventType": "Connect",
 "protocol": "MQTT",
 "clientId": "abf27092886e49a8a5c1922749736453",
 "principalId": "145179c40e2219e18a909d896a5340b74cf97a39641beec2fc3eeafc5a123456",
 "sourceIp": "123.123.123.123",
 "sourcePort": 13490
}

참고: CLIENT_ID는 MQTT 또는 MQTT over WSS 프로토콜을 사용하여 AWS IoT Core에 연결할 때만 사용할 수 있습니다. HTTPS 프로토콜은 클라이언트 ID를 지원하지 않습니다. 대신 SOURCE_IP 또는 PRINCIPAL_ID 대상 형식을 사용합니다.

로그 수준 편집 또는 삭제

기본 로그 수준과 리소스별 로그 수준은 언제든지 변경할 수 있습니다. 변경이 완료되는 데 최대 10분이 걸릴 수 있습니다.

delete-v2-logging-level AWS CLI 명령을 실행합니다. YourTargetName을 대상의 이름으로 바꿉니다.

aws iot delete-v2-logging-level \
 --target-type "THING_GROUP | CLIENT_ID | SOURCE_IP | PRINCIPAL_ID" \
 --target-name YourTargetName

관련 정보

AWS IoT Device Management 엔드포인트 및 할당량

AWS IoT 모니터링

AWS IoT Device Management 요금

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