로그 전달 - 아마존 포 ElastiCache 레디스용

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

로그 전달

참고

Redis 슬로우 로그는 엔진 버전 6.0 이상을 사용하는 Redis 캐시 클러스터 및 복제 그룹에 대해 지원됩니다.

Redis 엔진 로그는 엔진 버전 6.2 이상을 사용하는 Redis 캐시 클러스터 및 복제 그룹에 대해 지원됩니다.

로그 전달을 통해 Redis SLOWLOG 또는 Redis 엔진 로그(Redis Engine Log)를 다음 두 대상 중 하나로 스트리밍할 수 있습니다.

  • Amazon Data Firehose

  • 아마존 CloudWatch 로그

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

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

AWS 콘솔이나 수정 API 중 하나 (또는) 를 사용하여 언제든지 전송 구성을 변경하거나 로그 전달을 비활성화하도록 선택할 수 있습니다. modify-cache-clustermodify-replication-group

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

참고

CloudWatch 로그 전송이 활성화된 경우, Amazon Data Firehose로 로그가 직접 전송되는 경우에도 Amazon Logs 요금이 부과됩니다. 자세한 내용은 Amazon CloudWatch 요금의 벤드 로그 섹션을 참조하십시오.

슬로우 로그 항목의 내용

ElastiCache Redis용 슬로우 로그에는 다음 정보가 포함됩니다.

  • CacheClusterId— 캐시 클러스터의 ID

  • CacheNodeId— 캐시 노드의 ID

  • Id - 모든 슬로우 로그 항목에 대한 고유한 프로그레시브 식별자입니다.

  • Timestamp – 로그에 기록된 명령이 처리된 시간의 Unix 타임스탬프입니다.

  • Duration – 실행에 걸린 시간(마이크로초)입니다.

  • Command – 클라이언트에서 사용된 명령입니다. 예를 들어, set foo bar 여기서 foo 는 키이고 bar 는 값입니다. ElastiCache for Redis는 민감한 데이터가 노출되지 않도록 실제 키 이름과 값을 (2 more arguments) 로 대체합니다.

  • ClientAddress— 클라이언트 IP 주소 및 포트

  • ClientNameCLIENT SETNAME 명령을 통해 설정한 경우 클라이언트 이름

엔진 로그 항목의 내용

Redis ElastiCache 엔진용 로그에는 다음 정보가 포함됩니다.

  • CacheClusterId— 캐시 클러스터의 ID

  • CacheNodeId— 캐시 노드의 ID

  • 로그 수준 — 다음 중 하나일 LogLevel 수 있습니다.VERBOSE("-"),NOTICE("*"),WARNING("#").

  • 시간(Time) - 기록된 메시지의 UTC 시간입니다. 시간은 "DD MMM YYYY hh:mm:ss.ms UTC"와 같은 형식입니다.

  • 역할(Role) - 로그가 방출되는 노드의 역할입니다. “M”(프라이머리), “S”(복제본), “C”(RDB/AOF에서 작업 중인 작성자 하위 프로세스), “X”(센티넬) 중 하나일 수 있습니다.

  • 메시지(Message) - Redis 엔진 로그 메시지입니다.

로깅을 구성하기 위한 권한

IAM 사용자/역할 정책에 다음과 같은 IAM 권한을 포함시켜야 합니다.

  • logs:CreateLogDelivery

  • logs:UpdateLogDelivery

  • logs:DeleteLogDelivery

  • logs:GetLogDelivery

  • logs:ListLogDeliveries

자세한 내용은 액세스 관리 개요: 권한 및 정책 섹션을 참조하세요.

로그 유형 및 로그 형식 지정

슬로우 로그

슬로우 로그는 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##

엔진 로그

엔진 로그는 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 10000 milliseconds.