직렬 포트 출력 보기


가상 머신(VM) 인스턴스에는 4개의 가상 직렬 포트가 있습니다. 인스턴스의 운영체제, BIOS, 기타 시스템 수준 항목은 보통 직렬 포트에 출력을 쓰므로 직렬 포트 출력은 장애, 부팅 실패, 시작 또는 종료 문제를 해결하는 데 유용합니다.

이 페이지에서는 인스턴스가 중지되거나 삭제된 후에도 Cloud Logging을 사용하여 직렬 포트 출력을 보존하는 방법을 포함하여 직렬 포트 출력을 보는 방법을 설명합니다. 인스턴스가 실행 중일 때 직렬 포트에 명령어를 전송해야 하는 경우 직렬 콘솔과 상호작용을 참조하세요.

직렬 포트 출력은 Google Cloud 콘솔, gcloud CLI, REST를 통해 액세스할 수 있지만 VM 인스턴스가 실행되는 동안에만 액세스할 수 있습니다. 로그는 포트당 최근 1MB 출력으로 제한됩니다.

직렬 포트 출력 로깅을 사용 설정하면 Cloud Logging에서 매월 첫 50기가바이트(GiB)의 로깅을 무료로 제공하고 30일 동안 로그를 유지합니다.

시작하기 전에

  • Cloud Logging에서 직렬 포트 출력을 로깅하려면 Cloud Logging에 익숙해야 합니다.
  • 아직 인증을 설정하지 않았다면 설정합니다. 인증은 Google Cloud 서비스 및 API에 액세스하기 위해 ID를 확인하는 프로세스입니다. 로컬 개발 환경에서 코드 또는 샘플을 실행하려면 다음 옵션 중 하나를 선택하여 Compute Engine에 인증하면 됩니다.

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      로컬 개발 환경에서 이 페이지의 REST API 샘플을 사용하려면 gcloud CLI에 제공한 사용자 인증 정보를 사용합니다.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      자세한 내용은 Google Cloud 인증 문서의 REST 사용을 위한 인증을 참고하세요.

직렬 포트 출력 로깅 사용 설정 및 중지

프로젝트 또는 인스턴스 수준 메타데이터를 설정하여 인스턴스가 Cloud Logging에 직렬 포트 출력을 전송할지 여부를 제어할 수 있습니다. 또한 조직 정책을 설정하여 조직의 모든 사용자를 대상으로 이 기능을 사용 중지할 수도 있습니다.

프로젝트 및 인스턴스 메타데이터 설정

기본적으로 Cloud Logging에 대한 직렬 포트 출력 로깅이 중지되어 있습니다. Cloud Logging에 직렬 포트 출력 로깅 기능이 조직에서 제한되지 않으면 serial-port-logging-enable 메타데이터 항목을 true 또는 false로 설정하여 프로젝트와 개별 VM 인스턴스의 직렬 포트 출력 로깅을 사용 설정하거나 중지할 수 있습니다.

프로젝트 차원 메타데이터 항목을 설정하면 프로젝트의 모든 VM 인스턴스가 해당 설정을 암시적으로 상속합니다. 인스턴스 메타데이터 항목을 설정하면 프로젝트 설정과 관계없이 해당 VM에만 메타데이터 항목이 사용 설정됩니다.

Google Cloud Console, gcloud CLI, Compute Engine API를 사용하여 메타데이터 항목을 설정할 수 있습니다. 자세한 내용은 커스텀 메타데이터 설정을 참조하세요.

예를 들어 다음 gcloud CLI 명령어는 프로젝트의 Cloud Logging에 직렬 포트 출력 로깅을 사용 설정합니다.

gcloud compute project-info add-metadata \
    --metadata serial-port-logging-enable=true

마찬가지로 다음 gcloud CLI 명령어는 특정 인스턴스에 대해 Cloud Logging에 직렬 포트 출력 로깅을 사용 설정합니다.

gcloud compute instances add-metadata INSTANCE_NAME \
    --metadata serial-port-logging-enable=true

Cloud Logging에 직렬 포트 출력 로깅을 사용 중지하려면 serial-port-logging-enablefalse로 설정합니다.

gcloud compute instances add-metadata INSTANCE_NAME \
    --metadata serial-port-logging-enable=false

제외 필터

Cloud Logging 내에서 제외 필터를 만들어 로그 탐색기에서 특정 직렬 포트 항목을 삭제할 수 있습니다. 예를 들어 프로젝트 차원 메타데이터 항목이 serial-port-logging-enable=true로 설정된 경우 고급 필터를 사용하여 특정 VM 인스턴스에 대해 직렬 포트 출력 로깅을 사용 중지할 수 있습니다.

logName = "projects/PROJECT_ID/logs/serialconsole.googleapis.com%2Fserial_port_1_output"
resource.type = "gce_instance"
resource.labels.instance_id != "INSTANCE_1_ID"
resource.labels.instance_id != "INSTANCE_2_ID"

조직 정책 설정

Google Cloud 리소스의 특정 구성을 제한하는 조직 정책을 설정하여 조직 전체에서 Cloud Logging에 직렬 포트 출력 로깅 기능을 중지할 수 있습니다. 구체적으로 constraints/compute.disableSerialPortLogging과 같은 부울 제약조건을 설정합니다. 자세한 내용은 조직 정책 만들기 및 관리를 참조하세요.

constraints/compute.disableSerialPortLoggingtrue로 설정하여 직렬 포트 로깅을 사용 중지해도 소급 적용되지 않습니다. Cloud Logging에 직렬 포트 로깅을 사용 설정하는 메타데이터 항목이 있는 기존 VM 인스턴스의 경우 해당 인스턴스에 대해 메타데이터를 재설정하지 않는 한 Cloud Logging에 계속 로깅됩니다.

이러한 조직 제약조건을 true로 설정한 후에는 조직 내 어느 인스턴스에도 Cloud Logging에 대한 직렬 포트 출력 로깅을 사용 설정하도록 인스턴스 또는 프로젝트 메타데이터를 설정할 수 없습니다.

직렬 포트 출력 보기

콘솔

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  2. 직렬 포트 출력을 보려는 VM 인스턴스를 선택합니다.

  3. 로그에서 직렬 포트 1, 2, 3 또는 4를 클릭합니다. 시스템 수준 항목은 일반적으로 직렬 콘솔이라고도 하는 첫 번째 직렬 포트(포트 1)를 사용합니다.

gcloud

gcloud compute instances get-serial-port-output 명령어를 사용합니다.

gcloud compute instances get-serial-port-output INSTANCE_NAME \
  --port PORT \
  --start START \
  --zone ZONE

다음을 바꿉니다.

  • INSTANCE_NAME: 인스턴스 이름입니다.
  • PORT: 출력을 보려는 포트의 번호(1, 2, 3 또는 4)입니다. 시스템 수준 항목은 일반적으로 직렬 콘솔이라고도 하는 첫 번째 직렬 포트(포트 1)를 사용합니다. 기본적으로 첫 번째 직렬 포트의 출력이 반환됩니다.
  • START: 반환되기를 원하는 첫 번째 바이트의 바이트 색인(0부터 시작)입니다. 너무 길어서 한 번에 반환할 수 없는 이전 요청의 출력을 계속 받으려면 이 플래그를 사용하세요.
  • ZONE: 인스턴스의 영역

REST

API에서 instances.getSerialPortOutput 메서드에 대한 get 요청을 만듭니다.

GET https://compute.googleapis.com/compute/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/serialPort

Cloud Logging

  1. Cloud Logging에 직렬 포트 로깅 사용 설정
  2. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스 페이지로 이동

  3. 시작 에이전트 로그를 보려는 VM 인스턴스를 선택합니다.

  4. 로그에서 Cloud Logging을 클릭하여 Cloud Logging 로그를 봅니다.

    Cloud Logging을 클릭하여 Cloud Logging 로그를 봅니다.

  5. 모든 로그 드롭다운 메뉴를 펼치고 보려는 직렬 포트 출력을 선택합니다. 시스템 수준 항목은 일반적으로 직렬 콘솔이라고도 하는 첫 번째 직렬 포트(포트 1)를 사용합니다. 드롭다운 메뉴에 포트가 나타나지 않으면 사용할 수 있는 출력이 없는 것입니다.

  6. 원하는 경우 모든 로그 수준 드롭다운 메뉴를 펼쳐서 보려는 심각도 수준 아래에 있는 로그를 숨깁니다. 예를 들어 '정보' 로그 수준을 선택하면 '디버그' 로그 항목이 숨겨집니다. '디버그' 항목은 일반적으로 부팅 시 BIOS에서만 사용합니다.

필터링에 대한 정보를 포함한 자세한 내용은 로그 탐색기 사용을 참조하세요.

UTF8 이외 문자 처리

직렬 포트 출력은 오픈소스 Abseil C++ 라이브러리의 CHexEscape() 메서드를 사용하여 이스케이프 처리되므로 UTF8 이외의 문자는 16진수 문자열로 인코딩됩니다. 해당하는 CUnescape() 메서드를 사용하여 직렬 포트로 전송된 정확한 출력을 가져올 수 있습니다.

일반적인 직렬 포트 오류

다음은 직렬 포트 출력에서 발생할 수 있는 일반적인 오류의 예시입니다.

IPv6 구성 오류

IPv6이 구성되지 않으면 OS 저널 로그에서 다음 오류가 발생할 수 있습니다.

ERROR addresses.go:301 Error configuring IPv6: Internet Systems Consortium DHCP Client 4.2.5

이 오류를 무시합니다. 이 오류는 VM에 영향을 주지 않습니다.