本文說明如何在執行 Oracle Database 工作負載的 Compute Engine 執行個體上,安裝、設定及驗證 Compute Workloads 專用代理程式。
代理程式會查詢 Oracle Database 效能檢視畫面 (例如 V$DATABASE、V$INSTANCE 和 V$DATAGUARD_STATS) 和資料字典檢視畫面 (例如 DBA_DATA_FILES 和 DBA_FREE_SPACE),藉此收集各種 Oracle 指標。這些指標隨後會傳送至 Cloud Monitoring,供您查看及分析。請參閱「支援的指標」。
事前準備
安裝 Agent for Compute Workloads 來監控 Oracle Database 工作負載之前,請確認符合下列必要條件:
如果您還沒有 Compute Engine 執行個體,請先建立一個。將存取權範圍設定為
cloud-platform。啟用與 Google Cloud API 端點的連線,可透過公開網路存取或私人網路存取。
如要啟用指標收集功能,請在 Secret Manager 中建立密碼,儲存稍後在本指南中建立的資料庫使用者密碼。
在本指南的範例中,我們假設這個值是
wlmagent-password。
查看系統需求
下表列出可用的 Oracle 版本和支援的作業系統版本:
| 作業系統 | Oracle 版本 | Oracle 版本 |
|---|---|---|
|
|
|
將 IAM 角色授予服務帳戶
Compute Workloads 的代理程式會使用附加至運算執行個體的服務帳戶進行驗證,並存取 Google Cloud 資源。
為提高安全性,建議您使用單一用途的服務帳戶,而非 Compute Engine 預設服務帳戶。
為確保服務帳戶具備必要權限,可讓 Compute Workloads 代理程式向Google Cloud 驗證身分並存取 Google Cloud 資源,請要求管理員在專案中授予服務帳戶下列 IAM 角色:
-
Compute 檢視者 (
roles/compute.viewer): 從 Compute 執行個體收集指標。 -
Workload Manager Insights Writer (
roles/workloadmanager.insightWriter): 將資料寫入 Workload Manager 資料倉儲。 -
(建議) 記錄寫入者 (
roles/logging.logWriter): 將代理程式記錄傳送至 Cloud Logging。 -
(選用) Secret Manager 密鑰存取者 (
roles/secretmanager.secretAccessor): 如果您使用 Secret Manager 儲存密碼,以便連線至 Oracle 執行個體。
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
管理員或許也能透過自訂角色或其他預先定義的角色,授予服務帳戶必要權限。
啟用 Cloud API 存取權
Compute Engine 建議您將執行個體設為允許所有 Cloud API 的所有存取權範圍,並只使用執行個體服務帳戶的身分與存取權管理權限,控管對Google Cloud 資源的存取權。詳情請參閱「建立使用使用者管理服務帳戶的 VM」。
如果限制 Cloud API 的存取權,則 Compute Workloads 代理程式至少需要在主機運算執行個體上具備下列 Cloud API 存取範圍:
https://www.googleapis.com/auth/cloud-platform
詳情請參閱「範圍最佳做法」。
如果您在沒有外部 IP 位址的運算執行個體上執行 Oracle 應用程式,則需要在執行個體的子網路上啟用私人 Google 存取權,才能讓 Agent for Compute Workloads 存取 Google API 和服務。如要瞭解如何啟用私人 Google 存取權,請參閱「設定私人 Google 存取權」。
使用套件管理員安裝及設定代理程式
本節說明如何使用套件管理員,在運算執行個體上安裝 Agent for Compute Workloads,並設定該代理程式與 Oracle 執行個體連線。
如要安裝 Compute Workloads 專用的代理程式,請完成下列步驟:
建立存放區設定檔。
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 叢集上安裝最新版 Agent for Compute Workloads,請完成下列步驟:
控制台
前往 Google Cloud 控制台的「VM extension policies」(VM 擴充功能政策) 頁面。
按一下「建立擴充功能政策」。
在「Name」(名稱) 欄位中,輸入政策名稱。
選用:在「Description」(說明) 欄位中輸入政策的說明。
在「優先順序」欄位中,指定優先順序編號,以解決政策之間的衝突。數字越小越優先。預設值為
1000。使用「Region」(區域) 和「Zone」(可用區) 清單,選取要套用這項政策的可用區。
在「擴充功能」部分,按一下「新增擴充功能」,然後執行下列操作:
- 在「擴充功能」清單中,選取「Google Cloud's Extension for Compute Workloads」。
將「版本」欄位留空。
這會指示政策安裝最新版的 Agent for Compute Workloads。
在「設定檔內容」欄位中,輸入要套用至代理程式的設定。
如要瞭解代理程式支援的 Oracle 工作負載設定參數,請參閱「設定參數」。
按一下 [完成]。
選用:如要將政策推出範圍限制在必要 VM,請按照下列步驟操作:
- 按一下「新增標籤」,然後加入可識別必要 VM 的標籤。
- 按一下 [完成]。
點選「建立」。
gcloud
gcloud beta 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 檔案的本機路徑,其中包含 Agent for Compute Workloads 的設定,可與 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 成為政策的目標,VM 必須具備所有指定的標籤。
- 如果多次指定
--inclusion-labels,政策會以符合任何所提供選取器的 VM 為目標 (邏輯OR)。如果省略這個標記,政策會以指定可用區中的所有 VM 為目標。
PRIORITY:介於0到65535的整數,用於定義政策的優先順序。數字越小越優先。預設值為1000。
範例:
下列指令會在名為 test-project 的專案中建立名為 test-agent-policy 的政策,並在可用區 us-centrail-f 中部署的所有 VM 上安裝最新版 Agent for Compute Workloads。Google Cloud 系統會將 agent-config.json 中指定的設定套用至代理程式。
gcloud beta 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(選用步驟) 以秒為單位指定取樣間隔,決定 Agent for Compute Workloads 查詢 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 工作負載的指標收集功能。請參閱「支援的指標」。
啟用指標收集功能
如要使用 Compute Workloads 專用代理程式收集 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 中的密鑰名稱。
以下是設定檔範例:
{ "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」。
- 按一下「指標探索工具」。
- 在「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」。
從 Agent for Compute Workloads 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
管理代理程式
重新啟動代理程式
如果 Compute Workloads 代理程式停止運作或您更新其設定,請重新啟動代理程式。
- 使用 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記錄層級包含其他資訊,可協助排解特定問題,但會產生大量記錄。根據預設,Compute Workloads 專用代理程式的記錄檔會從 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 工作負載代理程式時的常見問題、原因和解決方法。
身分與存取權管理權限不足
問題:Compute Workloads 專用的 Agent 記錄檔顯示 IAM 權限不足錯誤。
googleapi: Error 403: The client is not authorized to make this request.
原因:代理程式使用的服務帳戶沒有存取 Google Cloud API 的必要 IAM 權限,或是 Secret Manager 中 Oracle 使用者的密碼。
解決方法:如要解決這個問題,請確認 VM 服務帳戶具備「必要條件」一節中提及的 IAM 角色和權限。
驗證範圍不足
問題:Agent for Compute Workloads 記錄檔顯示驗證範圍不足。
googleapi: Error 403: Request had insufficient authentication scopes.
原因:代理程式使用的服務帳戶沒有必要的存取範圍。
解決方法:如要解決這個問題,請將 VM 的存取範圍設定為
cloud-platform。指標未顯示在 Cloud Monitoring 中
問題:Cloud Monitoring 中未顯示 Agent for Compute Workloads 的指標。
原因:
這個問題的可能原因如下:
- Agent for Compute Workloads 使用的服務帳戶缺少必要的 IAM 權限。
- 代理程式使用的 Oracle 使用者權限不足,無法查詢效能檢視畫面。
- 代理程式設定有誤。
解決方法:
如要解決服務帳戶權限不足的問題,請按照下列步驟操作:
- 前往 Google Cloud 控制台的「VM instance details」(VM 執行個體詳細資料) 頁面,並記下執行代理程式的執行個體所使用的服務帳戶。
- 前往「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"
解決方法:如要解決這個問題,請使用設定參數初始化憑證設定。