

지원 종료 공지: 2026년 10월 7일에는에 대한 지원을 중단할 AWS 예정입니다 AWS IoT Greengrass Version 1. 2026년 10월 7일 이후에는 더 이상 AWS IoT Greengrass V1 리소스에 액세스할 수 없습니다. 자세한 내용은 [에서 마이그레이션 AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)을 참조하세요.

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

# AWS IoT Greengrass 로그를 사용한 모니터링
<a name="greengrass-logs-overview"></a>

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

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

## CloudWatch Logs 액세스
<a name="gg-logs-cloudwatch"></a>

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에 전송됩니다. 재시도 횟수가 모두 사용된 후에는 이벤트가 삭제됩니다.
+ 트랜잭션, 메모리 및 기타 제한이 적용됩니다. 자세한 내용은 [로깅 제한](#gg-log-limits) 단원을 참조하십시오.
+ <a name="gg-logs-cloudwatch-perms"></a>Greengrass 그룹 역할은 AWS IoT Greengrass 가 CloudWatch Logs에 쓸 수 있도록 허용해야 합니다. 권한을 부여하려면 그룹 역할에 [다음 인라인 정책을 포함](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#embed-inline-policy-console)시킵니다.

------
#### [ JSON ]

****  

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

------
**참고**  
로그 리소스에보다 세분화된 액세스 권한을 부여할 수 있습니다. 자세한 내용은 *Amazon CloudWatch 사용 설명서*의 [CloudWatch Logs에 대한 자격 증명 기반 정책(IAM 정책) 사용](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/iam-identity-based-access-control-cwl.html)을 참조하십시오.

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

     
**콘솔 사용**  

  1. <a name="console-gg-groups"></a> AWS IoT 콘솔 탐색 창의 **관리**에서 **Greengrass 디바이스**를 확장한 다음 **그룹(V1)을** 선택합니다.

  1. <a name="group-choose-target-group"></a>대상 그룹을 선택합니다.

  1. **보기 설정**을 선택합니다. **그룹 역할**에서 그룹 역할을 보거나, 연결하거나, 연결을 끊을 수 있습니다.

     그룹 역할을 연결하는 방법을 보여주는 단계는 [그룹 역할](group-role.md)을 참조하십시오.
   
**CLI 사용**  
  + 그룹 역할을 찾으려면 [get-associated-role](https://docs.aws.amazon.com/cli/latest/reference/greengrass/get-associated-role.html) 명령을 사용합니다.
  + 그룹 역할을 연결하려면 [associate-role-to-group](https://docs.aws.amazon.com/cli/latest/reference/greengrass/associate-role-to-group.html) 명령을 사용합니다.
  + 그룹 역할을 제거하려면 [disassociate-role-from-group](https://docs.aws.amazon.com/cli/latest/reference/greengrass/disassociate-role-from-group.html) 명령을 사용합니다.
   
이러한 명령과 함께 사용할 그룹 ID를 가져오는 방법은 [그룹 ID 가져오기](deployments.md#api-get-group-id) 단원을 참조하십시오.

## 파일 시스템 로그 액세스
<a name="gg-logs-local"></a>

파일 시스템 로깅을 구성하면 로그 파일이 코어 장치에 `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` 디렉터리입니다. [쓰기 디렉터리](gg-core.md#write-directory)가 구성되어 있는 경우에는 로그가 이 디렉터리 아래 있습니다.

파일 시스템 로그 사용 시 다음 사항을 고려하십시오.
+ 파일 시스템에서 AWS IoT Greengrass 로그를 읽으려면 루트 권한이 필요합니다.
+ AWS IoT Greengrass 는 로그 데이터의 양이 구성된 제한에 가까울 때 크기 기반 교체 및 자동 정리를 지원합니다.
+ `crash.log` 파일은 파일 시스템 로그에서만 사용할 수 있습니다. 이 로그는 CloudWatch Logs에 기록되지 않습니다.
+ 디스크 사용 제한이 적용됩니다. 자세한 내용은 [로깅 제한](#gg-log-limits) 단원을 참조하십시오.

**참고**  
 AWS IoT Greengrass 코어 소프트웨어 v1.0에 대한 로그는 `greengrass-root/var/log` 디렉터리 아래에 저장됩니다.

## 기본 로깅 구성
<a name="config-logs-default"></a>

로깅 설정이 명시적으로 구성되지 않은 경우 첫 번째 그룹 배포 후 다음 기본 로깅 구성을 AWS IoT Greengrass 사용합니다.

AWS IoT Greengrass 시스템 구성 요소  
+ 유형 - `FileSystem`
+ 구성 요소 - `GreengrassSystem`
+ Level - `INFO`
+ 공간 - `128 KB`

사용자 정의 Lambda 함수  
+ 유형 - `FileSystem`
+ 구성 요소 - `Lambda`
+ Level - `INFO`
+ 공간 - `128 KB`

**참고**  
첫 번째 배포 전에는 배포된 사용자 정의 Lambda 함수가 없기 때문에 시스템 구성 요소 쓰기만 파일 시스템에 로깅됩니다.

## 에 대한 로깅 구성 AWS IoT Greengrass
<a name="config-logs"></a>

 AWS IoT 콘솔 또는 [AWS IoT Greengrass APIs](#config-logs-api)을 구성할 수 있습니다. AWS IoT Greengrass 

**참고**  
 AWS IoT Greengrass 가 CloudWatch Logs에 로그를 쓰도록 허용하려면 그룹 역할이 [필요한 CloudWatch Logs 작업을](#gg-logs-cloudwatch-perms) 허용해야 합니다.

### 로깅 구성(콘솔)
<a name="config-logs-console"></a>

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

1. <a name="console-gg-groups"></a> AWS IoT 콘솔 탐색 창의 **관리**에서 **Greengrass 디바이스**를 확장한 다음 **그룹(V1)을** 선택합니다.

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

1. 그룹 구성 페이지에서 **로그**를 선택합니다.

1. 다음과 같이 로깅 위치를 선택합니다.
   + CloudWatch logging을 구성하려면 **CloudWatch 로그 구성에서** **편집**을 선택합니다.
   + 파일 시스템 로깅을 구성하려면 **로컬 로그 구성**에서 **편집**을 선택합니다.

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

1. 로그 편집 구성 모달에서 **Greengrass 시스템 로그 수준** 또는 **사용자 Lambda 함수 로그 수준**을 선택합니다. 한 구성 요소 또는 두 구성 요소를 모두 선택할 수 있습니다.

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

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

### 로깅 구성(API)
<a name="config-logs-api"></a>

 AWS IoT Greengrass 로거 APIs 사용하여 프로그래밍 방식으로 로깅을 구성할 수 있습니다. 예를 들어, [https://docs.aws.amazon.com/greengrass/v1/apireference/createloggerdefinition-post.html](https://docs.aws.amazon.com/greengrass/v1/apireference/createloggerdefinition-post.html) 작업을 사용하여 다음 구문을 사용하는 [https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-loggerdefinitionversion.html](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-loggerdefinitionversion.html) 페이로드를 기반으로 로거 정의를 생성합니다.

```
{
  "Loggers": [
    {
      "Id": "string",
      "Type": "FileSystem|AWSCloudWatch",
      "Component": "GreengrassSystem|Lambda",
      "Level": "DEBUG|INFO|WARN|ERROR|FATAL",
      "Space": "integer"
    },
    {
      "Id": "string",
      ...
    }
  ]
}
```

`LoggerDefinitionVersion`은 다음 속성이 있는 하나 이상의 [https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-logger.html](https://docs.aws.amazon.com/greengrass/v1/apireference/definitions-logger.html) 객체 배열입니다.

`Id`  
로거의 식별자입니다.

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

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

`Level`  
로그 수준 임계값입니다. 이 임계값보다 낮은 로그 이벤트는 필터링되어 저장되지 않습니다.  
유효한 값: `DEBUG`, `INFO`(권장), `WARN`, `ERROR`, `FATAL` 

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

### 구성 예
<a name="config-logs-examples"></a>

다음 `LoggerDefinitionVersion` 예제는 다음과 같은 작업을 수행하는 로깅 구성을 지정합니다.
+ 시스템 구성 요소에 대한 파일 AWS IoT Greengrass 시스템 `ERROR` 이상 로깅을 켭니다.
+ 사용자 정의 Lambda 함수에 대한 파일 시스템 `INFO` 및 그 이상 로깅을 켭니다.
+ 사용자 정의 Lambda 함수에 대한 `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"
      }
    ]
  }
}
```

로거 정의 버전을 생성한 후에는 [그룹을 배포](deployments.md)하기 전에 해당 버전 ARN을 사용하여 그룹 버전을 생성할 수 있습니다.

## 로깅 제한
<a name="gg-log-limits"></a>

AWS IoT Greengrass 에는 다음과 같은 로깅 제한 사항이 있습니다.

### 초당 트랜잭션 수
<a name="gg-log-limit-tps"></a>

CloudWatch에 로깅할 때 로깅 구성 요소는 로그 이벤트를 CloudWatch(으)로 전송하기 전에 로컬에서 일괄 처리하기 때문에 로그 스트림당 초당 5건의 요청보다 빠른 속도로 로깅할 수 있습니다.

### Memory
<a name="gg-log-limit-mem"></a>



 AWS IoT Greengrass 가 CloudWatch로 로그를 전송하도록 구성되어 있고 Lambda 함수 로그가 장기간 초당 5MB를 초과하는 경우 내부 처리 파이프라인이 결국 채워집니다. 이론상 최악의 경우는 Lambda 함수 1개당 6MB입니다.

### 클록 스큐
<a name="gg-log-limit-skew"></a>

CloudWatch에 대한 로깅이 활성화되면 로깅 구성 요소는 일반 서명 버전 4 서명 프로세스를 사용하여 CloudWatc에 대한 요청에 서명합니다. AWS IoT Greengrass 코어 장치에서 시스템 시간이 [15분](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html) 이상 동기화되지 않을 경우, 해당 요청은 거부됩니다.

### 디스크 사용량
<a name="gg-log-limit-disk"></a>

다음 공식을 사용하면 로깅 시 총 디스크 사용량의 최대값을 계산할 수 있습니다.

```
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 함수의 수입니다.

### 로그 손실
<a name="gg-log-loss"></a>

 AWS IoT Greengrass 코어 디바이스가 CloudWatch에만 로깅하도록 구성되어 있고 인터넷 연결이 없는 경우 현재 메모리에 있는 로그를 검색할 방법이 없습니다.

Lambda 함수가 종료되면(예를 들면, 배포 중에 종료될 경우) 에 몇 초 분량의 로그가 기록되지 않습니다.

## CloudTrail 로그
<a name="cloudtrail-integration"></a>

AWS IoT Greengrass 는 사용자 AWS CloudTrail, 역할 또는 서비스가 수행한 작업에 대한 레코드를 제공하는 AWS 서비스와 함께 실행됩니다 AWS IoT Greengrass. 자세한 내용은 [를 사용하여 AWS IoT Greengrass API 호출 로깅 AWS CloudTrail](logging-using-cloudtrail.md) 단원을 참조하십시오.