AWS IoT Greengrass Version 1 는 2023년 6월 30일에 수명 연장 단계에 들어갔습니다. AWS IoT Greengrass V1 관리형 정책에 대한 자세한 정보는 섹션을 참조하세요. 이 날짜 이후에는 기능, 개선 사항, 버그 수정 또는 보안 패치를 제공하는 업데이트를 릴리스하지 AWS IoT Greengrass V1 않습니다. 에서 실행되는 디바이스는 중단 AWS IoT Greengrass V1 되지 않고 계속 작동하며 클라우드에 연결됩니다. 로 마이그레이션 AWS IoT Greengrass Version 2하는 것이 좋습니다. 이 마이그레이션하면 추가 플랫폼 에 대한 중요한 새 기능과 지원이 추가됩니다. https://docs.aws.amazon.com/greengrass/v2/developerguide/operating-system-feature-support-matrix.html
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS IoT Greengrass 로그를 사용하여 모니터링
AWS IoT Greengrass은(는) 클라우드 서비스와 AWS IoT Greengrass 코어 소프트웨어로 구성됩니다. AWS IoT GreengrassCore 소프트웨어는 Amazon CloudWatch 및 코어 디바이스의 로컬 파일 시스템에 로그를 기록할 수 있습니다. 코어에서 실행되는 Lambda 함수 및 커넥터는 로그 및 로컬 파일 시스템에 로그를 CloudWatch 기록할 수도 있습니다. 로그를 사용하여 이벤트를 모니터링하고 문제를 해결할 수 있습니다. 모든 AWS IoT Greengrass 로그 항목에는 타임스탬프, 로그 수준 및 이벤트에 대한 정보가 포함됩니다. 로깅 설정에 대한 변경 사항은 그룹을 배포한 후에 적용됩니다.
로깅은 그룹 수준에서 구성됩니다. Greengrass 그룹에 대한 로깅을 구성하는 방법을 보여주는 단계는 AWS IoT Greengrass의 로깅 구성 단원을 참조하십시오.
로그 액세스 CloudWatch
CloudWatch 로깅을 구성하면 Amazon CloudWatch 콘솔의 로그 페이지에서 로그를 볼 수 있습니다. AWS IoT Greengrass 로그의 로그 그룹은 다음과 같은 이름 지정 규칙을 사용합니다.
/aws/greengrass/GreengrassSystem/greengrass-system-component-name
/aws/greengrass/Lambda/aws-region
/account-id
/lambda-function-name
각 로그 그룹에는 다음 명명 규칙을 사용하는 로그 스트림이 포함되어 있습니다.
date
/account-id
/greengrass-group-id
/name-of-core-that-generated-log
CloudWatch 로그를 사용할 때는 다음 고려 사항이 적용됩니다.
-
인터넷에 연결할 수 없는 경우 제한된 횟수의 재시도 횟수로 CloudWatch 로그가 Logs로 전송됩니다. 재시도 횟수가 모두 사용된 후에는 이벤트가 삭제됩니다.
-
트랜잭션, 메모리 및 기타 제한이 적용됩니다. 자세한 설명은 로깅 제한 섹션을 참조하세요.
-
Greengrass 그룹 역할은 AWS IoT Greengrass 로그에 쓸 수 있도록 허용해야 합니다. CloudWatch 권한을 부여하려면 그룹 역할에 다음 인라인 정책을 포함시킵니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
참고
로그 리소스에보다 세분화된 액세스 권한을 부여할 수 있습니다. 자세한 내용은 Amazon CloudWatch 사용 설명서의 CloudWatch 로그에 대한 ID 기반 정책 (IAM 정책) 사용을 참조하십시오.
그룹 역할은 사용자가 생성하고 Greengrass 그룹에 연결하는 IAM 역할입니다. 콘솔이나 AWS IoT Greengrass API를 사용하여 그룹 역할을 관리할 수 있습니다.
- 콘솔 사용
-
AWS IoT 콘솔 탐색 창의 관리에서 Greengrass 디바이스를 확장한 다음 그룹(V1)을 선택합니다.
대상 그룹을 선택합니다.
-
보기 설정을 선택합니다. 그룹 역할에서 그룹 역할을 보거나, 연결하거나, 연결을 끊을 수 있습니다.
그룹 역할을 연결하는 방법을 보여주는 단계는 그룹 역할을 참조하십시오.
- CLI 사용
-
-
그룹 역할을 찾으려면 명령을 사용하십시오. get-associated-role
-
그룹 역할을 연결하려면 associate-role-to-group명령을 사용합니다.
-
그룹 역할을 제거하려면 disassociate-role-from-group명령을 사용합니다.
이러한 명령과 함께 사용할 그룹 ID를 가져오는 방법은 그룹 ID 가져오기 단원을 참조하십시오.
-
파일 시스템 로그 액세스
파일 시스템 로깅을 구성하면 로그 파일이 코어 디바이스에
아래 저장됩니다. 다음은 상위 디렉터리 구조입니다.greengrass-root
/ggc/var/log
greengrass-root
/ggc/var/log
- crash.log
- system
- log files for each Greengrass system component
- user
- region
- account-id
- log files generated by each user-defined Lambda function
- aws
- log files generated by each connector
참고
기본적으로 greengrass-root
는 /greengrass
디렉터리입니다. 쓰기 디렉터리가 구성되어 있는 경우에는 로그가 이 디렉터리 아래 있습니다.
파일 시스템 로그 사용 시 다음 사항을 고려하십시오.
-
파일 시스템에서 AWS IoT Greengrass 로그를 읽으려면 루트 권한이 필요합니다.
-
AWS IoT Greengrass은(는) 로그 데이터의 양이 구성 한도에 근접할 때 크기 기반의 교체 및 자동 정리를 지원합니다.
-
crash.log
파일은 파일 시스템 로그에서만 사용할 수 있습니다. 이 로그는 CloudWatch 로그에 기록되지 않습니다. -
디스크 사용 제한이 적용됩니다. 자세한 설명은 로깅 제한 섹션을 참조하세요.
참고
AWS IoT Greengrass 코어 소프트웨어 v1.0에 대한 로그는
디렉터리 아래에 저장됩니다.greengrass-root
/var/log
기본 로깅 구성
로깅 설정이 명시적으로 구성되어 있지 않으면 AWS IoT Greengrass은(는) 첫 번째 그룹 배포 후 다음과 같은 기본 로깅 구성을 사용합니다.
- AWS IoT Greengrass 시스템 구성 요소
-
-
Type -
FileSystem
-
구성 요소 -
GreengrassSystem
-
Level -
INFO
-
공간 -
128 KB
-
- 사용자 정의 Lambda 함수
-
-
Type -
FileSystem
-
구성 요소 -
Lambda
-
Level -
INFO
-
공간 -
128 KB
-
참고
첫 번째 배포 전에는 배포된 사용자 정의 Lambda 함수가 없기 때문에 시스템 구성 요소 쓰기만 파일 시스템에 로깅됩니다.
AWS IoT Greengrass의 로깅 구성
AWS IoT 또는 AWS IoT Greengrass API를 사용하여 AWS IoT Greengrass 로깅을 구성할 수 있습니다.
참고
AWS IoT Greengrass로그에 로그를 쓸 수 CloudWatch 있으려면 그룹 역할이 필요한 CloudWatch 로그 작업을 허용해야 합니다.
로깅 구성(콘솔)
그룹의 설정 페이지에서 로깅을 구성할 수 있습니다.
AWS IoT 콘솔 탐색 창의 관리에서 Greengrass 디바이스를 확장한 다음 그룹(V1)을 선택합니다.
-
로깅을 구성하려는 그룹을 선택합니다.
-
그룹 구성 페이지에서 로그를 선택합니다.
-
다음과 같이 로깅 위치를 선택합니다.
-
CloudWatch 로깅을 구성하려면 CloudWatch 로그 구성에서 편집을 선택합니다.
-
파일 시스템 로깅을 구성하려면 로컬 로그 구성에서 편집을 선택합니다.
한 위치 또는 두 위치 모두에 대한 로깅을 구성할 수 있습니다.
-
-
로그 편집 구성 모달에서 Greengrass 시스템 로그 수준 또는 사용자 Lambda 함수 로그 수준을 선택합니다. 한 구성 요소 또는 두 구성 요소를 모두 선택할 수 있습니다.
-
로깅하려는 최저 수준의 이벤트를 선택합니다. 이 임계값보다 낮은 이벤트는 필터링되어 저장되지 않습니다.
-
저장을 선택합니다. 변경 사항은 그룹을 배포한 후에 적용됩니다.
로깅 구성(API)
AWS IoT Greengrass 로거 API를 사용하여 프로그래밍 방식으로 로깅을 구성할 수 있습니다. 예를 들어, CreateLoggerDefinition
작업을 사용하여 다음 구문을 사용하는 LoggerDefinitionVersion
페이로드를 기반으로 로거 정의를 생성합니다.
{ "Loggers": [ { "Id": "string", "Type": "FileSystem|AWSCloudWatch", "Component": "GreengrassSystem|Lambda", "Level": "DEBUG|INFO|WARN|ERROR|FATAL", "Space": "integer" }, { "Id": "string", ... } ] }
LoggerDefinitionVersion
은 다음 속성이 있는 하나 이상의 Logger
객체 배열입니다.
Id
-
로거의 식별자입니다.
Type
-
로그 이벤트의 스토리지 메커니즘입니다. 를 사용하면 로그 이벤트가 CloudWatch Logs로 전송됩니다.
AWSCloudWatch
FileSystem
이 사용되면 로그 이벤트는 로컬 파일 시스템에 저장됩니다.유효값:
AWSCloudWatch
,FileSystem
Component
-
로그 이벤트의 원본입니다.
GreengrassSystem
이 사용되면 Greengrass 시스템 구성 요소의 이벤트가 로깅됩니다.Lambda
가 사용되면 사용자 정의 Lambda 함수의 이벤트가 로깅됩니다.유효값:
GreengrassSystem
,Lambda
Level
-
로그 수준 임계값입니다. 이 임계값보다 낮은 로그 이벤트는 필터링되어 저장되지 않습니다.
유효한 값:
DEBUG
,INFO
(권장),WARN
,ERROR
,FATAL
Space
-
로그를 저장하는 데 사용할 로컬 스토리지의 최대 용량(단위: KB)입니다. 이 필드는
Type
이FileSystem
으로 설정된 경우에만 적용됩니다.
구성 예
다음 LoggerDefinitionVersion
예제는 다음과 같은 작업을 수행하는 로깅 구성을 지정합니다.
-
AWS IoT Greengrass 시스템 구성 요소에 대한 파일 시스템
ERROR
및 그 이상 로깅을 켭니다. -
사용자 정의 Lambda 함수에 대한 파일 시스템
INFO
및 그 이상 로깅을 켭니다. -
사용자 정의 Lambda 함수에 대한 CloudWatch
INFO
(또는 그 이상) 로깅을 활성화합니다.
{ "Name": "LoggingExample", "InitialVersion": { "Loggers": [ { "Id": "1", "Component": "GreengrassSystem", "Level": "ERROR", "Space": 10240, "Type": "FileSystem" }, { "Id": "2", "Component": "Lambda", "Level": "INFO", "Space": 10240, "Type": "FileSystem" }, { "Id": "3", "Component": "Lambda", "Level": "INFO", "Type": "AWSCloudWatch" } ] } }
로거 정의 버전을 생성한 후에는 그룹을 배포하기 전에 해당 버전 ARN을 사용하여 그룹 버전을 생성할 수 있습니다.
로깅 제한
AWS IoT Greengrass에는 다음과 같은 로깅 제한이 있습니다.
초당 트랜잭션 수
CloudWatch 로깅이 활성화되면 로깅 구성 요소가 이벤트를 전송하기 전에 로컬로 이벤트를 일괄 처리하므로 로그 스트림당 초당 5개 이상의 요청 속도로 로깅할 수 있습니다. CloudWatch
메모리
Lambda 함수가 로그를 전송하도록 구성되어 CloudWatch 있고 Lambda 함수가 초당 5MB를 초과하여 장기간 로깅하는 경우 AWS IoT Greengrass 내부 처리 파이프라인이 결국 꽉 차게 됩니다. 이론상 최악의 경우는 Lambda 함수 1개당 6MB입니다.
클록 스큐
CloudWatch 로깅이 활성화되면 로깅 구성 요소는 일반 서명 버전 4 서명 프로세스를 CloudWatch 사용하여 요청에 서명합니다. AWS IoT Greengrass 코어 디바이스에서 시스템 시간이 15분 이상 동기화되지 않을 경우, 해당 요청은 거부됩니다.
디스크 사용량
다음 공식을 사용하면 로깅 시 총 디스크 사용량의 최대값을 계산할 수 있습니다.
greengrass-system-component-space
* 8 // 7 if automatic IP detection is disabled
+ 128KB // the internal log for the local logging component
+ lambda-space
* lambda-count
// different versions of a Lambda function are treated as one
위치:
greengrass-system-component-space
-
AWS IoT Greengrass 시스템 구성 요소 로그를 저장할 로컬 스토리지의 최대 용량입니다.
lambda-space
-
Lambda 함수 로그를 저장할 로컬 스토리지의 최대 용량입니다.
lambda-count
-
배포된 Lambda 함수의 수입니다.
로그 손실
AWS IoT Greengrass코어 디바이스가 로그인만 하도록 CloudWatch 구성되어 있고 인터넷에 연결되어 있지 않으면 현재 메모리에 있는 로그를 검색할 방법이 없습니다.
Lambda 함수가 종료되면 (예: 배포 중) 몇 초 분량의 로그가 기록되지 않습니다. CloudWatch
CloudTrail 로그
AWS IoT Greengrass는 AWS IoT Greengrass에서 사용자, 역할, 또는 AWS 서비스가 수행한 작업에 대한 레코드를 제공하는 서비스인 AWS CloudTrail와 함께 실행됩니다. 자세한 내용은 AWS CloudTrail을 사용하여 AWS IoT Greengrass API 직접 호출 로깅을(를) 참조하세요.