로그 보기

각 Cloud CDN 요청은 Cloud Logging에 로깅됩니다. 로깅은 자동으로 수행되므로 사용하도록 설정할 필요가 없습니다.

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

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

콘솔

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

    로그 뷰어 페이지로 이동

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

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

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

로그의 캐시 적중 예시

다음 로그 항목은 캐시 적중을 보여줍니다. 캐시 적중을 보려면 다음 단계를 따르세요.

콘솔

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

    로그 뷰어 페이지로 이동

  2. 전달 규칙 이름으로 필터링합니다.

    2020-06-08 16:41:30.078 PDT
    GET
    304
    157 B
    null
    Chrome 83
    http://LOAD_BALANCER_IP_ADDRESS/static/us/three-cats.jpg
    
    CLIENT_IP_ADDRESS - "GET http://LOAD_BALANCER_IP_ADDRESS/static/us/three-cats.jpg" 304 157 "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"
    Expand all | Collapse all{
    httpRequest: {
    cacheHit: true
    cacheLookup: true
    remoteIp: "CLIENT_IP_ADDRESS"
    requestMethod: "GET"
    requestSize: "577"
    requestUrl: "http://LOAD_BALANCER_IP_ADDRESS/static/us/three-cats.jpg"
    responseSize: "157"
    status: 304
    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"
    }
    insertId: "1oek5rg3l3fxj7"
    jsonPayload: {
    @type: "type.googleapis.com/google.cloud.loadbalancing.type.LoadBalancerLogEntry"
    cacheId: "SFO-fbae48ad"
    statusDetails: "response_from_cache"
    }
    logName: "projects/PROJECT_ID/logs/requests"
    receiveTimestamp: "2020-06-08T23:41:30.588272510Z"
    resource: {
    labels: {
     backend_service_name: ""
     forwarding_rule_name: "FORWARDING_RULE_NAME"
     project_id: "PROJECT_ID"
     target_proxy_name: "TARGET_PROXY_NAME"
     url_map_name: "URL_MAP_NAME"
     zone: "global"
    }
    type: "http_load_balancer"
    }
    severity: "INFO"
    spanId: "7b6537d3672e08e1"
    timestamp: "2020-06-08T23:41:30.078651Z"
    trace: "projects/PROJECT_ID/traces/241d69833e64b3bf83fabac8c873d992"
    }
    

로깅되는 내용

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

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

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

  • structPayloadstatusDetails 필드.

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

  • 캐시에 있음

    statusDetails="response_from_cache"

    또는

    httpRequest.cacheHit=true
    httpRequest.cacheValidatedWithOriginServer!=true

  • 원본 서버를 통해 검증된 캐시에 있음

    statusDetails="response_from_cache_validated"

    또는

    httpRequest.cacheHit=true
    httpRequest.cacheValidatedWithOriginServer=true

  • 캐시 누락

    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 문서를 참조하세요.