• 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

Amazon CloudFront 액세스 로그 전달

Amazon CloudFront 배포에서 로깅을 활성화하여 웹 액세스 로그를 New Relic으로 보낼 수 있습니다.

로그 전송 옵션

CloudFront에서 로그를 보내는 데는 표준 로깅 또는 실시간 로그의 두 가지 옵션이 있습니다.

표준 로그 는 CloudFront에서 저장되는 S3 버킷으로 전송됩니다. 그런 다음 AWS Lambda 트리거를 사용하여 S3에서 New Relic으로 로그를 보냅니다. 표준 로그(액세스 로그) 구성 및 사용에 대한 Amazon CloudFront 문서를 검토하십시오 . 여기에는 S3 버킷 생성 및 적절한 권한 설정에 대한 자세한 정보가 있습니다. 표준 로그에는 모든 데이터 필드가 포함되며 S3로 전송된 다음 5분마다 New Relic으로 전송됩니다. Amazon 콘솔에서 표준 로그를 구성하고 S3 Lambda 트리거를 통해 New Relic으로 보내는 방법에 대한 자세한 지침은 표준 로깅 활성화 섹션 을 참조하십시오.

실시간 로그 는 Kinesis Data Stream 소비자와 Kinesis Data Firehose를 사용하여 요청을 수신한 후 몇 초 이내에 전송되어 New Relic으로 전송됩니다. 실시간 로그 구성에 대한 Amazon CloudFront 문서를 검토하십시오 . 실시간 로그를 구성할 수 있으며 샘플링 속도(전송할 로그 비율)를 구성하고, 로그 레코드에서 수신할 특정 필드를 선택하고, 로그를 수신하려는 특정 캐시 동작(경로 패턴)을 정의할 수 있습니다. 실시간 로그에는 모든 데이터를 전송하거나 실패한 데이터만 전송하기 위한 S3 백업 버킷도 필요합니다. 따라서 실시간 로그를 활성화하려면 S3 버킷 생성 지침 도 따라야 합니다. Amazon 콘솔에서 표준 로그를 구성하고 S3 Lambda 트리거를 통해 New Relic으로 보내는 방법에 대한 자세한 지침은 실시간 로그 활성화 섹션을 참조하십시오.

두 옵션 모두 내장된 로그 구문 분석 규칙 을 사용하여 CloudFront 액세스 로그를 자동으로 구문 분석하고 빠른 시작 대시보드를 사용하여 데이터에 대한 통찰력을 즉시 얻을 수 있습니다. 기본 제공 구문 분석 규칙이 작동하고 제공된 빠른 시작 대시보드의 위젯에 데이터를 채우려면 지침에 정의된 대로 logtype 속성을 구성해야 합니다. 일부 로깅 필드만 선택한 경우 실시간 로그 구문 분석에 대한 자세한 내용은 구문 분석 섹션 을 참조하세요.

CloudFront 로그 저장을 위한 S3 버킷 생성

CloudFront 배포에 대한 표준 로그 또는 실시간 로그를 활성화하려면 먼저 다음 위치에 CloudFront 액세스 로그를 저장하는 데 사용할 S3 버킷을 생성해야 합니다.

  1. AWS Management 콘솔에서 Services > All services > S3 를 선택합니다.
  2. 버킷 생성 을 선택합니다.
  3. 버킷 이름 을 입력하고 원하는 AWS 리전 을 선택합니다. (표준 로깅을 사용하는 경우 S3 버킷은 다음 섹션에서 생성하는 Lambda 함수와 동일한 리전에 있어야 합니다.)
  4. 개체 소유권 섹션에서 ACL 사용 을 선택합니다.
  5. 버킷 생성 을 선택합니다.

이제 표준 또는 실시간 로깅을 활성화할 수 있습니다. 해당 옵션에 대한 지침은 계속 읽으십시오.

표준 로깅 사용

표준 로그를 활성화하도록 CloudFront 배포를 업데이트합니다.

  1. AWS Management 콘솔에서 Services > All Services > CloudFront 를 선택합니다.
  2. 배포 ID 를 클릭합니다. 일반 탭의 설정 섹션에서 편집 을 선택합니다.
  3. 표준 로깅 섹션에서 켜기 를 선택하여 로깅을 활성화하고 로깅 구성 설정을 표시합니다.
  4. S3 버킷 의 경우 위에서 생성한 S3 버킷 이름을 검색하여 선택합니다.
  5. 선택 사항: cloudfront_logs 과 같은 로그 접두사를 추가할 수 있습니다.
  6. 변경 사항 저장 을 선택합니다.

5분 이내에 다음 파일 이름 형식으로 S3 버킷에 로그 파일이 표시되기 시작해야 합니다.

<optional prefix>/<distribution ID>.YYYY-MM-DD-HH.unique-ID.gz

그런 다음 S3의 액세스 로그를 New Relic으로 보내도록 AWS Lambda 함수 NewRelic-log-ingestion-s3 를 설치하고 구성해야 합니다. 적절한 LOG_TYPE 환경 변수를 설정할 수 있도록 Amazon CloudFront 로그에 대한 단일 Lambda 함수가 필요합니다. 이를 통해 CloudFront 기본 제공 구문 분석 규칙빠른 시작 대시보드 를 사용할 수 있습니다. 이 Lambda 함수가 이미 한 지역에 설치되어 있고 이를 사용하여 다른 S3 로그를 New Relic으로 보내는 경우(예: ALB/NLB 로그) 다른 지역에 Lambda 함수를 다시 설치해야 합니다. 또한 앞서 언급했듯이 액세스 로그를 저장하기 위한 S3 버킷과 S3 로그를 New Relic으로 전송하기 위한 Lambda 함수가 동일한 리전에 있어야 합니다.

다음 단계를 수행하려면:

  1. 여기의 지침에 따라 S3에서 로그를 전송하도록 AWS Lambda를 구성 합니다.
  2. Lambda 함수가 설치된 후 Functions > NewRelic-s3-log-ingestion 을선택합니다.
  3. S3 아래에서 + 트리거 추가 버튼을 선택합니다.
  4. 트리거 구성 에 대해 S3을 선택합니다.
  5. Bucket 에서 위에서 생성한 S3 버킷을 검색하여 선택합니다.
  6. 재귀 호출 섹션에서 확인 상자를 선택한 다음 추가 를 선택합니다.
  7. 함수의 구성 탭에서 왼쪽에 있는 환경 변수 옵션을 선택합니다.
  8. 수정 을 선택하고 LOG_TYPE 에 대해 cloudfront-web }을 입력합니다.
  9. 저장 을 선택합니다.

5분 이내에 로그 UI에서 로그를 보기 시작해야 합니다. 로그를 수신하고 있는지 확인하려면 로그 UI 검색창 에서 logtype:cloudfront-web 을 검색하거나 다음과 같이 NRQL 쿼리를 실행할 수 있습니다. FROM Log SELECT * WHERE logtype='cloudfront-web'

실시간 로그 활성화

CloudFront 배포에 대한 실시간 로깅을 활성화하려면 먼저 CloudFront 로그를 수신하기 위한 Kinesis Data Stream을 생성해야 합니다.

  1. AWS Management 콘솔에서 Services > Kinesis 를 선택합니다.
  2. 데이터 스트림 을 선택한 다음 데이터 스트림 만들기 를 선택합니다.
  3. 데이터 스트림 이름 을 입력하십시오. 예: CloudFront-DataStream .
  4. 원하는 데이터 스트림 용량 모드를 선택합니다.
  5. 데이터 스트림 생성 을 선택합니다.
  6. 소비자 섹션에서 전달 스트림으로 처리를 선택합니다.
  7. 대상 으로 New Relic 을 선택합니다.
  8. 전송 스트림 이름 을 입력하십시오. 예: CloudFront-DeliveryStream .
  9. 대상 설정 섹션에서 HTTP 끝점 URL에 대해 New Relic logs - US 또는 New Relic logs - EU 를 선택합니다.
  10. API key 에 New Relic 계정의 라이선스 키 를 입력합니다.
  11. 매개변수 추가 를 선택합니다.
  12. 아래 21단계에서 로그인을 위해 모든 필드를 선택하려면 logtype 을 입력하고 cloudfront-rtl 을 입력합니다. 아래 21단계에서 로그인할 필드의 하위 집합을 선택하려는 경우 cloudfront-rtl-custom 를 입력합니다. 모든 필드를 선택하도록 선택하지 않은 경우 로그에 대한 사용자 지정 구문 분석 규칙을 만드는 방법에 대한 정보는 아래의 실시간 로그 구문 분석 섹션 을 참조하십시오.
  13. 백업 설정 섹션에서 기본 설정에 따라 Amazon S3의 원본 레코드 백업 옵션에 대해 실패한 데이터 만 또는 모든 데이터 를 선택할 수 있습니다.
  14. S3 백업 버킷의 경우 찾아보기 를 선택하여 CloudFront 로그를 저장하기 위해 위에서 생성한 S3 버킷 이름을 검색하고 선택합니다.
  15. 전송 스트림 생성 을 선택합니다.

다음으로 실시간 로깅 구성을 생성하여 CloudFront 배포에 연결합니다.

  1. AWS Management 콘솔에서 Services > CloudFront 를 선택합니다.
  2. 왼쪽의 원격 분석 섹션 에서 로그 를 선택합니다.
  3. 실시간 구성 탭을 클릭한 다음 구성 생성 을 선택합니다.
  4. 구성 이름을 입력합니다. 예: CloudFront-RealTimeLogs .
  5. 1 에서 100 사이의 샘플링 속도를 입력합니다.
  6. 필드 에 대해 모든 필드 를 선택하거나 로그에 포함할 필드를 선택합니다.
  7. 끝점 에 대해 3단계에서 생성한 데이터 스트림 이름을 선택합니다. 예: CloudFront-DataStream .
  8. 배포 섹션에서 CloudFront 배포 ID를 선택합니다.
  9. 캐시 동작 의 경우 기본값(*) 을 선택합니다.
  10. 구성 생성 을 선택합니다.

몇 분 안에 New Relic Logs UI 에서 로그를 보기 시작해야 합니다. 실시간 로그 수신을 확인하려면 로그 UI 검색창에서 또는 다음과 같은 NRQL 쿼리를 통해 logtype:cloudfront-rtl* 을 검색할 수 있습니다. FROM Log SELECT * WHERE logtype LIKE 'cloudfront-rtl%'

실시간 로그 파싱

실시간 로그에 대한 기본 제공 구문 분석 규칙은 모든 필드가 기록될 것이라고 가정합니다. 필드의 하위 집합만 기록하도록 선택한 경우 로그 형식과 일치하는 사용자 지정 구문 분석 규칙을 정의해야 합니다. 이는 로그가 올바르게 구문 분석되고 빠른 시작 대시보드 를 사용하는 데 필요합니다.

사용자 정의 구문 분석 규칙을 생성하려면 로그 UI의 데이터 관리 섹션에서 구문 분석 을 선택하십시오.

  1. 규칙 이름 으로 CloudFront custom parsing rule 을 입력합니다.

  2. NRQL 기반 필터 로그에 logtype='cloundfront-rtl-custom' 을 입력합니다.

  3. 실시간 로그 구성에서 선택한 필드 포함하도록 아래의 Grok 구문 분석 논리를 업데이트하십시오. 예를 들어, cs_headers 필드를 포함하지 않도록 선택한 경우 Grok에서 %{SPACE}%{NOTSPACE:cs_headers}% 을 제거하는 식입니다.

    ^%{NOTSPACE:timestamp}.\d{3}%{SPACE}%{NOTSPACE:c_ip}%{SPACE}%{NUMBER:time_to_first_byte:INT}%{SPACE}%{NUMBER:sc_status:INT}%{SPACE}%{NUMBER:sc_bytes:INT}%{SPACE}%{WORD:cs_method}%{SPACE}%{NOTSPACE:cs_protocol}%{SPACE}%{NOTSPACE:cs_host}%{SPACE}%{NOTSPACE:cs_uri_stem}%{SPACE}%{NUMBER:cs_bytes:INT}%{SPACE}%{NOTSPACE:x_edge_location}%{SPACE}%{NOTSPACE:x_edge_request_id}%{SPACE}%{NOTSPACE:x_host_header}%{SPACE}%{NUMBER:time_taken:INT}%{SPACE}%{NOTSPACE:cs_protocol_version}%{SPACE}%{NOTSPACE:cs_ip_version}%{SPACE}%{NOTSPACE:cs_user_agent}%{SPACE}%{NOTSPACE:cs_referer}%{SPACE}%{NOTSPACE:cs_cookie}%{SPACE}%{NOTSPACE:cs_uri_query}%{SPACE}%{NOTSPACE:x_edge_response_result_type}%{SPACE}%{NOTSPACE:x_forwarded_for}%{SPACE}%{NOTSPACE:ssl_protocol}%{SPACE}%{NOTSPACE:ssl_cipher}%{SPACE}%{NOTSPACE:x_edge_result_type}%{SPACE}%{NOTSPACE:fle_encrypted_fields}%{SPACE}%{NOTSPACE:fle_status}%{SPACE}%{NOTSPACE:sc_content_type}%{SPACE}%{NOTSPACE:sc_content_len}%{SPACE}%{NOTSPACE:sc_range_start}%{SPACE}%{NOTSPACE:sc_range_end}%{SPACE}%{NUMBER:c_port:INT}%{SPACE}%{NOTSPACE:x_edge_detailed_result_type}%{SPACE}%{NOTSPACE:c_country}%{SPACE}%{NOTSPACE:cs_accept_encoding}%{SPACE}%{NOTSPACE:cs_accept}%{SPACE}%{NOTSPACE:cache_behavior_path_pattern}%{SPACE}%{NOTSPACE:cs_headers}%{SPACE}%{NOTSPACE:cs_header_names}%{SPACE}%{NOTSPACE:cs_headers_count}$
  4. 업데이트된 Grok를 구문 분석 논리 섹션에 붙여넣은 다음 테스트 grok 를 선택하여 구문 분석기가 작동하는지 확인합니다.

  5. 규칙을 활성화한 다음 구문 분석 규칙 저장 을 선택합니다.

CloudFront 사용자 지정 구문 분석 구성의 스크린샷.

다음은 뭐지?

Amazon CloudFront 액세스 로그에 대한 빠른 시작에는 사전 구축된 대시보드가 포함되어 있습니다.

다음 단계에 대한 몇 가지 아이디어는 다음과 같습니다.

로그 전달 사용 안함

로그 전달 기능을 비활성화하려면 두 가지 옵션이 있습니다. S3 로그를 New Relic으로 보내는 것을 중단하려면 NewRelic-log-ingestion-s3 Lambda 함수에서 S3 트리거를 삭제할 수 있습니다. Amazon CloudFront 액세스 로그를 완전히 비활성화하려면 트리거를 삭제하고 CloudFront 배포의 일반 설정에서 로깅을 꺼야 합니다.

Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.