本文說明如何在執行 Oracle Database 工作負載的 Compute Engine 執行個體上,安裝、設定及驗證運算工作負載代理。
代理程式會查詢 Oracle Database 效能檢視畫面 (例如 V$DATABASE、V$INSTANCE 和 V$DATAGUARD_STATS) 和資料字典檢視畫面 (例如 DBA_DATA_FILES 和 DBA_FREE_SPACE),藉此收集各種 Oracle 指標。這些指標隨後會傳送至 Cloud Monitoring,供您查看及分析。請參閱「支援的指標」一文。
事前準備
安裝運算工作負載代理來監控 Oracle Database 工作負載之前,請確認符合下列必要條件:
如果您還沒有 Compute Engine 執行個體,請先建立一個。將存取權範圍設定為
cloud-platform。啟用與 Google Cloud API 端點的連線,可透過公用網路存取或私人網路存取。
如要啟用指標收集功能,請在 Secret Manager 中建立 Secret,儲存稍後在本指南中建立的資料庫使用者密碼。
在本指南的範例中,我們假設這個值是
wlmagent-password。
查看系統需求
下表列出可用的 Oracle 版本和支援的作業系統版本:
| 作業系統 | Oracle 版本 | Oracle 版本 |
|---|---|---|
|
|
|
將 IAM 角色授予服務帳戶
運算工作負載代理會使用連接至運算執行個體的服務帳戶進行驗證,並存取 Google Cloud 資源。
為提高安全性,建議您使用單一用途的服務帳戶,而非 Compute Engine 預設服務帳戶。
為確保服務帳戶具備必要權限,可讓 Compute Workloads 專用代理程式向Google Cloud 驗證身分並存取 Google Cloud 資源,請要求管理員在專案中授予服務帳戶下列 IAM 角色:
-
從運算執行個體收集指標:
Compute 檢視者 (
roles/compute.viewer) -
將資料寫入 Workload Manager 資料倉儲:
Workload Manager Insights Writer (
roles/workloadmanager.insightWriter) -
將代理程式記錄檔傳送至 Cloud Logging:
記錄檔寫入者 (
roles/logging.logWriter) -
如果您使用 Secret Manager 儲存密碼,以便連線至 Oracle 執行個體:
Secret Manager 密鑰存取者 (
roles/secretmanager.secretAccessor)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
管理員或許也能透過自訂角色或其他預先定義的角色,授予服務帳戶必要權限。
啟用 Cloud API 存取權
Compute Engine 建議您將執行個體設為允許所有 Cloud API 的所有存取權範圍,並只使用執行個體服務帳戶的身分與存取權管理權限,控管對Google Cloud 資源的存取權。詳情請參閱「建立採使用者代管服務帳戶的 VM」。
如果限制 Cloud API 的存取權,則運算工作負載代理至少需要在主機運算執行個體上具備下列 Cloud API 存取權範圍:
https://www.googleapis.com/auth/cloud-platform
詳情請參閱「範圍最佳做法」。
如果您在沒有外部 IP 位址的運算執行個體上執行 Oracle 應用程式,則需要在執行個體的子網路上啟用Private Google Access,這樣運算工作負載代理才能存取 Google API 和服務。如要瞭解如何啟用 Private Google Access,請參閱「設定 Private Google Access」。
使用套件管理員安裝及設定代理程式
本節說明如何使用套件管理工具,在運算執行個體上安裝運算工作負載代理,並設定該代理程式與 Oracle 執行個體連線。
如要安裝運算工作負載代理,請完成下列步驟:
建立存放區設定檔。
sudo tee /etc/yum.repos.d/google-cloud-workload-agent.repo << EOM [google-cloud-workload-agent] name=Google Cloud Workload Agent baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-workload-agent-\$basearch enabled=1 gpgcheck=0 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOM
更新套件管理員的中繼資料:
sudo yum makecache
安裝
google-cloud-workload-agentrpm 套件:sudo yum install google-cloud-workload-agent
安裝 Oracle 工作負載專用的代理程式後,請驗證代理程式安裝作業。
使用 VM 擴充功能管理工具,在一組 VM 上安裝及管理代理程式
設定 VM 擴充功能管理工具
如要設定 VM 擴充功能管理工具,請完成下列步驟:
在一組 VM 中安裝代理程式
如要使用 VM 擴充功能管理工具政策,在特定可用區的 VM 機群上安裝最新版運算工作負載代理,請完成下列步驟:
控制台
前往 Google Cloud 控制台的「VM extension policies」(VM 擴充功能政策) 頁面。
按一下「建立擴充功能政策」。
在「Name」(名稱) 欄位中,輸入政策名稱。
選用:在「Description」(說明) 欄位中輸入政策的說明。
在「優先順序」欄位中,指定優先順序編號,以解決政策之間的衝突。數字越小越優先。預設值為
1000。使用「Region」(區域) 和「Zone」(可用區) 清單,選取要套用這項政策的可用區。
在「擴充功能」部分,按一下「新增擴充功能」,然後執行下列操作:
- 在「擴充功能」清單中,選取「Google Cloud 的 Compute Workloads 擴充功能」。
將「版本」欄位留空。
這會指示政策安裝最新版本的運算工作負載代理。
在「設定檔內容」欄位中,輸入要套用至代理程式的設定。
如要瞭解 Oracle 工作負載代理程式支援的設定參數,請參閱「設定參數」。
按一下 [完成]。
選用:如要將政策推出範圍限制在必要 VM,請按照下列步驟操作:
- 按一下「新增標籤」,然後加入可識別必要 VM 的標籤。
- 按一下 [完成]。
點選「建立」。
gcloud
gcloud compute zone-vm-extension-policies create POLICY_NAME \ --zone=ZONE \ --extensions=google-cloud-workload-extension \ --config-from-file=google-cloud-workload-extension=CONFIG_FILE_PATH \ [--description="DESCRIPTION" \] [--inclusion-labels=KEY_1=VALUE_1 \] [--inclusion-labels=KEY_2=VALUE_2,KEY_3=VALUE_3 \] [--priority=PRIORITY]
更改下列內容:
POLICY_NAME:VM 擴充功能政策的名稱。如果區域中已有指定名稱的政策,這項指令就會失敗。
ZONE:要套用這項政策的可用區。CONFIG_FILE_PATH:JSON 檔案的本機路徑,其中包含運算工作負載代理的設定,可與 Oracle 工作負載連線。- 或者,如要以內嵌字串形式提供設定,請使用
--config旗標,而非--config-from-file。例如:--config=google-cloud-workload-extension="CONFIG"。Google Cloud 建議使用--config-from-file。 - 您可以使用
--config-from-file或--config,但不能在同一個指令中同時使用兩者。 - 如要瞭解 Oracle 工作負載代理程式支援的設定參數,請參閱「設定參數」。
- 或者,如要以內嵌字串形式提供設定,請使用
DESCRIPTION:政策的選填說明。KEY_1=VALUE_1:以逗號分隔的清單,其中包含定義政策用來指定虛擬機的標籤的鍵/值組合。- 如要讓 VM 成為政策的目標,VM 必須具備所有指定的標籤。
- 如果您多次指定
--inclusion-labels,政策會以符合任何所提供選取器的 VM 為目標 (邏輯OR)。如果省略這個標記,政策會以指定可用區中的所有 VM 為目標。
PRIORITY:介於0到65535的整數,用於定義政策的優先順序。數字越小越優先。預設值為1000。
範例:
下列指令會在名為 test-project 的專案中建立名為 test-agent-policy 的政策,並在可用區 us-centrail-f 中部署的所有 VM 上安裝最新版運算工作負載代理。Google Cloud 系統會將 agent-config.json 中指定的設定套用至代理程式。
gcloud compute zone-vm-extension-policies create test-agent-policy \ --project=test-project \ --zone=us-central1-f \ --extensions=google-cloud-workload-extension \ --config-file-path=google-cloud-workload-extension="/usr/agent-config.json"
驗證代理程式安裝
如要確認代理程式是否正常運作,請完成下列步驟:
建立與運算執行個體的 SSH 連線。
檢查代理程式套件的狀態:
systemctl status google-cloud-workload-agent如果代理程式套件正常運作,輸出內容會包含
active (running)。例如:google-cloud-workload-agent.service - Google Cloud Agent for Compute Workloads Loaded: loaded (/usr/lib/systemd/system/google-cloud-workload-agent.service; enabled; vendor preset: disabled) Active: active (running) since Sun 2025-07-30 18:59:12 UTC; 10s ago Main PID: 14412 (google_cloud_sq) Tasks: 7 Memory: 12.9M (max: 1.0G limit: 1.0G available: 1011.0M) CGroup: /system.slice/google-cloud-workload-agent.service └─ 14412 /usr/bin/google_cloud_sql_server_agent --action=run設定參數
運算工作負載代理支援 Oracle 的下列設定參數:
參數 說明 log_level
如要設定代理程式的記錄層級,請新增記錄層級。 可用的記錄層級如下:String
DEBUGINFOWARNINGERROR
INFO。log_to_cloudBoolean如要將代理程式記錄重新導向至 Cloud Logging,請指定
true。預設值為true。oracle_configuration.enabledBoolean選用。判斷 Oracle 服務是否處於啟用狀態。如果設為
true,或未設定但有工作負載,您可以設定探索功能和指標收集作業。如果設為false,Oracle 服務及其相關功能就會停用。只有在指定 oracle_configuration.enabled: true時,下列子項參數才適用。oracle_configuration.oracle_discovery.enabledBoolean選用。決定 Oracle 探索功能是否處於啟用狀態。
預設值為
true。oracle_configuration.oracle_discovery.update_frequencyInt選用。以秒為單位指定取樣間隔,決定運算工作負載代理執行探索程序的頻率。預設值為 3600 秒 (1 小時)。
請務必在值結尾加上小寫的「s」,表示秒數。例如:
30s。oracle_configuration.oracle_metrics.enabledBoolean選用。如要讓運算工作負載代理程式收集 Oracle 監控指標,請指定
true。預設值為false。只有在指定
oracle_metrics.enabled: true時,下列子項參數才適用。oracle_configuration.oracle_metrics.collection_frequencyInt選用。以秒為單位指定取樣間隔,這會決定運算工作負載代理查詢 Oracle Database 執行個體的頻率,以收集 Oracle 監控指標。預設值為 60 秒。
請務必在值結尾加上小寫的「s」,表示秒數。例如:
30s。oracle_configuration.oracle_metrics.query_timeoutString選用。為對 Oracle 資料庫執行個體發出的每個查詢指定逾時時間。預設值為 10 秒。
請務必在值結尾加上小寫的「s」,表示秒數。例如:
30s。oracle_configuration.oracle_metrics.connection_parameters.usernameString指定用來查詢 Oracle Database 執行個體的使用者帳戶。
請確認這位使用者具備必要權限,可讀取 Oracle 資料庫中的效能檢視畫面。
oracle_configuration.oracle_metrics.connection_parameters.hostString指定代管資料庫執行個體的本機識別碼。
oracle_configuration.oracle_metrics.connection_parameters.portInt指定 Oracle 資料庫執行個體接受查詢的通訊埠。
oracle_configuration.oracle_metrics.connection_parameters.service_nameString指定要讓代理程式監控的 Oracle Database 執行個體服務名稱。
oracle_configuration.oracle_metrics.connection_parameters.secret.project_idString指定 Secret Manager 的專案 ID,以擷取向資料庫提出查詢的使用者密碼。
oracle_configuration.oracle_metrics.connection_parameters.secret.secret_nameString指定 Secret Manager 中儲存使用者帳戶密碼的密鑰名稱。
收集及查看 Oracle 指標
您可以啟用 Oracle Database 工作負載的指標收集功能。請參閱「支援的指標」。
啟用指標收集功能
如要使用運算工作負載代理收集 Oracle 指標,請按照下列步驟操作:
使用 SSH 連線至 VM 執行個體。
以 Oracle OS 使用者身分執行
oraenv工具,設定環境變數。我們假設您已在/etc/oratab檔案中定義oracle使用者和ORACLE_SID。sudo su - oracle export PATH=$PATH:/usr/local/bin . oraenv sqlplus / as sysdba
以
SYSDBA或SYSOPER使用者身分,在 Oracle Database 中建立用於監控的使用者,並設定與必要條件中建立的密鑰相符的密碼。CREATE USER wlmagent IDENTIFIED BY password;
以
SYSDBA或SYSOPER使用者身分,授予監控使用者下列權限,以便查詢效能檢視畫面:SESSIONSELECT_CATALOG_ROLESYSDG
GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO wlmagent;
結束
sqlplus和oracle使用者。以超級使用者身分,使用慣用的編輯器編輯代理程式的設定檔。
sudo nano /etc/google-cloud-workload-agent/configuration.json
在設定檔中編輯
oracle_metrics區段,進行下列更新:- 將
enabled參數設為true。 - 設定
service_name參數,指定要讓代理程式監控的 Oracle 執行個體服務名稱。 - 指定代理程式連線至資料庫時使用的 Oracle 使用者名稱。
- 設定代理程式的
host和port參數,讓代理程式連線至資料庫。 - 設定代理程式的
secret參數,以擷取使用者名稱的密碼:project_id:包含 Secret Manager 資料的專案 ID。secret_name:Secret Manager 中的 Secret 名稱。
以下是設定檔範例:
{ "log_level": "INFO", "common_discovery": {"collection_frequency": "3600s" }, "oracle_configuration": { "enabled": true, "oracle_metrics": { "enabled": true, "collection_frequency": "30s", "connection_parameters": [ { "host": "localhost", "port": 1521, "service_name": "orcl", "username": "wlmagent", "secret": { "project_id": "my-project", "secret_name": "wlmagent_password" } } ] } } }- 將
儲存設定檔。
重新啟動代理程式,讓新設定生效。
查看指標
您可以透過 Metrics Explorer 或匯入自訂資訊主頁,查看收集到的指標,並監控 Oracle 效能和狀態。
在 Metrics Explorer 中查看指標
如要在 Metrics Explorer 中查看 Oracle 指標,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「Monitoring」。
- 按一下「Metrics Explorer」。
- 在「Find resource type and metric」下方,執行下列操作:
- 在「資源類型」部分,選取「VM 執行個體」。
- 在「指標」中,選取要查看的 Oracle 指標。
您可以視需要使用篩選器和匯總功能,查看所選 Oracle 指標的即時和歷來資料。
匯入自訂資訊主頁
如要查看代理程式收集的 Oracle 指標,請按照「建立及管理自訂資訊主頁」一文的說明,建立自訂 Cloud Monitoring 資訊主頁。
我們提供範例資訊主頁
oracle-status-overview.json和匯入說明,oracle-status-overview.json資訊主頁會顯示下列 Oracle 指標圖表:- 資料庫時間細目
- 資料庫記憶體用量
- 平均活躍工作階段數 (依等待類別)
- 磁碟 I/O
- CPU 使用率
- 網路流量
如要匯入
oracle-status-overview.json資訊主頁,請按照下列步驟操作:確認 gcloud CLI 已安裝且為最新版本。如需操作說明,請參閱「安裝 gcloud CLI」。
從運算工作負載代理 GitHub 存放區下載
oracle-status-overview.json資訊主頁:$ curl -H "Accept: application/vnd.github.v3.raw" -o oracle-status-overview.json https://api.github.com/repos/GoogleCloudPlatform/workloadagent/contents/observability/dashboards/oracle-status-overview.json
執行下列指令匯入資訊主頁:
gcloud alpha monitoring dashboards create --config-from-file=oracle-status-overview.json
指令執行完畢後,自訂資訊主頁就會在 Cloud Monitoring 中建立。如要瞭解如何查看資訊主頁,請參閱「尋找及查看資訊主頁」。
支援的指標
運算工作負載代理收集的所有 Oracle 指標,都會顯示在
workload.googleapis.com/oracle路徑下。以下列出支援的 Oracle 指標和對應的 Cloud Monitoring 路徑:
-
目前使用的程序 (PGA) 記憶體,以位元組為單位。
process/pga_memory/total_used_size分配的程序 (PGA) 記憶體,以位元組為單位
process/pga_memory/total_allocated_size
-
共用記憶體 (SGA) 項目的大小 (以位元組為單位)
process/sga_memory/size
-
註冊等待類別的等待總數
sys_wait/count這個等待類別的總等待時間 (以秒為單位)
sys_wait/time這個等待類別中的前景等待總數
sys_wait/foreground/count這個等待類別的前景等待時間總計 (以秒為單位)
sys_wait/foreground/time
-
執行資料庫使用者層級呼叫所經過的時間 (以秒為單位)
sys_time/db_time資料庫使用者層級呼叫耗費的 CPU 作業時間 (以秒為單位)
sys_time/db_cpuSQL 陳述式執行的時間量
sys_time/sql_execute_elapsed_time剖析 SQL 陳述式所花費的時間量
sys_time/parse_time_elapsed執行 PL/SQL 解譯器所經過的時間量
sys_time/pl_sql_execution_elapsed_time資料庫背景程序耗費的時間 (以秒為單位)
sys_time/background_elapsed_time
-
讀取作業總數 (小型 + 大型)
iostat/read_ops_count寫入作業總數 (小型 + 大型)
iostat/write_ops_count讀取的位元組總數
iostat/read_bytes_count寫入的位元組總數
iostat/write_bytes_count每項 I/O 作業的平均延遲時間
iostat/average_latency_seconds
-
資料檔案的配置大小 (以位元組為單位)
data_files/total_bytes目前使用的資料檔案空間 (以位元組為單位)
data_files/bytes_used資料檔案可用空間 (以位元組為單位)
data_files/available_bytes資料檔案自動擴充限制 (以位元組為單位)
data_files/max_bytes已使用的資料檔案百分比
data_files/percent_used
-
執行個體運作時間 (以秒為單位)
instance/uptime執行個體狀態
instance/status這項指標可能的值如下:
UNKNOWN0STARTED1MOUNTED2OPEN3OPEN MIGRATE4開放模式
instance/db_open_mode這項指標可能的值如下:
UNKNOWN0MOUNTED1READ WRITE2READ ONLY3READ ONLY WITH APPLY4
-
重新套用延遲時間 (以秒為單位)
dataguard/apply_lag重做傳輸延遲 (以秒為單位)
dataguard/transport_lag
管理代理程式
重新啟動代理程式
如果運算工作負載代理停止運作或您更新其設定,請重新啟動代理程式。
- 使用 SSH 連線至 VM 執行個體。
執行下列指令:
sudo systemctl restart google-cloud-workload-agent
檢查代理程式版本
如要查看代理程式版本,請完成下列步驟:
- 使用 SSH 連線至 VM 執行個體。
執行下列指令:
yum info google-cloud-workload-agent
檢查是否有更新
- 使用 SSH 連線至 VM 執行個體。
執行下列指令:
sudo yum check-update google-cloud-workload-agent
更新代理程式
為確保代理程式為最新版本,請定期檢查更新並更新代理程式:
- 使用 SSH 連線至 VM 執行個體。
執行下列指令:
sudo yum --nogpgcheck update google-cloud-workload-agent
查看代理程式記錄
您可以在
/var/log/google-cloud-workload-agent.log查看運算工作負載代理記錄。記錄詳細程度是由
log_level參數控制。設定DEBUG記錄層級包含其他資訊,可協助排解特定問題,但會產生大量記錄。根據預設,運算工作負載代理的記錄檔會從 VM 執行個體重新導向至 Cloud Logging。
如要在 Logging 中查看代理程式的記錄,請按照下列步驟操作:
前往 Google Cloud 控制台的「Logs Explorer」頁面。
前往「查詢」窗格。
從「資源」下拉式選單中選取「全域」,然後按一下「套用」。
在查詢編輯器中輸入
google-cloud-workload-agent。點選「執行查詢」。
您可以查看在所有 VM 執行個體上執行的代理程式所產生的記錄。您可以篩選特定執行個體的記錄。
在 Cloud Logging 中設定代理程式記錄
如要停用代理程式記錄預設重新導向至 Cloud Logging 的功能,請按照下列步驟操作:
使用 SSH 連線至 VM 執行個體。
開啟代理程式的設定檔:
/etc/google-cloud-workload-agent/configuration.json
將屬性
log_to_cloud的值更新為false。儲存設定檔。
重新啟動代理程式,變更才會生效。
疑難排解
下列各節提供使用 Oracle Database 工作負載代理程式時的常見問題、原因和解決方法。
IAM 權限不足
問題:運算工作負載代理記錄檔顯示 IAM 權限不足錯誤。
googleapi: Error 403: The client is not authorized to make this request.
原因:代理程式使用的服務帳戶沒有存取 Google Cloud API 的必要 IAM 權限,或是 Secret Manager 中 Oracle 使用者的密碼。
解決方法:如要解決這個問題,請確認 VM 服務帳戶具備「必要條件」一節中提及的 IAM 角色和權限。
驗證範圍不足
問題:運算工作負載代理記錄檔顯示驗證範圍不足。
googleapi: Error 403: Request had insufficient authentication scopes.
原因:代理程式使用的服務帳戶沒有必要的存取權範圍。
解決方法:如要解決這個問題,請將 VM 的存取範圍設為
cloud-platform。指標未顯示在 Cloud Monitoring 中
問題:Cloud Monitoring 中未顯示運算工作負載代理的指標。
原因:
這個問題的可能原因如下:
- 運算工作負載代理使用的服務帳戶缺少必要的 IAM 權限。
- 代理程式使用的 Oracle 使用者權限不足,無法查詢效能檢視畫面。
- 代理程式設定有誤。
解決方法:
如要解決服務帳戶權限不足的問題,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「VM 執行個體詳細資料」頁面,並記下執行代理程式的執行個體所使用的服務帳戶。
- 前往「IAM & admin」(IAM 與管理) 頁面,確認服務帳戶具備「必要條件」一節中提及的所有必要角色和權限。將任何缺少的必要角色授予服務帳戶。
如要解決 Oracle 使用者權限不足的問題,請按照下列步驟操作:
確認 Oracle 使用者具備下列必要權限,可查詢效能檢視畫面:
SESSIONSELECT_CATALOG_ROLESYSDG
執行下列 SQL 指令,授予任何缺少的權限:
-- Grant the "wlmagent" user the required permissions GRANT CREATE SESSION,SELECT_CATALOG_ROLE,SYSDG TO USERNAME;
如要解決代理程式設定錯誤的問題,請按照下列步驟操作:
- 使用 SSH 連線至 VM 執行個體。
查看代理程式的記錄,找出任何錯誤或問題,避免無法收集指標。您可以在
/var/log/google-cloud-workload-agent.log找到記錄。找出權限錯誤、設定錯誤或連線問題。
解決所有錯誤。
重新啟動代理程式,並檢查指標收集作業是否已開始。
無法載入設定檔
問題:如果設定檔含有無效值,您會看到下列錯誤訊息。
"Failed to load configuration","pid":3524,"error":"proto: (line 19:42): unknown field "{field_name}"解決方法:如要解決這個問題,請使用「設定參數」中的詳細資料更新設定檔。
無法初始化資料收集作業
問題:安裝代理程式後,如果未更新設定檔,您會看到下列錯誤:
"Failed to initialize guest collection","pid":2112,"error":"invalid value for "user_name" "secret_name"
解決方法:如要解決這個問題,請使用設定參數初始化憑證設定。