查看執行個體記錄檔

本頁面說明如何使用 Cloud Logging 查看及查詢 Cloud SQL 執行個體的記錄。

Cloud Logging 會自動收集 Cloud SQL 執行個體的記錄資料。您可以使用 Logging 查詢、查看及分析記錄資料,協助疑難排解問題並提升觀測能力。詳情請參閱 Cloud Logging 說明文件,並查看 Cloud SQL 查詢範例。

事前準備

如要取得使用 Logs Explorer 查看記錄項目所需的權限,請要求管理員授予您下列 IAM 角色:

  • 如要查看 _Required bucket 中的記錄項目,以及 _Default bucket 上 _Default 檢視畫面中的記錄項目,或選取記錄範圍: 專案、資料夾或組織的記錄檢視器 (roles/logging.viewer)。
  • 如要查看 _Required 和 _Default bucket 中的所有記錄項目:專案、資料夾或組織的私人記錄檢視者 (roles/logging.privateLogViewer)。

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

您或許也能透過自訂角色或其他預先定義的角色,取得必要權限。

查看記錄

如要查看 Cloud SQL 執行個體的記錄項目,請按照下列步驟操作:

控制台

  1. 前往 Google Cloud 控制台的「Cloud Logging」頁面。

    前往 Cloud Logging

  2. 選取 Cloud SQL 專案。
  3. 在「Query」(查詢) 窗格中,選取下列選項:
    • 所有資源:選取「Cloud SQL 資料庫」。在對話方塊中選取 Cloud SQL 執行個體。
    • 所有記錄名稱:前往 Cloud SQL 專區,選取執行個體適用的記錄檔。例如:
      • cloudsql.googleapis.com/sqlagent.out
      • cloudsql.googleapis.com/sqlserver.err
    • 所有嚴重程度:選取嚴重性等級。例如,選取 Error 即可查看嚴重性等級至少為 Error 的記錄。
    • 時間範圍選取器:選取預設時間選項、指定自訂開始和結束時間,或以特定時間戳記為中心設定時間範圍。

gcloud

使用 gcloud logging 指令查看記錄項目。在以下範例中,請替換 PROJECT_ID。limit 旗標是選用參數,用於指定要傳回的項目數量上限。

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

查看執行個體作業記錄

您可以在「Operations」(作業) 窗格中查看執行個體的記錄。「Operations」(作業) 窗格會記錄在執行個體上執行的每項作業,並提供下列資訊:

  • 作業完成時間,以您當地的時區報告。
  • 作業類型。
  • 作業狀態。
  • 說明作業結果的訊息。

如果作業失敗,您可以使用訊息排解問題。

如要查看執行個體作業記錄,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面。

    前往「Cloud SQL Instances」(Cloud SQL 執行個體) 頁面

  2. 點選執行個體名稱,開啟執行個體的「總覽」頁面。
  3. 前往「Operations and logs」(作業和記錄) 窗格,查看作業記錄。
注意:作業記錄不包含使用外部管理工具 (例如 SQL Server 指令列工具) 執行的作業。 只有使用Google Cloud 控制台、gcloud CLI 或 Cloud SQL Admin API 執行的使用者管理和密碼變更作業,才會顯示在作業記錄中。

查看應用程式記錄檔

連線至 Cloud SQL 的應用程式會將記錄檔儲存在不同位置。

App Engine (彈性環境)

如要查看 App Engine 服務的記錄,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 App Engine「Services」(服務) 頁面:

    前往「服務」

  2. 從表格中選取服務,然後按一下「診斷」欄中的「記錄檔」。

    系統會將您重新導向至 Logs Explorer,並執行查詢來擷取 App Engine 服務的記錄。

如要在Google Cloud 控制台的「Logs Explorer」部分查看 App Engine 記錄,請使用類似下列的查詢:

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

Cloud Run

如要在Google Cloud 控制台的「Logs Explorer」部分查看 Cloud Run 記錄,請使用類似下列的查詢:

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

請注意,Cloud Run 只會回報 Cloud SQL Auth Proxy 的錯誤訊息。

Cloud SQL Auth Proxy

如要在Google Cloud 控制台的「Logs Explorer」部分查看 Cloud SQL Auth Proxy 記錄,請使用類似下列的查詢:

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

查看稽核記錄

Cloud SQL 會寫入 Cloud 稽核記錄,記錄各項資源的管理活動和資料存取。您可以查看 Cloud SQL 執行個體的下列稽核記錄類型:

  • 管理員活動:使用者驅動的 API 呼叫或其他動作,修改資源設定或中繼資料時寫入的記錄項目。您無法停用這些記錄。
  • 資料存取:由 API 呼叫寫入的記錄項目,用於讀取資源的設定或中繼資料。這類記錄也包含讀取或寫入使用者提供資料的作業。如要寫入資料存取稽核記錄,您必須啟用這類記錄。
  • 系統事件:由 Google Cloud 系統和代管服務代理寫入的記錄項目,用於修改資源設定。您無法停用這些記錄。

如要進一步瞭解如何查看 Cloud SQL 稽核記錄,包括稽核方法的完整清單,請參閱「SQL Server 適用的 Cloud SQL 稽核記錄」。

定價

如要進一步瞭解 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