로그 및 측정항목

로깅

Cloud NAT 로깅을 사용하면 NAT 연결과 오류를 로깅할 수 있습니다. Cloud NAT 로깅을 사용 설정하면 다음과 같은 시나리오마다 로그 항목이 하나씩 생성될 수 있습니다.

  • NAT를 사용하는 네트워크 연결이 생성된 경우
  • NAT에 사용 가능한 포트가 없어 패킷이 삭제된 경우

두 종류의 이벤트를 모두 로깅하거나 둘 중 하나만 로깅할 수 있습니다.

생성된 로그는 Cloud Logging으로 전송됩니다.

사양

다음 사양은 Cloud NAT 로깅에 적용됩니다.

  • Cloud NAT 로깅은 TCP 및 UDP 트래픽만 처리합니다.

  • Cloud NAT 로깅은 패킷이 이그레스(아웃바운드) TCP 및 UDP 패킷인 경우에만 삭제된 패킷을 로깅합니다. 삭제된 수신 패킷을 로깅하지 않습니다. 예를 들어 어떤 이유로든 아웃바운드 요청에 대한 인바운드 응답이 삭제된 경우에는 오류가 로깅되지 않습니다.

각 VM 인스턴스는 로그 항목을 단위 시간별로 vCPU 수에 비례해서 특정 수 만큼만 생성할 수 있습니다. VM은 vCPU별로 로그 항목을 초당 50~100개까지 생성할 수 있습니다.

  • 이러한 비율 기준점은 로깅 가능한 이벤트 수에 영향을 미칩니다. 일부 이벤트가 필터링된 경우에도 해당 이벤트가 발생하면 가능한 로그 항목 수에 포함되어 계산됩니다. 오류로만 또는 네트워크 주소 변환 연결로만 로그를 제한한다고 해서 본 로그 항목 수가 반드시 증가하지는 않습니다. 예를 들어 성공한 연결만 로깅한 경우에도 과도하게 실패한 연결 시도 및 NAT 오류 기간이 성공한 연결 로그 항목 수를 계속 제한할 수 있습니다.

  • Cloud NAT 로깅은 모든 단일 패킷을 로깅하지 않습니다. VM의 비율 기준점에 도달하지 않은 경우에도 일부 조건으로 인해 로그에서 이벤트가 생략될 수 있습니다. 정보에 입각한 결정을 내리기 위해서는 Cloud NAT 로깅에 있는 항목 정보를 사용해야 하지만 항목 부재가 이벤트가 발생하지 않았음을 의미한다고 가정해서는 안 됩니다.

로깅 구성

Cloud NAT 로깅을 구성하려면 다음 단계를 수행합니다.

로깅 사용 설정

로깅이 사용 설정되면 수집된 모든 로그가 기본적으로 Cloud Logging으로 전송됩니다. 필터링을 사용하여 특정 로그만 전송되게 할 수 있습니다.

또한 NAT 게이트웨이를 만들거나 수정할 때 이러한 값을 지정할 수 있습니다. 다음 안내에서는 기존 NAT 게이트웨이에 로깅을 사용 설정하는 방법을 보여줍니다.

콘솔

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

    Cloud NAT로 이동

  2. NAT 게이트웨이를 클릭합니다.

  3. 수정을 클릭합니다.

  4. 고급 구성을 클릭합니다.

  5. Logging 섹션에서 다음 중 하나를 선택합니다.

    • 로깅 안 함: 로깅을 사용 중지합니다.
    • 변환 및 오류: 모든 로그를 Logging으로 전송합니다.
    • 변환만: 연결이 생성된 경우에만 로그를 전송하며 삭제된 패킷을 로깅하지 않습니다.
    • 오류만: 사용할 수 있는 포트가 없어 패킷이 삭제될 때 로그를 전송하며 새 연결을 로깅하지 않습니다.
  6. 저장을 클릭합니다.

gcloud

gcloud compute routers nats update 명령어를 사용합니다.

다음 명령어는 기존 NAT 게이트웨이에 로깅을 사용 설정합니다.

각 명령어에서 다음을 바꿉니다.

  • NAT_GATEWAY: NAT 게이트웨이 이름
  • ROUTER_NAME: NAT 게이트웨이를 호스팅하는 Cloud Router의 이름
  • REGION: Cloud Router 리전

네트워크 주소 변환 이벤트와 오류를 로깅하려면 다음 명령어를 실행합니다.

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --enable-logging

네트워크 주소 변환 이벤트만 로깅하려면 다음 명령어를 실행합니다.

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --enable-logging \
    --log-filter=TRANSLATIONS_ONLY

오류만 로깅하려면 다음 명령어를 실행합니다.

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --enable-logging \
    --log-filter=ERRORS_ONLY

로그 필터 삭제

설정된 필터가 있으면 이 필터를 삭제할 수 있습니다. 로깅이 사용 설정된 경우 로그 필터를 삭제하면 네트워크 주소 변환 이벤트와 오류가 모두 로깅됩니다.

콘솔

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

    Cloud NAT로 이동

  2. NAT 게이트웨이를 클릭합니다.

  3. 수정을 클릭합니다.

  4. 고급 구성을 클릭합니다.

  5. Logging 섹션에서 변환 및 오류를 선택합니다.

  6. 저장을 클릭합니다.

gcloud

gcloud compute routers nats update 명령어를 사용합니다. 다음 명령어의 --log-filter=ALL 플래그는 모든 로그가 허용되도록 로그 필터를 설정합니다.

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --log-filter=ALL

다음을 바꿉니다.

  • NAT_GATEWAY: NAT 게이트웨이 이름
  • ROUTER_NAME: NAT 게이트웨이를 호스팅하는 Cloud Router의 이름
  • REGION: Cloud Router 리전

로깅 사용 중지

로깅을 사용 중지하려면 다음을 수행합니다.

콘솔

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

    Cloud NAT로 이동

  2. NAT 게이트웨이를 클릭합니다.

  3. 수정을 클릭합니다.

  4. 고급 구성을 클릭합니다.

  5. Logging 섹션에서 로깅 안 함을 선택합니다.

  6. 저장을 클릭합니다.

gcloud

gcloud compute routers nats update 명령어를 사용합니다.

gcloud compute routers nats update NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION \
    --no-enable-logging

다음을 바꿉니다.

  • NAT_GATEWAY: NAT 게이트웨이 이름
  • ROUTER_NAME: NAT 게이트웨이를 호스팅하는 Cloud Router의 이름
  • REGION: Cloud Router 리전

로깅 상태 확인

로깅 상태를 확인하려면 다음을 수행합니다.

콘솔

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

    Cloud NAT로 이동

  2. NAT 게이트웨이를 클릭합니다.

  3. 수정을 클릭합니다.

  4. 고급 구성을 클릭합니다.

  5. Logging 섹션에서 선택 항목을 검사합니다.

gcloud

gcloud compute routers nats describe NAT_GATEWAY \
    --router=ROUTER_NAME \
    --region=REGION

다음을 바꿉니다.

  • NAT_GATEWAY: NAT 게이트웨이 이름
  • ROUTER_NAME: NAT 게이트웨이를 호스팅하는 Cloud Router의 이름
  • REGION: Cloud Router 리전

로그 보기

NAT 로그를 보려면 다음을 수행합니다.

콘솔

  1. Google Cloud 콘솔에서 로그 탐색기 페이지로 이동합니다.

    로그 탐색기로 이동

    • 모든 NAT 로그를 보려면 로그 이름 메뉴에서 Cloud NAT 게이트웨이를 선택합니다.
    • 한 리전의 로그만 보려면 로그 이름 메뉴에서 Cloud NAT 게이트웨이를 선택한 후 커서를 오른쪽으로 밀어 리전을 선택합니다.
    • 한 게이트웨이의 로그만 보려면 로그 이름 메뉴에서 Cloud NAT 게이트웨이를 선택한 후 커서를 오른쪽으로 밀어 리전을 선택합니다. 다시 커서를 왼쪽으로 밀어 단일 게이트웨이를 선택합니다.

또는 쿼리 편집기에 다음 표현식을 입력합니다.

resource.type="nat_gateway"
logName="projects/{#project_id}/logs/compute.googleapis.com%2Fnat_flows"

gcloud

gcloud logging read 'resource.type=nat_gateway' \
    --limit=10 \
    --format=json

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

  • resource.type=nat_gateway: 출력을 NAT 게이트웨이로 제한합니다.
  • --limit=10: 출력을 항목 10개로 제한합니다. 다른 값을 입력하여 항목을 더 많이 또는 더 적게 확인하거나 값을 완전히 생략하여 로그를 연속된 스크롤로 확인할 수 있습니다.
  • --format=json: 출력을 JSON 형식으로 표시합니다.

추가 옵션은 로그 항목 읽기를 참조하세요.

리소스 로그의 로그 기반 측정항목 내보내기를 구성할 수 있습니다.

로깅되는 내용

Cloud NAT 로그 항목에는 NAT 트래픽을 모니터링하고 디버깅하는 데 유용한 정보가 포함됩니다. 로그 항목에는 다음과 같은 유형의 정보가 포함되어 있습니다.

  • 대부분의 Google Cloud 로그에 표시되는 일반 정보(예: 심각도, 프로젝트 ID, 프로젝트 번호, 타임스탬프)
  • Cloud NAT와 관련된 특정 정보. 일부 로그 필드에는 자체적으로 필드가 여러 개인 항목이 포함됩니다. 다음 표에서는 이러한 항목과 필드를 설명합니다.

로그 필드

필드 의미
connection 객체(NatIpConnection) 이 연결의 소스 VM IP 주소 및 포트, NAT 소스 IP 주소 및 포트, 대상 IP 주소 및 포트, IP 주소 프로토콜을 설명하는 7-튜플입니다.
allocation_status enum 이 연결이 성공적으로 할당 또는 삭제되었는지 여부를 나타냅니다. OK 또는 DROPPED 중 하나입니다.
gateway_identifiers 객체(NatGateway) 연결에 사용된 NAT 게이트웨이 구성입니다.
endpoint 객체(InstanceDetails) VM 인스턴스 세부정보입니다. 공유 VPC 구성에서 project_id는 서비스 프로젝트에 해당합니다.
vpc 객체(VpcDetails) 가상 프라이빗 클라우드(VPC) 네트워크 세부정보입니다. 공유 VPC 구성에서 project_id는 호스트 프로젝트의 프로젝트 ID에 해당합니다.
destination 객체(DestinationDetails) 연결 대상의 세부정보입니다.

NatIpConnection 필드 형식

필드 유형 설명
src_ip 문자열 소스 IP 주소
src_port