SAP 解決方案適用的 Workload Manager 會使用 Google Cloud's Agent for SAP 偵測及收集中繼資料,以評估 SAP 系統設定。如要在 Google Cloud上執行 SAP 系統,所有 VM 執行個體都必須安裝 Agent for SAP 和 SAP Host Agent,才能支援及監控 SAP 系統,包括 SAP NetWeaver、SAP HANA、SAP ASE 和 SAP MaxDB。
事前準備
安裝及設定 Google Cloud的 Agent for SAP 前,請先確認符合下列必要條件:
- 您已在一或多個運算執行個體上部署 SAP 工作負載。
- 您已查看支援的區域,瞭解可在哪些區域建立 Workload Manager 評估作業。
- 管理員已授予您建立及執行 Workload Manager 評估作業所需的 IAM 角色。
- 您已授予代理程式所需的 IAM 角色。
- 您已啟用 Cloud API 的存取權。
代理程式所需的 IAM 角色
SAP 專用代理程式會使用附加至運算執行個體的服務帳戶進行驗證,並存取 Google Cloud 資源。
為提高安全性,建議您使用單一用途的服務帳戶,而非 Compute Engine 預設服務帳戶。
為確保服務帳戶具備必要權限,可讓 Agent for SAP 透過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 儲存密碼,以便連線至 SAP 工作負載:
Secret Manager 密鑰存取者 (
roles/secretmanager.secretAccessor)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
管理員或許也能透過自訂角色或其他預先定義的角色,授予服務帳戶必要權限。
啟用 Cloud API 存取權
Compute Engine 建議您將執行個體設定為允許所有 Cloud API 的所有存取權範圍。如要控管資源的存取權 Google Cloud,請只使用執行個體服務帳戶的 IAM 權限。詳情請參閱「建立採使用者代管服務帳戶的 VM」。
如果限制 Cloud API 的存取權,主機運算執行個體上的 Agent for SAP 至少需要下列 Cloud API 存取範圍:
https://www.googleapis.com/auth/cloud-platform
詳情請參閱「範圍最佳做法」。
如果您在沒有外部 IP 位址的運算執行個體上執行 SAP 應用程式,則需要在執行個體的子網路上啟用Private Google Access,這樣運算工作負載代理才能存取 Google API 和服務。如要瞭解如何啟用 Private Google Access,請參閱「設定 Private Google Access」。
使用套件管理員安裝及設定代理程式
本節說明如何使用套件管理工具,在運算執行個體上安裝 Agent for SAP,並設定該代理程式以連線至 SAP 工作負載。
如要在多個 VM 上安裝及設定代理程式,可以使用 VM 擴充功能管理工具政策。詳情請參閱「使用 VM 擴充功能管理工具,在一組 VM 上安裝及管理代理程式」。
安裝代理程式
如果尚未安裝,請在執行 SAP 工作負載的所有運算執行個體上安裝 Google Cloud的 Agent for SAP:
如要在 Compute Engine 執行個體上安裝代理程式,請按照下列步驟操作:
- 建立與運算執行個體的 SSH 連線。
- 在終端機中,執行適用於作業系統的指令,安裝代理程式:
- (建議) 如要安裝代理程式 3.13 版 (最新版):
RHEL
sudo tee /etc/yum.repos.d/google-cloud-sap-agent.repo << EOM [google-cloud-sap-agent] name=Google Cloud Agent for SAP baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-el$(cat /etc/redhat-release | cut -d . -f 1 | tr -d -c 0-9)-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=0 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 install google-cloud-sap-agent
SLES15
sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles15-x86_64 google-cloud-sap-agent sudo zypper install google-cloud-sap-agent
SLES 12
sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles12-x86_64 google-cloud-sap-agent sudo zypper install google-cloud-sap-agent
- 如要安裝特定版本的代理程式,請執行下列操作:
RHEL
sudo tee /etc/yum.repos.d/google-cloud-sap-agent.repo << EOM [google-cloud-sap-agent] name=Google Cloud Agent for SAP baseurl=https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-el$(cat /etc/redhat-release | cut -d . -f 1 | tr -d -c 0-9)-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=0 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 install google-cloud-sap-agent-VERSION_NUMBER.x86_64
SLES15
sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles15-x86_64 google-cloud-sap-agent sudo zypper install google-cloud-sap-agent-VERSION_NUMBER.x86_64
SLES 12
sudo zypper addrepo --refresh https://packages.cloud.google.com/yum/repos/google-cloud-sap-agent-sles12-x86_64 google-cloud-sap-agent sudo zypper install google-cloud-sap-agent-VERSION_NUMBER.x86_64
將
VERSION_NUMBER替換為要安裝的代理程式版本號碼,例如3.1-606637668。如要瞭解可安裝的代理程式版本,請參閱「列出所有可用的代理程式版本」。如要瞭解如何將代理程式降級至特定版本,請參閱「 降級 Agent for SAP Google Cloud」。
- (建議) 如要安裝代理程式 3.13 版 (最新版):
設定收集 Workload Manager 評估指標
安裝 Agent for SAP 後,您需要設定代理程式,才能收集 Workload Manager 評估指標。
如要設定 Google Cloud的 Agent for SAP,請完成下列步驟:
如要讓代理程式收集 Workload Manager 評估指標,請按照下列步驟操作:
sudo /usr/bin/google_cloud_sap_agent configure -feature=workload_evaluation -enable
選用:如要在 Workload Manager 中啟用「SAP HANA Insights」和「SAP HANA Security Best Practices」指標的收集作業,請在代理程式設定檔的
collect_workload_validation_metrics後方新增workload_validation_db_metrics_config區段,然後指定下列參數:hana_db_user:指定用於查詢 SAP HANA 執行個體的使用者帳戶。hostname:指定代管 SAP HANA 執行個體的機器 ID,可以是本機或遠端。port:指定 SAP HANA 執行個體接受查詢的通訊埠。hana_db_password_secret_name:指定 Secret Manager 中儲存使用者帳戶密碼的密碼名稱除了密鑰,您也可以使用
hdbuserstore_key設定參數。hdbuserstore_key:指定用於驗證hana_db_user所指定使用者的hdbuserstore金鑰如果指定
hdbuserstore_key,則可略過hostname和port參數。
如要瞭解這些參數,請參閱「設定參數」。
以下範例是Google Cloud's Agent for SAP 在Compute Engine 執行個體上執行的完整設定檔,其中已啟用 Workload Manager 評估指標的收集作業。
對於 SAP HANA 驗證,代理程式會依下列優先順序使用參數:如果已指定
hdbuserstore_key設定參數,則優先使用該參數,其次為hana_db_password參數,最後為hana_db_password_secret_name參數。建議您在設定檔中只設定一個驗證選項。- 下列範例使用安全使用者存放區 (
hdbuserstore) 金鑰進行 SAP HANA 驗證:{ "provide_sap_host_agent_metrics": true, "bare_metal": false, "log_level": "INFO", "log_to_cloud": true, "collection_configuration": { "collect_workload_validation_metrics": true, "workload_validation_db_metrics_frequency": 3600, "workload_validation_db_metrics_config": { "hana_db_user": "system", "sid": "DEH", "hdbuserstore_key": "user_store_key" }, "collect_process_metrics": false }, "discovery_configuration": { "enable_discovery": true, "enable_workload_discovery": true }, "hana_monitoring_configuration": { "enabled": false } }
- 以下範例使用使用者名稱和 Secret Manager 密鑰進行 SAP HANA 驗證:
{ "provide_sap_host_agent_metrics": true, "bare_metal": false, "log_level": "INFO", "log_to_cloud": true, "collection_configuration": { "collect_workload_validation_metrics": true, "workload_validation_db_metrics_frequency": 3600, "workload_validation_db_metrics_config": { "hana_db_user": "system", "sid": "DEH", "hana_db_password_secret_name": "instance-id-hana-db-password-secret", "hostname": "localhost", "port": "30015" }, "collect_process_metrics": false }, "discovery_configuration": { "enable_discovery": true, "enable_workload_discovery": true }, "hana_monitoring_configuration": { "enabled": false } }
- 以下範例使用使用者名稱和密碼進行 SAP HANA 驗證。建議您改用 Secret Manager 密鑰或 Secure user store (
hdbuserstore) 金鑰,進行 SAP HANA 驗證。{ "provide_sap_host_agent_metrics": true, "bare_metal": false, "log_level": "INFO", "log_to_cloud": true, "collection_configuration": { "collect_workload_validation_metrics": true, "workload_validation_db_metrics_frequency": 3600, "workload_validation_db_metrics_config": { "hana_db_user": "system", "sid": "DEH", "hana_db_password": "TempPa55word", "hostname": "localhost", "port": "30015" }, "collect_process_metrics": false }, "discovery_configuration": { "enable_discovery": true, "enable_workload_discovery": true }, "hana_monitoring_configuration": { "enabled": false } }
重新啟動代理程式,讓新設定生效:
sudo systemctl restart google-cloud-sap-agent
代理程式重新啟動後,就會開始將 Workload Manager 評估指標傳送至 Workload Manager。
使用 VM 擴充功能管理工具,在一組 VM 上安裝及管理代理程式
本節說明如何使用 VM 擴充功能管理工具,在 VM 機群上安裝及管理 SAP 專用代理程式。
設定 VM 擴充功能管理工具
如要設定 VM 擴充功能管理工具,請完成下列步驟:
在一組 VM 中安裝及設定代理程式
如要使用 VM 擴充功能管理工具政策,在特定可用區的 VM 機群上安裝最新版本 Agent for SAP,請完成下列步驟:
控制台
前往 Google Cloud 控制台的「VM extension policies」(VM 擴充功能政策) 頁面。
按一下「建立擴充功能政策」。
在「Name」(名稱) 欄位中,輸入政策名稱。
選用:在「Description」(說明) 欄位中輸入政策的說明。
在「優先順序」欄位中,指定優先順序編號,以解決政策之間的衝突。數字越小越優先。預設值為
1000。使用「Region」(區域) 和「Zone」(可用區) 清單,選取要套用這項政策的可用區。
在「擴充功能」部分,按一下「新增擴充功能」,然後執行下列操作:
- 在「擴充功能」清單中,選取「Google Cloud 的 Compute Workloads 擴充功能」。
將「版本」欄位留空。
這會指示政策安裝Google Cloud的最新版 Agent for SAP。
在「設定檔內容」欄位中,輸入要套用至代理程式的設定。
如要瞭解代理程式支援的 SAP 工作負載設定參數,請參閱「設定參數」。
按一下 [完成]。
選用:如要將政策推出範圍限制在必要 VM,請按照下列步驟操作:
- 按一下「新增標籤」,然後加入可識別必要 VM 的標籤。
- 按一下 [完成]。
點選「建立」。
gcloud
gcloud compute zone-vm-extension-policies create POLICY_NAME \ --zone=ZONE \ --extensions=google-cloud-sap-extension \ --config-from-file=google-cloud-sap-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 SAP 的設定,可與 SAP 工作負載連線。- 或者,如要以內嵌字串形式提供設定,請使用
--config旗標,而非--config-from-file。例如:--config=google-cloud-sap-extension="CONFIG"。Google Cloud 建議使用--config-from-file。 - 您可以使用
--config-from-file或--config,但不能在同一個指令中同時使用兩者。 - 如要瞭解代理程式支援的 SAP 工作負載設定參數,請參閱「設定參數」。
- 或者,如要以內嵌字串形式提供設定,請使用
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-sap-extension \ --config-from-file=google-cloud-sap-extension="/usr/agent-config.json"
確認代理程式版本
Google Cloud 建議您安裝最新版 Agent for SAP,以便準確評估 SAP 工作負載,因為 Agent for SAP 可能會定期發布新版本,並新增或變更用於評估的指標。
為確保您使用的是最新版 Google Cloud's Agent for SAP,請定期檢查更新並更新代理程式。
檢查是否有更新
選取作業系統,然後按照下列步驟操作:
RHEL
- 建立與執行個體之間的 SSH 連線。
- 執行下列指令:
sudo yum check-update google-cloud-sap-agent
SLES
- 建立與執行個體之間的 SSH 連線。
- 執行下列指令:
sudo zypper list-updates -r google-cloud-sap-agent
安裝更新
選取作業系統,然後按照下列步驟操作:
RHEL
- 建立與執行個體之間的 SSH 連線。
- 更新代理程式執行個體:
- (建議) 如要將代理程式更新至 3.13 版 (最新版):
sudo yum --nogpgcheck update google-cloud-sap-agent
- 如要更新至特定版本的代理程式:
sudo yum install google-cloud-sap-agent-VERSION_NUMBER.x86_64
將
VERSION_NUMBER替換為要安裝的代理程式版本號碼,例如3.1-606637668。如要瞭解可安裝的代理程式版本,請參閱「列出所有可用的代理程式版本」。
- (建議) 如要將代理程式更新至 3.13 版 (最新版):
SLES
- 建立與執行個體之間的 SSH 連線。
- 更新代理程式執行個體:
- (建議) 如要將代理程式更新至 3.13 版 (最新版):
sudo zypper --no-gpg-checks update google-cloud-sap-agent
- 如要更新至特定版本的代理程式:
sudo zypper install google-cloud-sap-agent-VERSION_NUMBER.x86_64
將
VERSION_NUMBER替換為要安裝的代理程式版本號碼,例如3.1-606637668。如要瞭解可安裝的代理程式版本,請參閱「列出所有可用的代理程式版本」。
- (建議) 如要將代理程式更新至 3.13 版 (最新版):
驗證 Workload Manager 評估指標收集設定
您可以執行代理程式的 status 指令,驗證是否已正確設定,以便收集 Workload Manager 評估指標。 Google Cloud 代理程式 3.7 以上版本支援這項指令。
如要驗證 Google Cloud 設定,請完成下列步驟:
- 建立與 Compute Engine 執行個體的 SSH 連線。
- 執行下列指令:
sudo /usr/bin/google_cloud_sap_agent status -f="workload_manager,sap_discovery"
如果 Workload Manager 評估指標收集設定正確,輸出內容會包含下列項目。 Google Cloud 您的設定可能會有其他值,而非
default值。Agent Status: ... Systemd Service Enabled: True Systemd Service Running: True Cloud API Full Scopes: True Configuration File: /etc/google-cloud-sap-agent/configuration.json Configuration Valid: True ... ---------------------------------------------------------------------------- System Discovery: Enabled Status: Fully Functional IAM Permissions: All granted Configuration: enable_discovery: true (default) enable_workload_discovery: true (default) sap_instances_update_frequency: 60 (default) system_discovery_update_frequency: 14400 (default) ---------------------------------------------------------------------------- Workload Manager Evaluation: Enabled Status: Fully Functional IAM Permissions: All granted Configuration: collect_workload_validation_metrics: true (default) config_target_environment: PRODUCTION (default) fetch_latest_config: true (default) workload_validation_db_metrics_frequency: 3600 (default) workload_validation_metrics_frequency: 300 (default) ... - 如果輸出內容顯示缺少部分設定,請查看前幾節提供的資訊,執行必要動作,然後重新執行
status指令,重新驗證設定。
設定檔範例
以下範例是Google Cloud's Agent for SAP 在Compute Engine 執行個體上執行的完整設定檔,其中已啟用 Workload Manager 評估指標的收集作業。
對於 SAP HANA 驗證,代理程式會依下列優先順序使用參數:如果已指定 hdbuserstore_key 設定參數,則優先使用該參數,其次為 hana_db_password 參數,最後為 hana_db_password_secret_name 參數。建議您在設定檔中只設定一個驗證選項。
- 下列範例使用安全使用者存放區 (
hdbuserstore) 金鑰進行 SAP HANA 驗證:{ "provide_sap_host_agent_metrics": true, "bare_metal": false, "log_level": "INFO", "log_to_cloud": true, "collection_configuration": { "collect_workload_validation_metrics": true, "workload_validation_db_metrics_frequency": 3600, "workload_validation_db_metrics_config": { "hana_db_user": "system", "sid": "DEH", "hdbuserstore_key": "user_store_key" }, "collect_process_metrics": false }, "discovery_configuration": { "enable_discovery": true, "enable_workload_discovery": true }, "hana_monitoring_configuration": { "enabled": false } }
- 以下範例使用使用者名稱和 Secret Manager 密鑰進行 SAP HANA 驗證:
{ "provide_sap_host_agent_metrics": true, "bare_metal": false, "log_level": "INFO", "log_to_cloud": true, "collection_configuration": { "collect_workload_validation_metrics": true, "workload_validation_db_metrics_frequency": 3600, "workload_validation_db_metrics_config": { "hana_db_user": "system", "sid": "DEH", "hana_db_password_secret_name": "instance-id-hana-db-password-secret", "hostname": "localhost", "port": "30015" }, "collect_process_metrics": false }, "discovery_configuration": { "enable_discovery": true, "enable_workload_discovery": true }, "hana_monitoring_configuration": { "enabled": false } }
- 以下範例使用使用者名稱和密碼進行 SAP HANA 驗證。建議您改用 Secret Manager 密鑰或 Secure user store (
hdbuserstore) 金鑰,進行 SAP HANA 驗證。{ "provide_sap_host_agent_metrics": true, "bare_metal": false, "log_level": "INFO", "log_to_cloud": true, "collection_configuration": { "collect_workload_validation_metrics": true, "workload_validation_db_metrics_frequency": 3600, "workload_validation_db_metrics_config": { "hana_db_user": "system", "sid": "DEH", "hana_db_password": "TempPa55word", "hostname": "localhost", "port": "30015" }, "collect_process_metrics": false }, "discovery_configuration": { "enable_discovery": true, "enable_workload_discovery": true }, "hana_monitoring_configuration": { "enabled": false } }
如要瞭解 Agent for SAP 支援的設定參數,請參閱「設定參數」。
後續步驟
- 進一步瞭解工作負載評估