• /
  • EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

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

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

문제 신고

Amazon CloudFront 액세스 로그 전달

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

로그 전송 옵션

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

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

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

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

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

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

  1. AWS Management Console에서

    Services > All services > S3

    선택합니다.

  2. Create bucket

    선택합니다.

  3. Bucket name

    을 입력하고 원하는

    AWS region

    을 선택합니다. (표준 로깅을 사용하는 경우 S3 버킷은 다음 섹션에서 생성하는 Lambda 함수와 동일한 리전에 있어야 합니다.)

  4. Object ownership

    섹션에서

    ACLs enabled

    선택합니다.

  5. Create bucket

    선택합니다.

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

표준 로깅 사용

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

  1. AWS Management Console에서

    Services > All Services > CloudFront

    선택합니다.

  2. 배포판

    ID

    을 클릭하세요. 일반 탭의 설정 섹션에서

    Edit

    선택합니다.

  3. Standard logging

    섹션에서

    On

    선택하여 로깅을 활성화하고 로깅 구성 설정을 표시합니다.

  4. S3 bucket

    의 경우 위에서 생성한 S3 버킷 이름을 검색하여 선택합니다.

  5. 선택 사항: cloudfront_logs 과 같은 로그 접두사를 추가할 수 있습니다.

  6. Save changes

    선택합니다.

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 아래에서

    + Add trigger

    버튼을 선택합니다.

  4. Trigger Configuration

    에 대해 S3을 선택합니다.

  5. Bucket

    의 경우 위에서 생성한 S3 버킷을 검색하여 선택합니다.

  6. Recursive invocation

    섹션에서 확인 상자를 선택한 후

    Add

    선택합니다.

  7. 함수의

    Configuration

    탭에서 왼쪽에 있는

    Environment variables

    옵션을 선택합니다.

  8. Edit

    선택하고 LOG_TYPE 에 대해 cloudfront-web 입력합니다.

  9. Save

    선택합니다.

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

실시간 로그 활성화

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

  1. AWS Management Console에서

    Services > Kinesis

    선택합니다.

  2. Data streams

    선택한 다음

    Create data stream

    선택합니다.

  3. Data stream name

    을 입력하세요. 예를 들어, CloudFront-DataStream.

  4. 원하는 데이터 스트림 용량 모드를 선택합니다.

  5. Create data stream

    선택합니다.

  6. Consumers

    섹션에서

    Process with delivery stream

    선택합니다.

  7. Destination

    에 대해

    New Relic

    선택합니다.

  8. Delivery stream name

    을 입력하세요. 예를 들어, CloudFront-DeliveryStream.

  9. Destination

    설정 섹션에서 HTTP 엔드포인트 URL에 대해

    New Relic logs - US

    또는

    New Relic logs - EU

    선택합니다.

  10. API key

    에 뉴렐릭 계정의

    을 입력합니다.

  11. Add parameter

    선택합니다.

  12. 아래 21단계에서 로그인을 위해 모든 필드를 선택하려면

    Key

    에 대해 logtype 입력하고

    Value

    에 대해 cloudfront-rtl 입력합니다. 아래 21단계에서 로그인할 필드의 하위 집합을 선택하려면 cloudfront-rtl-custom 입력하세요. 모든 필드를 선택하지 않은 경우 아래의 실시간 로그 구문 분석 섹션에서 로그에 대한 사용자 지정 구문 분석 규칙을 만드는 방법에 대한 정보를 참조하세요.

  13. Backup settings

    섹션에서 기본 설정에 따라

    Failed data

    만 선택하거나

    Source record backup in Amazon S3

    옵션에 대해

    All data

    선택할 수 있습니다.

  14. S3 백업 버킷의 경우

    Browse

    선택하여 위에서 CloudFront 로그를 저장하기 위해 생성한 S3 버킷 이름을 검색하고 선택합니다.

  15. Create delivery stream

    선택합니다.

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

  1. AWS Management Console에서

    Services > CloudFront

    선택합니다.

  2. 왼쪽의

    Telemetry section

    에서

    Logs

    선택합니다.

  3. Real-time configurations

    탭을 클릭한 다음

    Create configuration

    선택합니다.

  4. 구성 이름을 입력합니다. 예: CloudFront-RealTimeLogs .

  5. 1 에서 100 사이의 샘플링 속도를 입력합니다.

  6. Fields

    의 경우

    All fields

    선택하거나 로그에 포함할 필드를 선택합니다.

  7. Endpoint

    의 경우 3단계에서 생성한 데이터 스트림 이름을 선택합니다. 예: CloudFront-DataStream.

  8. Distrubutions

    섹션에서 CloudFront 배포 ID를 선택합니다.

  9. Cache behaviors

    의 경우

    Default (*)

    확인하세요.

  10. Create configuration

    선택합니다.

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

실시간 로그 파싱

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

맞춤 구문 분석 규칙을 만들려면 로그 UI의 Manage data 섹션에서 Parsing 선택하세요.

  1. Rule name

    에 대해 CloudFront custom parsing rule 입력합니다.

  2. Filter logs based on NRQL

    에 대해 logtype='cloundfront-rtl-custom' 입력합니다.

  3. 대화 설정 로그에서 선택한 필드가

    only

    포함되도록 아래의 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을 구문 분석 논리 섹션에 붙여넣은 다음

    Test grok

    를 선택하여 파서가 작동하는지 확인합니다.

  5. 규칙을 활성화한 다음

    Save parsing rule

    선택합니다.

Creating a CloudFront custom parsing rule

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

다음은 뭐지?

Dashboard in Amazon CloudFront Access Logs quickstart

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

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

로그 전달 사용 안함

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

Copyright © 2024 New Relic Inc.

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