SAP HANA 監控代理程式 V2.0 規劃指南

有了 SAP HANA 適用的 Google Cloud 監控代理程式,您就可以使用 Cloud Monitoring 在 Google Cloud 主控台中顯示 SAP HANA 系統指標。代理程式會在主機上以 systemd 服務的形式執行。

為了收集指標,SAP HANA 監控代理程式會使用 SAP 在 SAP HANA SQL 和系統檢視表參考資料中定義的 SQL 語法和系統檢視表,查詢 SAP HANA。

您可以使用 SAP HANA 記憶體使用率指標進行容量規劃,或協助管理以記憶體為基礎的 SAP HANA 授權。將 SAP HANA 指標與 Compute Engine 指標做關聯,有助於您找出使用量和效能趨勢。

如要進一步瞭解 SAP HANA 安裝作業,您可以定義自訂查詢來擷取其他指標。

有了 Cloud Monitoring,您可以建立資訊主頁,藉此將 SAP HANA 指標視覺化,並可根據指標門檻來設定快訊。如需有關如何設定資訊主頁和快訊的完整資訊,請參閱 Cloud Monitoring 說明文件

Cloud Monitoring 指標定價

SAP HANA 監控代理程式收集並傳送至 Monitoring 的指標,會被歸類為 計費指標。依據擷取的資料量,監控可計費指標的價格。

查詢的取樣間隔會決定 SAP HANA 監控代理程式向 SAP HANA 查詢指標的頻率,進而影響傳送至 Monitoring 的指標量。

如要進一步瞭解 Monitoring 的定價,請參閱 Google Cloud Observability 的定價

如要進一步瞭解查詢取樣間隔,請參閱「查詢的取樣間隔」。

查詢:預設和自訂

SAP HANA 監控代理程式會使用 SQL 查詢從 SAP HANA 收集指標。代理程式包含一組預設查詢,您可以新增自訂查詢。

預設查詢和自訂查詢都會擷取由 SAP HANA 系統檢視表定義的指標,這些檢視表的說明可參閱 SAP HANA SQL 和系統檢視表參考資料

預設查詢類型

預設查詢是內建查詢,可收集最常用的 SAP HANA 指標。

預設查詢的頻率取決於 configuration.yaml 檔案開頭的全球 sample_interval 屬性。預設值為 300 秒 (5 分鐘)。您可以修改這個全域預設值。與自訂查詢不同的是,您無法為個別預設查詢設定取樣間隔。

雖然您無法修改預設查詢,但可以在代理程式設定檔 configuration.yaml 中停用任何不需要的預設查詢。

如要進一步瞭解預設查詢、查詢收集的指標,以及查詢使用的基礎 SQL 陳述式,請參閱「預設查詢參考資料」。

自訂查詢類型

您可以在 SAP HANA 監控代理程式的 configuration.yaml 檔案中定義自訂查詢

針對自訂查詢,您可以為每個查詢指定 _sample_interval_,以便覆寫所有查詢的預設取樣間隔。詳情請參閱「查詢的取樣間隔」。

configuration.yaml 檔案包含兩個預設停用的自訂查詢範例。您可以將提供的自訂查詢做為自訂查詢的模型。下方的自訂查詢範例中列出自訂查詢範例。

自訂查詢的錯誤處理

代理程式不會在將查詢提交至 SAP HANA 前,驗證自訂查詢中的 SQL。

如果自訂查詢因 SQL 例外狀況而失敗,或是查詢中設定的資料欄與 SAP HANA 傳回的結果不符,代理程式就會將錯誤寫入記錄檔。無論是哪種情況,代理程式都會繼續執行自訂查詢,並將錯誤訊息寫入記錄,直到自訂查詢修正為止。

如需有關自訂查詢所需 SQL 語法的資訊,請參閱 SAP HANA SQL 和系統檢視表參考資料

查詢的取樣間隔

您可以為所有查詢定義全域取樣間隔,以及為自訂查詢定義個別取樣間隔。取樣間隔會決定監控代理程式向 SAP HANA 查詢指標的頻率。

所有查詢的預設取樣間隔為 300 秒 (5 分鐘)。您可以在 configuration.yaml 檔案開頭的 sample_interval 屬性中指定不同的值,藉此調整預設的取樣間隔。

您可以在查詢定義中指定 sample_interval 屬性,藉此覆寫個別自訂查詢的預設取樣間隔。

安裝架構

您可以在 Compute Engine VM 或裸機解決方案伺服器上安裝 SAP HANA 的監控代理程式。

您可以在 SAP HANA 所在的主機上或其他主機上安裝代理程式。

代理程式也可以監控在內部主機或其他雲端平台主機上執行的 SAP HANA 執行個體,只要主機有權存取Google Cloud API,且服務帳戶已適當設定即可。

從集中式 Compute Engine VM 進行遠端收集

下圖顯示安裝架構,其中代理程式會安裝在不同的主機 VM 上,而非執行 SAP HANA 執行個體的 VM 或伺服器。

HANA 監控代理程式設定 1

Compute Engine VM 和 Bare Metal 解決方案伺服器上的本機收集

如果防火牆規則限制了對環境的存取權,您可以在相同的 Compute Engine VM 或 Bare Metal Solution 伺服器上,安裝代理程式和 SAP HANA 執行個體。

下圖顯示安裝架構,其中代理程式會個別安裝在 Compute Engine VM 和 Bare Metal Solution 伺服器上。

HANA 監控代理程式設定 2

混合式收集架構

您也可以在 SAP HANA 執行個體所在的相同主機 VM 上安裝代理程式,並將代理程式設為監控裸機解決方案伺服器上的 SAP HANA 執行個體。

HANA 監控代理程式設定 3

如果您要監控多個 Google Cloud 專案中的 SAP HANA 執行個體,則必須在每個 Google Cloud 專案中安裝至少一個 SAP HANA 監控代理程式,且該專案必須包含您要監控的 SAP HANA 執行個體。

SAP HANA 監控代理程式高可用性設定

如果您要監控高可用性叢集中的 SAP HANA 執行個體,請在非叢集中的節點主機上安裝代理程式,以免代理程式受到容錯移轉的影響。

在設定檔 configuration.yaml 中,建議您針對浮動 IP 位址設定監控。在這種情況下,系統只會收集目前有效節點的指標。

HANA 監控代理程式設定 4

支援的作業系統

SAP HANA 的監控代理程式支援下列作業系統的一般和 SAP 產品:

  • Red Hat Enterprise Linux (RHEL) 7、8 和 9 附註
  • SUSE Linux Enterprise Server (SLES) 12 和 15

驗證和存取

SAP HANA 的監控代理程式需要 Identity and Access Management (IAM) 服務帳戶,以便使用 Google Cloud 進行驗證,並取得存取 Google Cloud 資源的權限。

指派給服務帳戶的 IAM 角色會決定代理程式可與哪些 Google Cloud資源互動。

除非您使用現有或預設的服務帳戶,否則必須在 Google Cloud 專案中建立服務帳戶,並為服務帳戶指派一或多個角色。

必要的 IAM 角色

無論您使用的是新、現有或預設服務帳戶,服務帳戶都必須包含角色,才能授予 SAP HANA 監控代理所需的權限。

預先定義的 IAM Monitoring 指標寫入者角色 (roles/monitoring.metricWriter) 會授予寫入指標至 Monitoring 的權限。

如果您使用 Secret Manager 儲存密碼,則需要以下項目:

  • 服務帳戶必須包含預先定義的角色 Secret Manager 密鑰存取者 (roles/secretmanager.secretAccessor),這個角色會授予存取 Secret Manager 中儲存的密鑰的權限。
  • VM 執行個體必須具備 cloud-platform 存取權範圍,才能存取 Secret Manager API。詳情請參閱「存取 Secret Manager API」。

指定服務帳戶

如果代理程式在 Compute Engine VM 上執行,則預設會使用主機 VM 的服務帳戶。您不需要在設定檔中指定服務帳戶。

主機 VM 服務帳戶通常是服務帳戶,具有您或同事建立的角色限制,但也可以是 Compute Engine 預設服務帳戶,預設權限較廣。

如果您需要使用主機 VM 服務帳戶以外的服務帳戶,或是代理程式並未在 Compute Engine VM 上執行,就必須使用 JSON 服務帳戶金鑰建立服務帳戶。您可以將 JSON 金鑰檔案儲存在可存取的位置,並在代理程式的 configuration.yaml 檔案中,於 service_account_json 屬性中指定 JSON 檔案的路徑。

如要進一步瞭解服務帳戶、角色和權限,請參閱:

存取 Google Cloud API

如果代理程式並未在 Compute Engine VM 上執行,您需要建立與 Google Cloud API 的連線。詳情請參閱「為內部部署主機設定私人 Google 存取權」。

Cloud Monitoring 中的 SAP HANA 指標

SAP HANA 監控代理程式會將從 SAP HANA 擷取的資料,以自訂指標資料的形式傳送至 Monitoring。為了傳送資料,代理程式會使用 Cloud Monitoring API,這個 API 會在您建立 Google Cloud 專案時預設啟用。

如需 Monitoring 的總覽,請參閱「Cloud Monitoring 簡介」。

在 Cloud Monitoring 中查看 SAP HANA 資料

監控服務收到 SAP HANA 的指標資料後,即可查看這些資料。

如要在 Monitoring 中查看 SAP HANA 資料,請使用資訊主頁編輯器或 Metrics Explorer 工具,在 Google Cloud 主控台中建立圖表,並在指標欄位中輸入 sap_hana。接著,您可以從下拉式選單中選取資料,其中包含所有可用的指標類型 (包括 sap_hana)。

如要在 Monitoring 中只顯示特定 SAP HANA 執行個體的資料,您可以使用 SAP HANA 主機 VM 的名稱篩選檢視畫面,這項資料是 Monitoring 中的指標標籤

如需詳細資訊,請參閱:

GitHub 上的 SAP HANA 資訊主頁定義

您可以在 GitHub 上找到 SAP HANA 的自訂資訊主頁定義,並在 Google Cloud 專案中安裝。請參閱 GitHub 上的 GoogleCloudPlatform/monitoring-dashboard-samples 存放區。SAP HANA 資訊主頁定義檔案 performance.jsonREADME.md 檔案位於 /dashboards/sap-hana 子目錄中。

安裝 SAP HANA 自訂資訊主頁後,您可以直接使用,也可以在 Google Cloud 控制台中進一步自訂。

如要安裝 SAP HANA 專用的自訂資訊主頁,請參閱「可安裝的資訊主頁」。

快訊通知

如要設定指標達到自訂門檻時的快訊通知,請在 Monitoring 中進行設定。

詳情請參閱快訊簡介

密碼管理

根據預設,SAP HANA 監控代理程式會使用預先定義的 SAP HANA SYSTEM 資料庫使用者帳戶查詢 SAP HANA 指標。您必須為代理程式監控的每個 SAP HANA 資料庫提供資料庫使用者帳戶密碼。

如要安全地將密碼提供給 SAP HANA 監控代理程式,您可以使用 Secret Manager,這是 Google Cloud的付費服務。

或者,您也可以在 configuration.yaml 檔案中,針對每個執行個體定義的 password 屬性,以純文字指定資料庫使用者密碼。

如要瞭解 Secret Manager 的定價,請參閱定價

SSL/TLS 支援

如果 SAP HANA 執行個體使用傳輸層安全 (TLS)/安全資料傳輸層 (SSL) 通訊協定,以保護 SAP HANA 資料庫與使用 SAP HANA SQL 介面的用戶端之間的通訊,您必須在 configuration.yaml 檔案的執行個體定義中指定 enable_ssl: true,在 SAP HANA 的監控代理程式中啟用 TLS/SSL 支援。

如果 SAP HANA 也已設定為驗證憑證,您可以設定代理程式來支援憑證驗證,並指定 KeyStore 和 Trustore 的路徑和密碼。

如需 SSL 和憑證檢查的代理程式設定屬性說明,請參閱「設定屬性說明」。

記錄

第一次啟動 SAP HANA 監控代理程式時,代理程式會在本機主機上建立記錄檔 /var/log/google-saphanamonitoring-agent.log,並在其中寫入所有記錄項目。

根據預設,當記錄檔達到 10.5 MB 時,系統會捨棄舊記錄,並將新記錄附加至檔案。

代理程式的記錄功能是由 conf/logging.properties 檔案設定。

支援

如果是基礎架構或服務相關問題,請與客戶服務團隊聯絡。 Google Cloud 您可以在 Google Cloud 控制台的「支援總覽」頁面中找到聯絡資訊。如果客戶服務團隊判定問題出在 SAP 系統,就會將您轉介給 SAP 支援團隊。

如要進一步瞭解 SAP 產品相關問題,請使用 SAP 支援登錄您的支援要求。SAP 會評估支援票證,如確定為 Google Cloud基礎架構方面的問題,就會將票證轉移至系統中的適當Google Cloud 元件:BC-OP-LNX-GOOGLEBC-OP-NT-GOOGLE

支援相關規定

您必須符合支援方案的最低需求,才能獲得 SAP 系統和Google Cloud基礎架構和服務的支援服務。

如要進一步瞭解Google Cloud上 SAP 的最低支援需求,請參閱:

定義自訂查詢

您可以在 configuration.yaml 檔案中定義自訂查詢。

自訂查詢定義包含描述查詢和傳回指標的屬性值,以及從 SAP HANA 擷取資料的 SQL 陳述式。

如需 SAP HANA 提供查詢的系統檢視表的完整清單,請參閱 SAP HANA SQL 和系統檢視表參考資料

建立自訂查詢時,請注意監控功能最適合用於摘要或匯總資料,不建議用於儲存高維度資料點。使用 SUM、AVG、COUNT、MIN 和 MAX 等 SQL 匯總函式,限制傳回的記錄數量。

如需自訂查詢的範例,請參閱「自訂查詢範例」。

自訂查詢屬性

下表說明用來定義自訂查詢的屬性。

屬性 說明
sample_interval 整數值 configuration.yaml 檔案頂端定義查詢之間的預設間隔 (以秒為單位)。在自訂查詢的定義中,這個屬性只會定義該查詢的取樣間隔,並覆寫預設值。
query_timeout 整數值 查詢失敗前執行查詢的時間 (以秒為單位)。預設值為 300 秒 (5 分鐘)。
queries 下列屬性說明僅適用於自訂查詢。
- name 字串 查詢的名稱。
enabled 布林值 判斷代理程式是否要將查詢提交至 SAP HANA。有效值為 truefalse
description 字串 您對查詢擷取的指標的說明。
sql 字串 您指定代理程式向 SAP HANA 發出的 SQL 陳述式。SQL 陳述式必須符合 SAP 定義的 SQL 語法。詳情請參閱 SAP HANA SQL 和系統檢視表參考資料
columns 每個欄定義都會說明由 Monitoring 處理的指標。
- name 字串 指標名稱,可在 Monitoring 中定義指標類型。
metric_type 字串 用於由 Monitoring 處理的指標類型,GAUGE 或 CUMULATIVE。
value_type 字串 如由 Monitoring 處理,則為指標的資料類型:BOOL、INT64 或 DOUBLE。指定指標類型支援的資料類型。詳情請參閱「支援的組合」。
description 字串 指標的說明。
units 字串 報告指標值時採用的單位。詳情請參閱 unit 欄位說明文件

自訂查詢範例

以下範例顯示兩個自訂查詢。安裝 SAP HANA 的監控代理程式時,這些查詢也會包含在 /usr/sap/google-saphanamonitoring-agent/conf/ 目錄中建立的 configuration.yaml 檔案中。範例查詢可做為您自訂查詢的模型。

- name: custom_memory_utilization
  enabled: false
  # sample_interval: 120
  description: |
    Custom Total memory utilization by services
  sql: |
    SELECT
           SUM(TOTAL_MEMORY_USED_SIZE) AS "mem_used",
           SUM(PHYSICAL_MEMORY_SIZE) AS "resident_mem_used"
    FROM M_SERVICE_MEMORY;
  columns:
  - name: mem_used
    metric_type: GAUGE
    value_type: INT64
    description: |
      Amount of memory from the memory pool.
    units: By
  - name: resident_mem_used
    metric_type: GAUGE
    value_type: INT64
    description: |
      Amount of memory used in total by all the services.
    units: By
- name: custom_total_memory_usage
  enabled: false
  # sample_interval: 120
  description: |
    Custom Amount of memory used in total by all column-tables
  sql: |
    SELECT
           SUM(MEMORY_SIZE_IN_TOTAL) AS "table_mem_used"
    FROM M_CS_TABLES;
  columns:
  - name: table_mem_used
    metric_type: GAUGE
    value_type: INT64
    description: |
      Amount of memory used in total (sum of memory size in the main, delta, and history
      parts) by all column-tables.
    units: By
# Add additional queries for custom metrics

預設查詢參照

SAP HANA 監控代理程式內建的預設查詢會從 SAP HANA 擷取下列資訊。

如果您不需要特定預設查詢提供的指標,可以在 configuration.yaml 檔案中在查詢名稱後方指定 enabled: false,藉此停用該查詢。

default_column_queries

內建查詢 default_column_queries 會擷取 SAP HANA M_CS_ALL_COLUMNS 系統檢視畫面中,各資料欄記憶體用量的相關資訊。

這項查詢會將下列指標傳送至 Monitoring:

指標名稱 指標 說明
資料欄記憶體大小 column/memory/total_size 指定 MEMORY_SIZE_IN_MAIN 和 MEMORY_SIZE_IN_DELTA 欄的總和。

default_component_queries

內建查詢 default_component_queries 會從 SAP HANA 擷取邏輯元件的服務專屬記憶體用量。查詢使用 SAP HANA M_SERVICE_COMPONENT_MEMORY 系統檢視畫面。

這項查詢會將下列指標傳送至 Monitoring:

指標名稱 指標 說明
已使用的元件記憶體 component/memory/total_used_size 目前用於邏輯元件的記憶體量。

default_connection_query

內建查詢 default_connection_query 會使用 SAP HANA M_CONNECTIONS 系統檢視表,擷取 SAP HANA 中執行和閒置連線的數量。

這項查詢會將下列指標傳送至 Monitoring:

指標名稱 指標 說明
系統連線 system/connection/total 系統的閒置和執行中連線數。

default_cpu_queries

內建查詢 default_cpu_queries 會使用 SAP HANA M_HOST_RESOURCE_UTILIZATION 系統檢視畫面,從 SAP HANA 擷取 CPU 使用率資訊。

這項查詢會將下列指標傳送至 Monitoring:

指標名稱 指標 說明
CPU 使用時間 host/cpu/usage_time 耗費的 CPU 作業時間。

default_alert_query

內建查詢 default_alert_query 會使用 _SYS_STATISTICS 結構描述的 SAP HANA STATISTICS_CURRENT_ALERTS 檢視畫面,從 SAP HANA 統計資料伺服器擷取目前快訊的數量和評分。

這項查詢會將下列指標傳送至 Monitoring:

指標名稱 指標 說明
警告數量 system/alert/total 系統統計資料中目前的警示數量:「1」、「2」、「3」、「4」或「5」。

default_host_queries

內建查詢 default_host_queries 會從 SAP HANA 擷取主機的記憶體用量。這項查詢會使用 SAP HANA M_HOST_RESOURCE_UTILIZATION 系統檢視畫面。

這項查詢會將下列指標傳送至 Monitoring:

指標名稱 指標 說明
主機記憶體大小 host/memory/total_size 主機上的實體記憶體總量。
主機使用的記憶體 host/memory/total_used_size 主機上使用的實體記憶體。
交換空間大小 host/swap_space/total_size 主機上的總換頁記憶體。
已使用的交換空間 host/swap_space/total_used_size 主機上使用的換頁記憶體。
已使用的執行個體記憶體 host/instance_memory/total_used_size SAP HANA 程序目前實際使用中的記憶體集區記憶體量。
用到的執行個體記憶體尖峰值 host/instance_memory/total_peak_used_size 自執行個體啟動以來,SAP HANA 程序使用記憶體集區的最高記憶體用量 (以樣本為準的值)。
已分配的執行個體記憶體 host/instance_memory/total_allocated_size 所有 SAP HANA 程序的記憶體集區大小。
執行個體程式碼大小 host/instance_code/total_size 程式碼大小,包括 SAP HANA 程序的共用程式庫。
已分配的執行個體共用記憶體 host/instance_shared_memory/total_allocated_size SAP HANA 程序的共用記憶體大小。

default_replication_query

內建查詢 default_replication_query 會使用 SAP HANA M_SERVICE_REPLICATION 系統檢視表,從 SAP HANA 擷取複製延遲資訊。

這項查詢會將下列指標傳送至 Monitoring:

指標名稱 指標 說明
複製資料延遲時間 system/replication_data_latency/total_time 系統的資料複製延遲時間。

default_rowstore_query

內建查詢 default_rowstore_query 會使用 SAP HANA M_RS_TABLES 系統檢視表,從 SAP HANA 擷取資料列儲存庫的大小。

這項查詢會將下列指標傳送至 Monitoring:

指標名稱 指標 說明
資料列儲存庫記憶體大小 rowstore/memory/total_size 包含固定和可變部分的資料列儲存庫記憶體大小。

default_schema_type_queries

內建查詢 default_schema_type_queries 會使用 SAP HANA M_CS_TABLES 系統檢視表,從 SAP HANA 擷取記憶體用量和記錄計數資訊。

這項查詢會將下列指標傳送至 Monitoring:

指標名稱 指標 說明
結構體記憶體大小 schema/memory/total_size 指定總記憶體大小,即主要、差異遷移和歷史記錄部分的記憶體大小總和。
結構定義記錄計數 schema/record/total 指定記錄計數。

default_schema_queries

內建查詢 default_schema_queries 會使用 SAP HANA M_CS_TABLES 系統檢視表,從 SAP HANA 擷取結構描述使用資訊。

這項查詢會將下列指標傳送至 Monitoring:

指標名稱 指標 說明
結構體預估的記憶體大小上限 schema/memory/estimated_max_total_size 指定已載入表格的總預估記憶體消耗量 (不含開放式交易的資料)。
上次壓縮結構定義記錄數量 schema/record/last_compressed_total 指定上次最佳化壓縮執行期間在主要部分中的項目數。
結構定義讀取計數 schema/read/total_count 指定資料表或分區的讀取存取次數。這不是針對此資料表的 SELECT 陳述式數量。SELECT 陳述式可能會涉及多個讀取存取。
結構定義寫入次數 schema/write/total_count 指定資料表或分區的寫入存取次數。這並非針對這個資料表的 DML 和 DDL 陳述式數量。DML 或 DDL 陳述式可能會涉及多個寫入存取作業。
結構定義合併次數 schema/merge/total_count 指定在資料表或分區上完成的差異遷移合併次數。

default_service_queries

內建查詢 default_service_queries 會從 SAP HANA 擷取服務使用的記憶體相關資訊。查詢使用 SAP HANA M_SERVICE_MEMORY 系統檢視畫面。

這項查詢會將下列指標傳送至 Monitoring:

指標名稱 指標 說明
服務使用的記憶體 service/memory/total_used_size 指定記憶體集區中正在使用的記憶體量。
服務的邏輯記憶體大小 service/logical_memory/total_size 從作業系統的角度指定虛擬記憶體大小。
服務實體記憶體大小 service/physical_memory/total_size 從作業系統的角度指定實體常駐記憶體大小。
服務代碼大小 service/code/total_size 指定程式碼大小,包括共用程式庫。
服務堆疊大小 service/stack/total_size 指定堆疊大小。
已分配的服務堆積記憶體 service/heap_memory/total_allocated_size 指定記憶體集區的堆積部分。
服務堆積記憶體用量 service/heap_memory/total_used_size 指定正在使用的集區堆積記憶體量。
已分配的服務共用記憶體 service/shared_memory/total_allocated_size 指定記憶體集區的共用記憶體部分。
服務共用記憶體用量 service/shared_memory/total_used_size 指定正在使用的集區共用記憶體量。
服務壓縮器的分配大小 service/compactor/total_allocated_size 指定記憶體集區的部分,在記憶體不足時可釋放 (如果未固定)。
服務壓實機可釋出的大小 service/compactors/total_freeable_size 指定在記憶體不足時可釋出的記憶體。
服務記憶體配置限制 service/memory/allocation_limit 指定記憶體集區大小上限 (可設定值)。
服務記憶體有效配置限制 service/memory/effective_allocation_limit 考量其他程序的集區大小 (計算值),指定有效的最大記憶體集區大小。

default_transaction_query

內建查詢 default_transaction_query 會使用 SAP HANA M_WORKLOAD 系統檢視表,從 SAP HANA 擷取交易 (更新、提交和復原) 的總數。

這項查詢會將下列指標傳送至 Monitoring:

指標名稱 指標 說明
系統交易 system/transaction/total_count 更新、修訂和復原交易的數量。

後續步驟