Cloud SQL 로깅

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

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

로그 보기

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

콘솔

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

    Cloud Logging으로 이동

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

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. 작업을 클릭하여 작업 로그를 표시하는 창으로 변경합니다.
참고: 작업 로그에는 SQL Server 명령줄 도구와 같은 외부 관리 도구를 사용하여 수행한 작업이 포함되지 않습니다. 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 Console의 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")

문제 해결하기

자세한 내용을 보려면 표의 링크를 클릭하세요.

문제 설명 문제 원인 해결 방법
로깅이 CPU와 메모리를 많이 사용합니다. 로깅을 조정해야 합니다. 로깅 리소스 사용량을 조정해 보세요.
감사 로그를 찾을 수 없음 사용자 인증 문제입니다. 사용자 역할 및 권한을 확인합니다.
로그에 작업 정보가 없음 감사 로그가 사용 설정되지 않았습니다. 감사 로깅을 사용 설정합니다.
로그 파일을 읽기 어려움 로그를 json 또는 텍스트로 보려고 합니다. gcloud logging 명령어를 사용하세요.

로깅이 CPU와 메모리를 많이 사용함

로깅이 CPU와 메모리를 많이 사용합니다.

문제 원인

로깅 사용량을 조정해야 합니다.

해결 방법

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


감사 로깅

Cloud SQL의 감사 로깅을 사용 설정했지만 Cloud Logging에서 감사 로그를 찾을 수 없습니다.

문제 원인

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

해결 방법

작업을 수행하는 사용자의 역할과 권한을 확인합니다.


로그에서 작업 정보를 찾을 수 없음

작업에 대한 자세한 정보를 찾으려 합니다. 예를 들어 사용자가 삭제되었는데 누가 삭제했는지 알 수 없습니다. 로그는 작업이 시작되었음을 표시하지만 그 이상의 정보를 제공하지 않습니다.

문제 원인

이와 같은 자세한 개인 식별 정보(PII)를 로깅하려면 감사 로깅을 사용 설정해야 합니다.

해결 방법

프로젝트에서 감사 로깅을 사용 설정합니다.


로그 파일을 읽기 어려움

로그 탐색기에서 로그를 읽기 어렵습니다.

문제 원인

로그를 JSON 또는 텍스트 형식으로 로컬로 다운로드하려고 합니다.

해결 방법:

gcloud logging read 명령어를 Linux 후처리 명령어와 함께 사용하여 로그를 다운로드할 수 있습니다.

JSON으로 다운로드하려면 다음 안내를 따르세요.

gcloud logging read "resource.type=cloudsql_database AND logName=projects/PROJECT-ID/logs/cloudsql.googleapis.com%2FLOGFILE-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%2FLOGFILE-NAME" --format json --project=PROJECT-ID--freshness="1d"| jq -rnc --stream 'fromstream(1|truncate_stream(inputs)) | .textPayload' > downloaded-log.txt