

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

# 로그 전달
<a name="Log_Delivery"></a>

**참고**  
슬로우 로그는 Valkey 7.x 이상, 엔진 버전 6.0 이상을 사용하는 Redis OSS 클러스터 및 복제 그룹에 대해 지원됩니다.  
엔진 로그는 Valkey 7.x 이상, 엔진 버전 6.2 이상을 사용하는 Redis OSS 클러스터 및 복제 그룹에 대해 지원됩니다.

로그 전달을 통해 [SLOWLOG](https://valkey.io/commands/slowlog) 또는 **엔진 로그**를 다음 두 대상 중 하나로 스트리밍할 수 있습니다.
+ Amazon Data Firehose
+ Amazon CloudWatch Logs

ElastiCache API를 사용하여 클러스터를 생성하거나 수정할 때 로그 전달을 활성화하고 구성합니다. 각 로그 항목은 두 가지 형식(*JSON* 또는 *TEXT*) 중 하나로 지정된 대상에 전달됩니다.

고정된 수의 슬로우 로그 항목이 엔진에서 주기적으로 검색됩니다. 엔진 파라미터 `slowlog-max-len`에 지정된 값에 따라, 추가적인 슬로우 로그 항목이 대상에 전달되지 않을 수 있습니다.

AWS콘솔 또는 수정 APIs 중 하나인 [modify-cache-cluster](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-cache-cluster.html) 또는 modify-[modify-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-replication-group.html)을 사용하여 언제든지 전송 구성을 변경하거나 로그 전송을 비활성화하도록 선택할 수 있습니다.

모든 로그 전달 수정에서 `apply-immediately` 파라미터를 설정해야 합니다.

**참고**  
로그 전달을 활성화하면 Amazon CloudWatch Logs 요금이 적용되며, 이는 로그가 Amazon Data Firehose로 직접 전달되는 경우에도 마찬가지입니다. 자세한 내용은 [Amazon CloudWatch 요금](https://aws.amazon.com/cloudwatch/pricing/)의 판매된 로그 섹션을 참조하세요.

## 슬로우 로그 항목의 내용
<a name="Log_contents"></a>

슬로우 로그에는 다음 정보가 포함됩니다.
+ **CacheClusterId** – 클러스터의 ID입니다.
+ **CacheNodeId** – 캐시 노드의 ID입니다.
+ **Id** - 모든 슬로우 로그 항목에 대한 고유한 프로그레시브 식별자입니다.
+ **Timestamp** – 로그에 기록된 명령이 처리된 시간의 Unix 타임스탬프입니다.
+ **Duration** – 실행에 걸린 시간(마이크로초)입니다.
+ **Command** – 클라이언트에서 사용된 명령입니다. 예를 들어 `set foo bar`에서 `foo`는 키이고 `bar`가 값입니다. ElastiCache는 실제 키 이름과 값을 `(2 more arguments)`로 바꿔 민감한 데이터가 노출되는 것을 방지합니다.
+ **ClientAddress** – 클라이언트 IP 주소 및 포트입니다.
+ **ClientName** – `CLIENT SETNAME` 명령을 통해 설정된 경우 클라이언트 이름입니다.

## 엔진 로그 항목의 내용
<a name="Log_contents-engine-log"></a>

ElastiCache 엔진 로그에는 다음 정보가 포함됩니다.
+ **CacheClusterId** – 클러스터의 ID입니다.
+ **CacheNodeId** – 캐시 노드의 ID입니다.
+ **로그 수준(Log level)** - 로그 수준은 `VERBOSE("-")`, `NOTICE("*")`, `WARNING("#")` 중 하나일 수 있습니다.
+ **시간(Time)** - 기록된 메시지의 UTC 시간입니다. 시간은 `"DD MMM YYYY hh:mm:ss.ms UTC"`와 같은 형식입니다.
+ **역할(Role)** - 로그가 방출되는 노드의 역할입니다. “M”(프라이머리), “S”(복제본), “C”(RDB/AOF에서 작업 중인 작성자 하위 프로세스), “X”(센티넬) 중 하나일 수 있습니다.
+ **메시지(Message)** - 엔진 로그 메시지입니다.

## 로깅을 구성하기 위한 권한
<a name="Log_permissions"></a>

IAM 사용자/역할 정책에 다음과 같은 IAM 권한을 포함시켜야 합니다.
+ `logs:CreateLogDelivery`
+ `logs:UpdateLogDelivery`
+ `logs:DeleteLogDelivery`
+ `logs:GetLogDelivery`
+ `logs:ListLogDeliveries`

자세한 내용은 [액세스 관리 개요: 권한 및 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_access-management.html) 섹션을 참조하세요.

## 로그 유형 및 로그 형식 지정
<a name="Destination_Formats"></a>

### 슬로우 로그
<a name="Destination_Formats-slowlog"></a>

슬로우 로그는 JSON 및 TEXT를 모두 지원합니다.

다음은 JSON 형식의 예를 보여 줍니다.

```
{
  "CacheClusterId": "logslowxxxxmsxj", 
  "CacheNodeId": "0001", 
  "Id": 296, 
  "Timestamp": 1605631822, 
  "Duration (us)": 0, 
  "Command": "GET ... (1 more arguments)", 
  "ClientAddress": "192.168.12.104:55452", 
  "ClientName": "logslowxxxxmsxj##" 
}
```

다음은 TEXT 형식의 예를 보여 줍니다.

```
logslowxxxxmsxj,0001,1605631822,30,GET ... (1 more arguments),192.168.12.104:55452,logslowxxxxmsxj## 
```

### 엔진 로그
<a name="Destination_Formats-engine-log"></a>

엔진 로그는 JSON 및 TEXT를 모두 지원합니다.

다음은 JSON 형식의 예를 보여 줍니다.

```
{ 
  "CacheClusterId": "xxxxxxxxxzy-engine-log-test", 
  "CacheNodeId": "0001", 
  "LogLevel": "VERBOSE", 
  "Role": "M", 
  "Time": "12 Nov 2020 01:28:57.994 UTC", 
  "Message": "Replica is waiting for next BGSAVE before synchronizing with the primary. Check back later" 
}
```

다음은 TEXT 형식의 예를 보여 줍니다.

```
xxxxxxxxxxxzy-engine-log-test/0001:M 29 Oct 2020 20:12:20.499 UTC * A slow-running Lua script detected that is still in execution after 1000 microseconds.
```