로그 보기

각 Cloud CDN 요청은 Cloud Logging에 로깅됩니다. 로깅 사용 설정 및 중지에 대한 자세한 내용은 HTTP(S) 부하 분산 로깅 및 모니터링을 참조하세요.

Cloud CDN의 로그는 Cloud CDN 백엔드가 연결된 외부 HTTP(S) 부하 분산기와 연결됩니다. Cloud CDN 로그는 먼저 전달 규칙URL 맵 순으로 색인을 생성합니다.

Cloud CDN 로그를 보려면 다음 단계를 따르세요.

Console

  1. Google Cloud Console에서 로그 뷰어 페이지로 이동합니다.

    로그 뷰어 페이지로 이동

  2. 모든 로그를 보려면 행의 첫 번째 풀다운 메뉴에서 Cloud HTTP 부하 분산기 > 모든 전달 규칙을 선택합니다.

  3. 특정 전달 규칙의 로그를 보려면 목록에서 해당 전달 규칙 이름을 선택합니다.

  4. 전달 규칙에서 사용되는 URL 맵 한 개에 대한 로그만 보려면 Cloud HTTP 부하 분산기를 선택하고 원하는 전달 규칙과 URL 맵을 선택합니다.

백엔드에서 제공한 요청

요청이 Cloud CDN이 사용 설정된 백엔드에서 제공되는지 확인하려면 다음 3가지 기본 필드를 찾아야 합니다.

  • httpRequest: 백엔드에서 요청을 제공하면 캐시가 채워지고 요청 URL을 확인할 수 있습니다.
    • cacheFillBytes: NUMBER_OF_BYTES
    • cacheLookup: True
    • requestURL: URL
  • jsonPayload: statusDetails 필드에서 응답이 백엔드에서 제공되었는지 확인할 수 있습니다.
    • statusDetails: "response_sent_by_backend"

캐시에서 제공한 요청

다음 로그 항목은 캐시 적중을 보여줍니다.

 {
    insertId: "1oek5rg3l3fxj7"
    jsonPayload: {
        @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
        cacheId: "SFO-fbae48ad"
        statusDetails: "response_from_cache"
    }
    httpRequest: {
        requestMethod: "GET"
        requestUrl: "http://LOAD_BALANCER_IP_ADDRESS/static/us/three-cats.jpg"
        requestSize: "577"
        status: 304
        responseSize: "157"
        userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36"
        remoteIp: "CLIENT_IP_ADDRESS"
        cacheHit: true
        cacheLookup: true
    }
    resource: {
        type: "http_load_balancer"
        labels: {
            zone: "global"
            url_map_name: "URL_MAP_NAME"
            forwarding_rule_name: "FORWARDING_RULE_NAME"
            target_proxy_name: "TARGET_PROXY_NAME"
            backend_service_name: ""
            project_id: "PROJECT_ID"
        }
    }
    timestamp: "2020-06-08T23:41:30.078651Z"
    severity: "INFO"
    logName: "projects/PROJECT_ID/logs/requests"
    trace: "projects/PROJECT_ID/traces/241d69833e64b3bf83fabac8c873d992"
    receiveTimestamp: "2020-06-08T23:41:30.588272510Z"
    spanId: "7b6537d3672e08e1"
}

로깅되는 내용

HTTP(S) 부하 분산 로그에는 심각도, 프로젝트 ID, 프로젝트 번호, 타임스탬프와 같은 대부분의 로그에 포함된 일반 정보 외에도 다음이 포함됩니다.

  • HTTP 상태 코드, 반환된 바이트, 캐시 조회 또는 캐시 채우기 수행 여부를 캡처하는 HttpRequest 로그 필드.

  • 캐시 응답이 제공되는 위치와 캐시 인스턴스를 나타내는 jsonPayload.cacheId 필드. 예를 들어 암스테르담의 캐시에서 제공하는 캐시 응답의 cacheId 값은 AMS-85e2bd4b입니다. 여기서 AMSIATA 코드이고 85e2bd4b는 캐시 인스턴스의 불투명 식별자입니다(일부 Cloud CDN 위치에는 개별 캐시가 여러 개 있기 때문).

  • jsonPayloadstatusDetails 필드.

다음 필드를 필터링하여 Cloud CDN에서 제공하는 요청의 캐시 적중, 부적중, 재확인 상태를 확인할 수 있습니다.

  • 캐시 적중

    jsonPayload.statusDetails=("response_from_cache" OR "byte_range_caching")

    또는

    httpRequest.cacheHit=true
    httpRequest.cacheValidatedWithOriginServer!=true

  • 원본 서버를 통해 검증된 캐시 적중

    jsonPayload.statusDetails="response_from_cache_validated"

    또는

    httpRequest.cacheHit=true
    httpRequest.cacheValidatedWithOriginServer=true

  • 캐시 부적중

    jsonPayload.statusDetails="response_sent_by_backend"

    또는

    httpRequest.cacheHit!=true
    httpRequest.cacheLookup=true

부울 형식의 로그 필드는 true 값이 있을 때만 표시됩니다. 부울 필드의 값이 false면 해당 필드는 로그에서 생략됩니다.

이러한 필드에는 UTF-8 인코딩이 적용됩니다. UTF-8 외의 문자는 물음표로 대체됩니다.

Cloud CDN은 유효성 검사 요청 및 바이트 범위 요청을 시작하여 클라이언트 요청을 제공할 때 클라이언트 요청의 Cloud Logging 로그 항목에서 serverIp 필드를 생략합니다. 이는 Cloud CDN이 단일 클라이언트 요청에 대한 응답으로 여러 서버 IP 주소에 요청을 보낼 수 있기 때문입니다.

Cloud CDN에서 시작된 각 요청으로 인해 Cloud Logging 로그 항목이 생성됩니다. 그 결과로 생성되는 로그 항목에는 jsonPayload 내부에 parentInsertId 필드가 포함됩니다. 이 필드를 사용하면 Cloud CDN에서 유효성 검사 요청 또는 바이트 범위 요청을 시작한 단일 클라이언트 요청의 로그 항목 insertId를 식별 할 수 있습니다. 또한 로그 항목은 Cloud CDN을 사용자 에이전트로 식별합니다.

다음 단계

  • BigQuery, Pub/Sub 또는 Cloud Storage로 로그를 내보내는 방법과 모니터링 및 알림에 사용되는 로그 기반 측정항목을 구성하는 방법을 비롯한 로깅 방법에 대한 자세한 내용은 Cloud Logging 문서를 참조하세요.

  • httpRequest 로그 항목에 포함된 필드에 대한 자세한 내용은 HttpRequest를 참조하세요.