인스턴스 로그 보기

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

Cloud Logging은 Cloud SQL 인스턴스에서 로그 데이터를 자동으로 수집합니다. Logging을 사용하여 로그 데이터를 쿼리, 조회, 분석하면 문제를 해결하고 모니터링 가능성을 개선할 수 있습니다. 자세한 내용은 Cloud Logging 문서를 참조하고 Cloud SQL 샘플 쿼리를 검토하세요.

시작하기 전에

로그 탐색기를 사용하여 로그 항목을 보는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

  • _Required 버킷의 로그 항목 및 _Default 버킷의 _Default 뷰의 로그 항목을 보거나 로그 범위를 선택하려면 프로젝트, 폴더 또는 조직의 로그 뷰어 (roles/logging.viewer)를 이용하세요.
  • _Required 및 _Default 버킷의 모든 로그 항목 보기: 프로젝트, 폴더 또는 조직의 비공개 로그 뷰어 (roles/logging.privateLogViewer)

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.

로그 보기

general_log 플래그를 사용 설정하고 log_output 플래그를 FILE로 설정하면 일반 로그 파일에서 최종 사용자가 직접 실행한 SQL 쿼리를 포함하여, 데이터베이스 인스턴스에서 실행된 SQL 쿼리를 볼 수 있습니다.

Cloud SQL 인스턴스의 로그 항목을 보려면 다음을 수행합니다.

콘솔

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

    Cloud Logging으로 이동

  2. Cloud SQL 프로젝트를 선택합니다.
  3. 쿼리 창에서 다음을 선택합니다.
    • 모든 리소스: Cloud SQL Database를 선택합니다. 대화상자에서 Cloud SQL 인스턴스를 선택합니다.
    • 모든 로그 이름: Cloud SQL 섹션으로 이동하여 인스턴스에 적합한 로그 파일을 선택합니다. 예를 들면 다음과 같습니다.
      • cloudsql.googleapis.com/mysql-general.log
      • cloudsql.googleapis.com/mysql.err
    • 모든 심각도: 심각도 수준을 선택합니다. 예를 들어 심각도 수준이 Error 이상인 로그를 보려면 Error을 선택합니다.
    • 기간 선택기: 사전 설정 시간 옵션을 선택하거나, 커스텀 시작 및 종료 시간을 지정하거나, 특정 타임스탬프를 중심으로 기간을 정합니다.

gcloud

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

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

인스턴스 작업 로그 보기

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

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

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

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

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

    Cloud SQL 인스턴스로 이동

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

애플리케이션 로그 보기

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

App Engine(가변형 환경)

App Engine 서비스의 로그를 보려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서 App Engine 버전 페이지로 이동합니다.

    서비스로 이동

  2. 표에서 서비스를 선택하고 진단 열에서 로그를 클릭합니다.

    App Engine 서비스의 로그를 검색하는 쿼리와 함께 로그 탐색기로 리디렉션됩니다.

Google Cloud 콘솔의 로그 탐색기 섹션에서 App Engine 로그를 보려면 다음과 같은 쿼리를 사용합니다.

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

Cloud Run

Google Cloud 콘솔의 로그 탐색기 섹션에서 Cloud Run 로그를 보려면 다음과 같은 쿼리를 사용합니다.

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

Cloud Run은 Cloud SQL 인증 프록시의 오류 메시지만 보고합니다.

Cloud SQL 인증 프록시

Google Cloud 콘솔의 로그 탐색기 섹션에서 Cloud SQL 인증 프록시 로그를 보려면 다음과 같은 쿼리를 사용합니다.

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

감사 로그 보기

Cloud SQL은 Cloud 감사 로그를 작성하여 리소스 전반의 관리 활동과 데이터 액세스를 기록합니다. 다음과 같은 유형의 Cloud SQL 인스턴스에 대한 감사 로그를 볼 수 있습니다.

  • 관리자 활동: 리소스의 구성 또는 메타데이터를 수정하는 사용자 주도 API 호출 또는 기타 작업으로 작성된 로그 항목입니다. 이러한 로그를 비활성화할 수 없습니다.
  • 데이터 액세스: 리소스의 구성 또는 메타데이터를 읽는 API 호출로 작성된 로그 항목입니다. 이러한 로그에는 사용자 제공 데이터를 읽거나 쓰는 작업도 포함됩니다. 데이터 액세스 감사 로그를 작성하려면 사용 설정해야 합니다.
  • 시스템 이벤트: 리소스 구성을 수정하는 Google Cloud 시스템 및 관리형 서비스 에이전트에서 작성한 로그 항목입니다. 이러한 로그를 비활성화할 수 없습니다.

감사된 메서드의 전체 목록을 포함하여 Cloud SQL 감사 로그를 보는 방법에 대한 자세한 내용은 MySQL용 Cloud SQL 감사 로깅을 참조하세요.

가격 책정

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

문제 해결

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

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

Logging이 디스크 공간을 많이 사용함 디스크 공간을 사용하는 로그 파일에는 재실행 로그, 일반 로그, 바이너리 로그가 있습니다.

데이터베이스에 연결하고 다음 명령어를 실행하여 각 유형에 대한 세부정보를 확인합니다.

SHOW VARIABLES LIKE 'innodb_log_file%';

SELECT ROUND(SUM(LENGTH(argument)/POW(1024,2),2)
AS GB from mysql.general_log;

SHOW BINARY LOGS;
    
로그 파일을 읽기 어려움 로그를 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