Apigee 액세스 로그 로깅

이 페이지는 Apigee에 적용되지만 Apigee Hybrid에는 적용되지 않습니다.

Apigee Edge 문서 보기

Apigee 구독 및 사용한 만큼만 지불 고객은 조직의 각 Apigee 인스턴스에 Cloud Logging 인그레스 액세스 로그를 사용 설정할 수 있습니다. 이 기능을 사용 설정하면 외부 애플리케이션 부하 분산기 또는 Anthos 게이트웨이와 같은 Apigee 인프라의 인그레스 게이트웨이에서 생성된 로그를 보고 Apigee API 호출 문제를 해결할 수 있습니다.

하나 이상의 Apigee 인스턴스에 이 기능을 사용 설정하면 프로젝트의 배송된 로그에 요금이 청구됩니다. 로깅에 대한 Google Cloud 요금에 대한 자세한 내용은 Cloud Logging 가격 책정을 참조하세요.

이 주제에서는 Apigee 고객이 조직에서 Apigee 인스턴스에 대해 Cloud Logging 인그레스 액세스 로그를 설정하고 사용하는 방법을 설명합니다.

시작하기 전에

이 기능을 사용 설정하려면 다음 역할 및 권한이 있어야 합니다.

  • 역할: Apigee 조직 관리자(roles/apigee.admin)
  • 권한:
    • apigee.instances.create
    • apigee.instances.update

역할 확인

  1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

    IAM으로 이동
  2. 프로젝트를 선택합니다.
  3. 주 구성원 열에서 이메일 주소가 있는 행을 찾습니다.

    이메일 주소가 열에 없으면 역할이 없는 것입니다.

  4. 이메일 주소가 있는 행에 대해 역할 열에서 역할 목록에 필요한 역할이 있는지 확인합니다.

역할 부여

  1. Google Cloud 콘솔에서 IAM 페이지로 이동합니다.

    IAM으로 이동
  2. 프로젝트를 선택합니다.
  3. 액세스 권한 부여를 클릭합니다.
  4. 새 주 구성원 필드에 이메일 주소를 입력합니다.
  5. 역할 선택 목록에서 역할을 선택합니다.
  6. 역할을 추가로 부여하려면 다른 역할 추가를 클릭하고 각 역할을 추가합니다.
  7. 저장을 클릭합니다.

Apigee 인스턴스에 인그레스 액세스 로깅 사용 설정

https://console.cloud.google.com/apigee 또는 API를 사용하여 Apigee 인스턴스를 만들거나 수정할 때 Cloud Logging 인그레스 액세스 로깅을 사용 설정할 수 있습니다.

Apigee 인스턴스를 만들거나 업데이트할 때 이 기능을 사용 설정하려면 인스턴스 관리의 안내에 따라 인스턴스 만들기 또는 수정을 시작합니다.

Cloud 콘솔의 Apigee

인스턴스 만들기 또는 인스턴스 수정 페이지의 로깅 섹션에서 다음을 수행합니다.

  1. 로깅 사용 설정 전환 버튼을 클릭하여 이 기능을 사용 설정합니다.
  2. 필요한 경우 액세스 로그의 필터 역할을 할 응답 코드 상자에서 HTTP 응답 코드를 선택합니다.

    HTTP 응답 코드에 관계없이 모든 로그를 포함하려면 None (all HTTP responses)을 선택합니다.

    커스텀 필터를 만들려면 Custom을 선택하고 다음 형식으로 필터를 입력합니다.

    status_code > XX && status code <= YY

    예를 들면 다음과 같습니다.

    status_code >= 500 && status_code < 504

  3. 인스턴스를 만들거나 수정하는 데 필요한 모든 정보를 제공한 후 저장을 클릭합니다.

Apigee API

Apigee API를 사용하여 기존 인스턴스를 업데이트하려면 다음 명령어를 사용합니다.

curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/instances/INSTANCE_NAME?updateMask=access_logging_config.enabled,access_logging_config.filter" \
    -X PATCH -H "Authorization: Bearer $TOKEN" \
    -H 'Accept: application/json' -H 'Content-Type: application/json' \
    -d '{ 
      "name": "INSTANCE_NAME",
      "accessLoggingConfig": 
        { 
          "enabled": "true", 
          "filter": "status_code >= 0 && status_code < 600 " 
        }
      }'

각 항목의 의미는 다음과 같습니다.

  • ORG_NAME은 Apigee 조직의 이름입니다.
  • INSTANCE_NAME은 수정할 Apigee 인스턴스의 이름입니다.

이 명령어에서 filter 속성에 지정된 값은 모든 로그를 반환합니다. HTTP 또는 기타 상태 코드를 기준으로 로그를 필터링하려면 filter 값을 조정하면 됩니다.

인스턴스가 성공적으로 생성되거나 업데이트되면 몇 분 이내에 프로젝트에서 해당 인스턴스의 인그레스 액세스 로그를 사용할 수 있습니다.

인그레스 액세스 로그 보기

이 기능을 사용 설정하면 Google Cloud 콘솔의 로그 탐색기를 사용하여 몇 분 내에 프로젝트 내 인스턴스의 인그레스 액세스 로그를 볼 수 있습니다.

로그 탐색기에서 로그 항목을 보려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 Logging > 로그 탐색기를 선택합니다.

    로그 탐색기로 이동

  2. Google Cloud 프로젝트가 선택되어 있어야 합니다.
  3. 쿼리 탭에서 다음 방법 중 하나를 사용하여 로그 이름을 쿼리 편집기 필드에 입력합니다.
    • 로그 이름을 사용하려면 다음 상자를 선택합니다.
      1. 로그 이름 선택 상자를 클릭하여 로그 이름 창을 엽니다.
      2. 로그 이름 선택 상자에 ingress_instance를 입력합니다.
      3. 적용을 클릭합니다.
      4. 로그 이름이 쿼리 편집기 필드에 나타납니다.
    • 쿼리 편집기 필드에 로그 이름을 직접 입력합니다.

      logName="projects/ORG_NAME/logs/apigee.googleapis.com/ORG_NAME"

      여기서 ORG_NAME은 Apigee 조직의 이름입니다.

  4. 쿼리 편집기 필드에 나머지 쿼리를 빌드합니다. 쿼리 결과 목록에 로그가 표시됩니다.
  5. 로그 항목을 클릭하면 자세한 내용을 확인할 수 있습니다.

인그레스 액세스 로그 문제 해결

이 기능을 사용 설정하고 로그 탐색기에서 로그를 사용할 수 있게 되면 다음과 같은 다양한 Cloud Logging 기능을 활용하여 문제 해결을 지원할 수 있습니다.

  • Cloud Logging 쿼리 언어를 사용하여 쿼리 빌드

    로그 탐색기를 사용할 때 쿼리 편집기 필드에 쿼리를 작성하고 로그 항목에 포함된 필터 메뉴 옵션에서 선택하여 로그를 검색하고 분석할 수 있습니다. 로그 탐색기에서 쿼리를 빌드하고 데이터를 분석하는 방법에 대한 자세한 내용은 Cloud Logging 쿼리 언어를 사용하여 쿼리 빌드 및 저장을 참조하세요.

  • 로그 기반 측정항목 및 알림 사용 설정

    자체 로그 기반 측정항목을 정의하여 Apigee 인스턴스와 관련된 정보를 캡처할 수 있습니다. 자세한 내용은 로그 기반 측정항목 개요를 참조하세요.

    로그 탐색기에서 로그 기반 알림 정책을 만들 수 있습니다. 자세한 내용 및 단계는 로그 탐색기를 사용하여 로그 기반 알림 정책 만들기를 참조하세요.

  • HTTP 상태 코드로 필터링

    이 기능을 사용 설정할 때 HTTP 상태 코드를 기준으로 인그레스 액세스 로그를 필터링하도록 선택하지 않은 경우에도 로그 탐색기에서 쿼리를 세분화하여 HTTP 상태 코드를 기준으로 필터링할 수 있습니다. 이 필터를 쿼리에 추가하려면 다음 형식을 사용합니다.

    status_code > XX && status code <= YY

    예를 들면 다음과 같습니다.

    status_code >= 500 && status_code < 504

  • 인그레스 상태 코드로 필터링

    HTTP 상태 코드로 필터링하는 것 외에도 ingress status_code 0를 필터링하는 쿼리를 만들 수 있습니다. 이 코드는 클라이언트가 서버 응답을 수신하지 못하도록 방해하는 네트워크 또는 연결 문제를 나타내는 경우가 많습니다.

로그 탐색기에서 제공되는 모든 기능에 대한 자세한 내용은 로그 탐색기를 사용하여 로그 보기를 참조하세요.

기능 사용 중지

Apigee 인스턴스 문제 해결을 완료한 후에는 인스턴스를 수정하여 이 기능을 사용 중지할 수 있습니다. 이 기능을 사용 중지하면 프로젝트의 ingress_instance 로그에 대한 액세스가 사용 중지되고 결제가 중지됩니다.

https://console.cloud.google.com/apigee 또는 API를 사용하여 이 기능을 사용 중지하도록 인스턴스를 수정할 수 있습니다.

Cloud 콘솔의 Apigee

Cloud 콘솔에서 Apigee를 사용하여 이 기능을 사용 중지하려면 다음 안내를 따르세요.

  • 브라우저에서 https://console.cloud.google.com/apigee를 엽니다.
  • 관리 > 인스턴스를 선택합니다.
  • 수정할 인스턴스를 클릭합니다.
  • 인스턴스 세부정보 페이지에서 수정을 클릭합니다.
  • 인스턴스 수정 페이지에서 로깅 사용 설정 전환 버튼을 클릭하여 이 기능을 사용 중지합니다.
  • 저장을 클릭합니다.
  • Apigee API

    curl "https://apigee.googleapis.com/v1/organizations/ORG_NAME/instances/INSTANCE_NAME?updateMask=access_logging_config.enabled,access_logging_config.filter" \
        -X PATCH -H "Authorization: Bearer $TOKEN" \
        -H 'Accept: application/json' -H 'Content-Type: application/json' \
        -d '{ 
          "name": "INSTANCE_NAME",
          "accessLoggingConfig": 
            { 
                "enabled": "false" 
            }
            }'
    명령어를 사용하여 인스턴스에서 이 기능을 사용 중지합니다.

    각 항목의 의미는 다음과 같습니다.

    • ORG_NAME은 Apigee 조직의 이름입니다.
    • INSTANCE_NAME은 수정할 Apigee 인스턴스의 이름입니다.