AWS IoT Greengrass 로그를 사용하여 모니터링 - AWS IoT Greengrass

다음에 대한 설명서를 보고 있습니다.AWS IoT Greengrass Version 1.AWS IoT Greengrass Version 2의 최신 주요 버전입니다AWS IoT Greengrass. 사용에 관한 자세한 내용은 단원을 참조하십시오.AWS IoT Greengrass V2에 대한 자세한 내용은AWS IoT Greengrass Version 2개발자 안내서.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS IoT Greengrass 로그를 사용하여 모니터링

AWS IoT Greengrass은(는) 클라우드 서비스와 AWS IoT Greengrass 코어 소프트웨어로 구성됩니다. 이AWS IoT Greengrass코어 소프트웨어는 및 코어 디바이스의 로컬 파일 시스템에 로그를 기록할 수 있습니다. 코어에서 실행 중인 Lambda 함수와 커넥터도 CloudWatch Logs 및 로컬 파일 시스템에 로그를 기록할 수 있습니다. 로그를 사용하여 이벤트를 모니터링하고 문제를 해결할 수 있습니다. 모든 AWS IoT Greengrass 로그 항목에는 타임스탬프, 로그 수준 및 이벤트에 대한 정보가 포함됩니다. 로깅 설정에 대한 변경 사항은 그룹을 배포한 후에 적용됩니다.

로깅은 그룹 수준에서 구성됩니다. Greengrass 그룹에 대한 로깅을 구성하는 방법을 보여주는 단계는 AWS IoT Greengrass의 로깅 구성 단원을 참조하십시오.

CloudWatch Logs 액세스

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 Logs 사용 시 다음 사항을 고려하십시오.

  • 인터넷 연결이 없을 경우 재시도 수가 제한된 상태에서 CloudWatch Logs로 로그가 전송됩니다. 재시도 횟수가 모두 사용된 후에는 이벤트가 삭제됩니다.

  • 트랜잭션, 메모리 및 기타 제한이 적용됩니다. 자세한 내용은 로깅 제한 섹션을 참조하세요.

  • Greengrass 그룹 역할은AWS IoT Greengrass을 클릭하여 CloudWatch Logs로 기록 권한을 부여하려면 그룹 역할에 다음 인라인 정책을 포함시킵니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
    참고

    로그 리소스에보다 세분화된 액세스 권한을 부여할 수 있습니다. 자세한 내용은 단원을 참조하십시오.CloudWatch Logs s의 자격 증명 기반 정책 (IAM 정책) 사용Amazon CloudWatch 사용 설명서.

    그룹 역할은 사용자가 생성하고 Greengrass 그룹에 연결하는 IAM 역할입니다. 콘솔이나 AWS IoT Greengrass API를 사용하여 그룹 역할을 관리할 수 있습니다.

     

    콘솔 사용
    1. 에서AWS IoT콘솔의 탐색 창에서Greengrass,클래식 (V1),그룹.

    2. 대상 그룹을 선택합니다.

    3. [Settings]를 선택합니다. 그룹 역할에서 그룹 역할을 보거나 연결하거나 제거할 수 있습니다.

      그룹 역할을 연결하는 방법을 보여주는 단계는 그룹 역할을 참조하십시오.

     

    CLI 사용

     

    이러한 명령과 함께 사용할 그룹 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 Logs s에는 기록되지 않습니다.

  • 디스크 사용 제한이 적용됩니다. 자세한 내용은 로깅 제한 섹션을 참조하세요.

참고

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 GreengrassAPI를 구성하려면AWS IoT Greengrass로깅을 실행합니다.

참고

허용하려면AWS IoT Greengrass를 사용하여 CloudWatch Logs에게 로그를 기록할 경우 그룹 역할은필요한 CloudWatch Logs 작업.

로깅 구성(콘솔)

그룹의 설정 페이지에서 로깅을 구성할 수 있습니다.

  1. 에서AWS IoT콘솔의 탐색 창에서Greengrass,클래식 (V1),그룹.

  2. 로깅을 구성하려는 그룹을 선택합니다.

  3. 그룹 구성 페이지에서 설정을 선택합니다.

  4. 다음과 같이 로깅 위치를 선택합니다.

    • CloudWatch 로깅을 구성하려면CloudWatch 로그를 선택하고Edit.

    • 파일 시스템 로깅을 구성하려면 로컬 로그 구성에서 편집을 선택합니다.

    한 위치 또는 두 위치 모두에 대한 로깅을 구성할 수 있습니다.

  5. 그룹 로깅 구성 페이지에서 다른 로그 유형 추가를 선택합니다.

  6. 다음과 같이 이벤트 소스를 선택합니다.

    • 사용자 정의 Lambda 함수에서 이벤트를 로깅하려면사용자 Lambda.

    • AWS IoT Greengrass 시스템 구성 요소에서 이벤트를 로깅하려면 Greengrass 시스템을 선택합니다.

    한 구성 요소 또는 두 구성 요소를 모두 선택할 수 있습니다.

  7. [Update]를 선택합니다.

  8. 로깅하려는 최저 수준의 이벤트를 선택합니다. 이 임계값보다 낮은 이벤트는 필터링되어 저장되지 않습니다.

  9. 파일 시스템 로그에 대해 디스크 공간 한도를 지정합니다.

  10. 저장을 선택합니다. 변경 사항은 그룹을 배포한 후에 적용됩니다.

로깅 구성(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

로그 이벤트의 스토리지 메커니즘입니다. 일시AWSCloudWatch이 (가) 사용되면 로그 이벤트가 CloudWatch Logs로 전송됩니다. FileSystem이 사용되면 로그 이벤트는 로컬 파일 시스템에 저장됩니다.

유효한 값: AWSCloudWatch, FileSystem

Component

로그 이벤트의 원본입니다. GreengrassSystem이 사용되면 Greengrass 시스템 구성 요소의 이벤트가 로깅됩니다. Lambda가 사용되면 사용자 정의 Lambda 함수의 이벤트가 로깅됩니다.

유효한 값: GreengrassSystem, Lambda

Level

로그 수준 임계값입니다. 이 임계값보다 낮은 로그 이벤트는 필터링되어 저장되지 않습니다.

유효한 값: DEBUG, INFO(권장), WARN, ERROR, FATAL

Space

로그를 저장하는 데 사용할 로컬 스토리지의 최대 용량(단위: KB)입니다. 이 필드는 TypeFileSystem으로 설정된 경우에만 적용됩니다.

구성 예

다음 LoggerDefinitionVersion 예제는 다음과 같은 작업을 수행하는 로깅 구성을 지정합니다.

  • 파일 시스템 활성화ERROR및 그 이상AWS IoT Greengrass시스템 구성 요소.

  • 파일 시스템 활성화INFO(및 그 이상) 로깅을 Lambda 수 있습니다.

  • CloudWatch 활성화INFO(및 그 이상) 로깅을 Lambda 수 있습니다.

{ "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 로깅을 활성화하면 로깅 구성 요소는 로그 이벤트를 CloudWatch (CloudWatch) 에 전송하기 전에 로컬에서 일괄 처리하기 때문에 로그 스트림당 초당 5건의 요청보다 빠른 속도로 로깅할 수 있습니다.

Memory

다음의 경우,AWS IoT Greengrass가 CloudWatch Lambda 함수가 장시간에 걸쳐 5MB/초 이상의 로그를 전송하도록 구성되어 있으며, 결국 내부 처리 파이프라인이 가득 차게 됩니다. 이론상 최악의 경우는 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 함수가 종료되면 (예를 들면, 배포 중에 종료될 경우) 에 몇 초 분량의 로그가 기록되지 않습니다.

CloudTrail 로그

AWS IoT Greengrass와 함께 실행AWS CloudTrail은 사용자, 역할 또는AWS의 서비스AWS IoT Greengrass. 자세한 내용은 AWS CloudTrail를 사용하여 AWS IoT Greengrass API 호출 로깅 단원을 참조하세요.