인스턴스 로그 보기

이 페이지에서는 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/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 콘솔, gcloud CLI 또는 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")

감사 로그 보기

다음과 같은 유형의 Cloud SQL 인스턴스에 대한 감사 로그를 볼 수 있습니다.

  • 관리자 활동: 메타데이터나 구성 정보를 작성하는 관리자 작업을 포함합니다. 이러한 로그를 비활성화할 수 없습니다.
  • 데이터 액세스: 메타데이터나 구성 정보를 읽는 관리자 작업을 포함합니다. 이러한 로그에는 사용자 제공 데이터를 읽거나 쓰는 작업도 포함됩니다. 데이터 액세스 감사 로그를 수신하려면 명시적으로 사용 설정해야 합니다.
  • 시스템 이벤트: Google Cloud에서 리소스 구성을 수정하는 자동화된 작업을 식별합니다. 이러한 로그를 비활성화할 수 없습니다.

관리자 활동, 데이터 액세스, 시스템 이벤트 감사 로그를 보는 방법에 대한 자세한 내용은 로그 보기를 참조하세요.

가격 책정

Cloud Logging 가격 책정에 대한 자세한 내용은 Cloud Logging 가격 책정 요약을 참조하세요.

문제 해결

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

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

일부 로그는 SQL Server용 Cloud SQL 인스턴스의 error.log 로그에서 필터링됩니다. 필터링된 로그는 타임스탬프가 없는 AD 로그를 포함하며 다음을 포함합니다. Login failed for user 'x'. Reason: Token-based server access validation failed with an infrastructure error. Login lacks connect endpoint permission. [CLIENT: 127.0.0.1] 이러한 로그는 잠재적으로 혼란을 야기할 수 있으므로 필터링됩니다.
로그 파일을 읽기 어려움 로그를 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