인스턴스 로그 보기

이 페이지에서는 Cloud Logging을 찾고 사용하여 Cloud SQL 인스턴스의 로그를 보고 쿼리하는 방법을 설명합니다.

Cloud SQL은 Cloud Logging을 사용합니다. 자세한 내용은 Cloud Logging 문서를 참조하고 Cloud SQL 샘플 쿼리를 검토하세요.

로그 보기

Cloud SQL 인스턴스 로그 항목의 로그를 보려면 다음 안내를 따르세요.

콘솔

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

    Cloud Logging으로 이동

  2. 페이지 상단에서 기존 Cloud SQL 프로젝트를 선택합니다.
  3. 쿼리 빌더에서 다음을 추가합니다.
    • 리소스: Cloud SQL Database를 선택합니다. 대화상자에서 Cloud SQL 인스턴스를 선택합니다.
    • 로그 이름: Cloud SQL 섹션으로 스크롤하고 인스턴스에 적합한 로그 파일을 선택합니다. 예를 들면 다음과 같습니다.
      • cloudsql.googleapis.com/postgres.log
    • 심각도: 로그 수준을 선택합니다.
    • 기간: 미리 설정을 선택하거나 커스텀 범위를 만듭니다.

gcloud

gcloud logging 명령어를 사용하여 로그 항목을 볼 수 있습니다. 아래 예시에서 PROJECT_ID를 바꿉니다. limit 플래그는 반환할 최대 항목 수를 나타내는 선택적 매개변수입니다.

gcloud logging read "resource.type=cloudsql_database" \
--project=PROJECT-ID \
--limit=10 \
--format=json

인스턴스 작업 로그 보기

작업 창에서 인스턴스에 대한 로그를 볼 수 있습니다. 작업 창은 인스턴스에 대해 수행된 모든 작업과 다음 정보를 로깅합니다.

  • 작업이 완료된 시간(현지 시간대로 보고됨)
  • 작업의 유형
  • 작업의 상태
  • 작업 결과를 설명하는 메시지

작업에 실패하면 이 메시지를 사용하여 문제를 해결할 수 있습니다.

인스턴스 작업 로그를 보는 방법

  1. Google Cloud Console에서 Cloud SQL 인스턴스 페이지로 이동합니다.

    Cloud SQL 인스턴스로 이동

  2. 인스턴스의 개요 페이지를 열려면 인스턴스 이름을 클릭합니다.
  3. 작업을 클릭하여 작업 로그를 표시하는 창으로 변경합니다.
참고: 작업 로그에는 psql 클라이언트와 같은 외부 관리 도구를 사용하여 수행한 작업이 포함되지 않습니다. Google Cloud Console, gcloud 명령줄 도구, Cloud SQL Admin API를 사용하여 수행한 사용자 관리 및 비밀번호 변경 작업만 작업 로그에 표시됩니다.

애플리케이션 로그 보기

Cloud SQL에 연결되는 애플리케이션은 로그를 다른 위치에 저장합니다.

App Engine(가변형 환경)

컴퓨팅 > App Engine > 서비스 아래:

  • 서비스 목록에서 서비스를 찾습니다.
  • 도구 드롭다운을 클릭합니다.
  • 로그 선택

Google Cloud Console의 작업 > 로깅 > 로그 탐색기 섹션에서 다음 쿼리를 사용합니다.

resource.type="gae_app"
resource.labels.module_id="default"

Cloud Run

Google Cloud 콘솔의 Cloud Run 로그 탐색기 섹션에서 로그를 확인합니다. Cloud Run은 Cloud SQL 인증 프록시의 오류 메시지만 보고합니다. 다음과 같이 쿼리를 사용합니다.

resource.type="cloud_run_revision"
resource.labels.service_name="$SERVICE_NAME"
resource.labels.revision_name="$REVISION_NAME"

Cloud SQL 인증 프록시

작업 > 로깅 > 로그 탐색기 아래에서 다음 쿼리를 사용합니다.

log_id("appengine.googleapis.com/cloud-sql-proxy")

문제 해결

문제 문제 해결
Logging은 Cloud SQL 인스턴스에서 많은 CPU와 메모리를 사용합니다. 로깅을 조정해야 합니다.

log_statement 플래그를 '없음'으로 설정하고 logging_collector 플래그를 '꺼짐'으로 설정할 수 있습니다. 로깅이 계속 발생하는 경우 조정할 수 있는 다른 로그 관련 플래그가 있을 수 있습니다. 인스턴스를 수정하여 이러한 플래그를 수정할 수 있습니다.

감사 로그를 찾을 수 없음 데이터 액세스 로그는 작업이 사용자가 만든 데이터를 생성 또는 수정하거나 읽는 인증된 사용자 주도 API 호출인 경우 또는 작업이 리소스의 구성 파일 또는 메타데이터에 액세스하는 경우에만 작성됩니다.
로그에 작업 정보가 없음 작업에 대한 자세한 정보를 찾으려 합니다.

예를 들어 사용자가 삭제되었는데 누가 삭제했는지 알 수 없습니다. 로그는 작업이 시작되었음을 표시하지만 그 이상의 정보를 제공하지 않습니다. 이와 같은 자세한 개인 식별 정보(PII)를 로깅하려면 감사 로깅을 사용 설정해야 합니다.

로그 파일을 읽기 어려움 로그를 json 또는 텍스트로 보는 것이 좋습니다.gcloud logging read 명령어를 Linux 후처리 명령어와 함께 사용하여 로그를 다운로드할 수 있습니다.

로그를 JSON으로 다운로드하려면 다음 명령어를 실행합니다.

gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d" \
> downloaded-log.json
    

로그를 TEXT로 다운로드하려면 다음 명령어를 실행합니다.

gcloud logging read \
"resource.type=cloudsql_database \
AND logName=projects/PROJECT_ID \
/logs/cloudsql.googleapis.com%2FLOG_NAME" \
--format json \
--project=PROJECT_ID \
--freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) \
| .textPayload' \
--order=asc
> downloaded-log.txt
   
PostgreSQL 로그에서 쿼리 로그를 찾을 수 없음 pgaudit 플래그를 사용 설정해야 합니다.
  1. 터미널에서 데이터베이스에 연결합니다.
    gcloud sql connect INSTANCE_NAME
          
  2. 다음 명령어를 실행하여 확장 프로그램을 만듭니다.
    CREATE EXTENSION pgaudit;
          
  3. 데이터베이스를 종료하고 터미널에서 다음 명령어를 실행합니다.
    gcloud sql instances patch INSTANCE_NAME \
    --database-flags=cloudsql.enable_pgaudit=on,pgaudit.log=all