教學課程:設定 SAP HANA 的監控 - Amazon CloudWatch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

教學課程:設定 SAP HANA 的監控

本教學課程示範如何設定 CloudWatch 應用程式見解,以設定 SAP HANA 資料庫的監視。您可以使用「 CloudWatch 應用程式深入解析」自動儀表板,以視覺化方式呈現問題詳細資料、加速疑難排解,並促進 SAP HANA 資料庫的平均解決時間 (MTTR)。

支援的環境

CloudWatch 應用程式深入解析支援下列系統和模式的AWS資源部署。您提供並安裝 SAP HANA 資料庫軟體和支援的 SAP 應用程式軟體。

  • 單一 Amazon EC2 執行個體上的 SAP HANA 資料庫 – SAP HANA 在單一節點、擴充規模的架構中,最多有 24 TB 的記憶體。

  • 多個 Amazon EC2 執行個體上的 SAP HANA 資料庫 – 多節點、水平擴展架構中的 SAP HANA。

  • 跨可用區域 SAP HANA 資料庫高可用性設定 – 使用 SUSE/RHEL 叢集跨兩個可用區域設定高可用性的 SAP HANA。

注意

CloudWatch 應用程式洞見僅支援單一 SID HANA 環境。如果連接了多個 HANA SID,則僅為偵測到的第一個 SID 設定監控。

支援的作業系統

CloudWatch SAP HANA 的應用程式深入解析可在下列作業系統上支援 x86-64 架構:

  • SuSE Linux 12 SP4 For SAP

  • SuSE Linux 12 SP5 For SAP

  • SuSE Linux 15

  • SuSE Linux 15 SP1

  • SuSE Linux 15 SP2

  • SuSE Linux 15 For SAP

  • SuSE Linux 15 SP1 For SAP

  • SuSE Linux 15 SP2 For SAP

  • SuSE Linux 15 SP3 For SAP

  • SuSE Linux 15 SP4 For SAP

  • SuSE Linux 15 SP5 For SAP

  • RedHat Linux 8.6 適用於具有高可用性和更新服務的 SAP

  • RedHat Linux 8.5 適用於具有高可用性和更新服務的 SAP

  • RedHat Linux 8.4 適用於具有高可用性和更新服務的 SAP

  • RedHat Linux 8.3 適用於具有高可用性和更新服務的 SAP

  • RedHat Linux 8.2 適用於具有高可用性和更新服務的 SAP

  • RedHat Linux 8.1 適用於具有高可用性和更新服務的 SAP

  • RedHat Linux 7.9 適用於具有高可用性和更新服務的 SAP

功能

CloudWatch SAP HANA 的應用程式洞察提供下列功能:

  • 自動偵測 SAP HANA 工作負載

  • 根據靜態閾值自動建立 SAP HANA 警示

  • 根據異常偵測自動建立 SAP HANA 警示

  • 自動 SAP HANA 日誌模式辨識

  • SAP HANA 的運作狀態儀表板

  • SAP HANA 的問題儀表板

必要條件

您必須執行下列必要條件,才能使用「 CloudWatch 應用程式見解」設定 SAP HANA 資料庫:

  • SAP HANA – 在 Amazon EC2 執行個體上安裝執行中且可存取的 SAP HANA 資料庫 2.0 SPS05。

  • SAP HANA 資料庫使用者 - 必須在 SYSTEM 資料庫和所有租用戶中建立具有監控角色的資料庫使用者。

    範例

    執行下列 SQL 命令可建立具有監控角色的使用者。

    su - <sid>adm hdbsql -u SYSTEM -p <SYSTEMDB password> -d SYSTEMDB CREATE USER CW_HANADB_EXPORTER_USER PASSWORD <Monitoring user password> NO FORCE_FIRST_PASSWORD_CHANGE; CREATE ROLE CW_HANADB_EXPORTER_ROLE; GRANT MONITORING TO CW_HANADB_EXPORTER_ROLE; GRANT CW_HANADB_EXPORTER_ROLE TO CW_HANADB_EXPORTER_USER;
  • Python 3.6 – 在您的作業系統上安裝 Python 3.6 或更高版本。使用最新版本的 Python。如果沒有在您的作業系統上偵測到 Python,則會安裝 Python 3.8。

    請參閱 installation examples

  • Pip3 – 在作業系統上安裝安裝程式 pip3。如果沒有在您的作業系統上偵測到 pip3,則會安裝 pip3。

  • Amazon CloudWatch 代理程式 — 確保您沒有在 Amazon EC2 執行個體上執行預先存在的 CloudWatch 代理程式。如果您已安裝 CloudWatch 代理程式,請務必從現有的 CloudWatch 代理程式組態檔案中移除您在 Ap CloudWatch plication Insights 中使用的資源組態,以避免合併衝突。如需詳細資訊,請參閱 手動建立或編輯 CloudWatch 代理程式組態檔

  • AWS Systems Manager 啟用 – 在執行個體上安裝 SSM Agent,且必須為 SSM 啟用執行個體。如需有關如何安裝 SSM Agent 的資訊,請參閱《AWS Systems Manager 使用者指南》中的使用 SSM Agent

  • Amazon EC2 執行個體角色 – 您必須連接下列 Amazon EC2 執行個體角色才能設定資料庫。

    • 您必須連接 AmazonSSMManagedInstanceCore 角色,以啟用 Systems Manager。如需詳細資訊,請參閱 AWS Systems Manager 以身分為基礎的政策範例

    • 您必須附加,CloudWatchAgentServerPolicy才能啟用透過 CloudWatch發出的執行個體指標和記錄檔。如需詳細資訊,請參閱建立 IAM 角色和使用者以搭配 CloudWatch代理程式使用

    • 您必須將下列 IAM 內嵌政策連接到 Amazon EC2 執行個體角色,才能讀取存放在 AWS Secrets Manager 中的密碼。如需內嵌政策的詳細資訊,請參閱《AWS Identity and Access Management 使用者指南》中的內嵌政策

      { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue" ], "Resource": "arn:aws:secretsmanager:*:*:secret:ApplicationInsights-*" } ] }
  • AWS資源群組 — 您必須建立一個資源群組,其中包含應用程式堆疊使用的所有相關AWS資源,以便將應用程式上載至「應用程式深入解析」。 CloudWatch 這包括執行 SAP HANA 資料庫的 Amazon EC2 執行個體和 Amazon EBS 磁碟區。如果每個帳戶有多個資料庫,我們建議您建立一個資源群組,其中包含每個 SAP HANA 資料庫系統的 AWS 資源。

  • IAM 許可 - 對於非管理員使用者:

    • 您必須建立 AWS Identity and Access Management (IAM) 政策,該政策允許 Application Insights 建立服務連結角色,並將角色連接到使用者身分。如需連接政策的步驟,請參閱 IAM 政策

    • 使用者必須擁有在 AWS Secrets Manager 中建立機密的許可,才能存放資料庫使用者憑證。如需詳細資訊,請參閱範例:建立機密的許可

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "secretsmanager:CreateSecret" ], "Resource": "arn:aws:secretsmanager:*:*:secret:ApplicationInsights-*" } ] }
  • 服務連結角色 – Application Insights 使用 AWS Identity and Access Management (IAM) 服務連結角色。系統會在您於 Application Insights 主控台建立第一個 Application Insights 應用程式時,為您建立服務連結角色。如需詳細資訊,請參閱 針對 CloudWatch Application Insights 使用服務連結角色

設定您的 SAP HANA 資料庫以進行監控

使用下列步驟設定 SAP HANA 資料庫的監控

  1. 開啟 CloudWatch主控台

  2. 在左側導覽窗格中,選擇基礎設施監控下的 Application Insights

  3. Application Insights 頁面會顯示 Application Insights 監控的應用程式清單,以及每個應用程式的監控狀態。在右上角,選擇 Add an application (新增應用程式)。

  4. Specify application details (指定應用程式詳細資訊) 頁面上,從 Resource group (資源群組) 的下拉清單中選取 AWS 資源群組,其中包含您的 SAP HANA 資料庫資源。如果尚未建立應用程式的資源群組,您可以透過選擇 Resource group (資源群組) 下拉單中的 Create new resource group (建立新的資源群組) 建立一個。如需建立資源群組的詳細資訊,請參閱《AWS Resource Groups 使用者指南》。

  5. 監控 CloudWatch 事件下,選取核取方塊,將應用程式洞察監控與 CloudWatch 事件整合,以取得來自 Amazon EBS、Amazon EC2 AWS CodeDeploy、Amazon ECS、AWS Health API 和通知、Amazon RDS、Amazon S3 和的見解。AWS Step Functions

  6. 在 [整合對象] 下 AWS Systems Manager OpsCenter,選取 [產生以AWS Systems Manager OpsCenter OpsItems 供修正動作] 旁邊的核取方塊,以檢視並在針對所選應用程式偵測到問題時取得通知。若要追蹤為解決與AWS資源相關的作業工作項目 (稱為 OpsItems) 而執行的作業,請提供 SNS 主題 ARN。

  7. 您可以選擇性地輸入標籤,以協助您識別和組織資源。 CloudWatch 應用程式深入解析同時支援以標籤AWS CloudFormation為基礎和堆疊式資源群組,但群組除外。Application Auto Scaling如需詳細資訊,請參閱 AWS Resource Groups 和標籤使用者指南中的標籤編輯器

  8. 選擇 Next (下一個) 繼續設定監控。

  9. 在 [檢閱偵測到的元件] 頁面上,會列出 CloudWatch 應用程式深入解析自動偵測的受監控元件及其工作負載。

    1. 若要將工作負載新增至包含偵測到的 SAP HANA 單一節點工作負載的元件,請選取該元件,然後選擇編輯元件

      注意

      包含偵測到的 SAP HANA 多節點或 HANA 高可用性工作負載的元件,一個元件上僅支援一個工作負載。

      
                                    「 CloudWatch 應用程式見解」主控台的「用於監視的複查元件」頁面:選取要編輯的元件。
    2. 若要新增工作負載,請選擇新增工作負載

      
                                    「應用程式深入解析」主控台的 CloudWatch 編輯元件區段:選擇左下角的按鈕以新增工作負載。
    3. 完成編輯工作負載後,請選擇儲存變更

  10. 選擇下一步

  11. 指定元件詳細資訊頁面上,輸入使用者的使用者名稱和密碼。

  12. 檢閱您的應用程式監控組態,然後選擇 Submit (提交)。

  13. 應用程式詳細資訊頁面隨即開啟,您可以在其中檢視應用程式摘要受監控元件和工作負載的清單,以及未受監控元件和工作負載。如果選取元件或工作負載旁邊的選項按鈕,則您也可以檢視組態歷史記錄日誌模式,以及任何已建立的標籤。當您提交組態時,您的帳戶會為 SAP HANA 系統部署所有指標和警示,這可能需要最多 2 小時。

管理 SAP HANA 資料庫的監控

您可以執行下列步驟來管理 SAP HANA 資料庫的使用者憑證、指標和日誌路徑:

  1. 開啟 CloudWatch主控台

  2. 在左側導覽窗格中,選擇基礎設施監控下的 Application Insights

  3. Application Insights 頁面會顯示 Application Insights 監控的應用程式清單,以及每個應用程式的監控狀態。

  4. Monitored components (受監控元件) 下,選取元件名稱旁的選項按鈕。然後,選擇 Manage monitoring (管理監控)。

  5. EC2 instance group logs (EC2 執行個體群組日誌) 下,您可以更新現有的日誌路徑、日誌模式集和記錄群組名稱。此外,您可以新增最多三個額外 Application logs (應用程式日誌)。

  6. Metrics (指標) 下,您可以根據需求選擇 SAP HANA 指標。SAP HANA 指標名稱的字首為 hanadb。每個元件最多可新增 40 個指標。

  7. HANA configuration (HANA 組態) 下,輸入 SAP HANA 資料庫的密碼和使用者名稱。這是 Amazon CloudWatch 代理程式用來連線至 SAP HANA 資料庫的使用者名稱和密碼。

  8. 在 [自訂警示] 底下,您可以新增其他警示,以供 CloudWatch 應用程式深入解析監控。

  9. 檢閱您的應用程式監控組態,然後選擇 Submit (提交)。當您提交組態時,您的帳戶會為 SAP HANA 系統更新所有指標和警示,這可能需要最多 2 小時。

設定警示閾值

CloudWatch 應用程式深入解析會自動建立 Amazon CloudWatch 指標以供監視的警示,以及該指標的閾值。當指標超過閾值達到指定的評估期間數,警示便會變更為 ALARM 狀態。請注意,Application Insights 不會保留這些設定。

若要編輯單一指標的警示,請執行以下步驟:

  1. 開啟 CloudWatch主控台

  2. 在導覽窗格中,選擇 Alarms (警示) > All alarms (所有警示)。

  3. 選取「 CloudWatch 應用程式深入解析」自動建立的警示旁邊的選項按鈕。然後選擇 Actions (動作),然後從下拉選單中選取 Edit (編輯)。

  4. Metric (指標) 下編輯下列參數。

    1. Statistic (統計數字) 下,選擇其中一個統計數字或預先定義的百分位數,或指定自訂的百分位數。例如 p95.45

    2. Period (期間) 下,選擇警示的評估期間。評估警示時,每個期間都會彙整為一個資料點。

  5. Conditions (條件) 下編輯下列參數。

    1. 選擇指標是否必須大於、小於,或等於閾值。

    2. 指定閾值。

  6. Additional configuration (其他組態) 下,編輯下列參數。

    1. Datapoints to alarm (警示的資料點) 下,指定資料點數或評估期間 (必須處於 ALARM 狀態啟動警示)。當兩個值相符時,如果超過指定的連續週期數,系統會建立進入 ALARM 狀態的警示。若要建立 n 個的 m 個警示,請針對第一個資料點,指定低於第二個資料點的值。如需評估警示的詳細資訊,請參閱評估警示

    2. Missing data treatment (遺失資料處理方式) 下,選擇警示在遺失某些資料點時的行為。如需遺失資料處理的詳細資訊,請參閱設定 CloudWatch 警示如何處理遺失的資料

    3. 若警示使用百分位數作為監控統計資料,則會出現一個 Percentiles with low samples (低樣本的百分位數) 方塊。選擇是要評估還是忽略具有低抽樣率的案例。若您選擇 ignore (maintain alarm state) (忽略 (維持警示狀態)),則會在抽樣大小過低時一律維持目前的警示狀態。如需低範例百分位數的詳細資訊,請參閱 以百分比為基礎的 CloudWatch 警報和低資料樣本

  7. 選擇下一步

  8. Notification (通知) 下,選取 SNS 主題來在警示處於 ALARM 狀態、OK 狀態或 INSUFFICIENT_DATA 狀態時進行通知。

  9. 選擇 Update alarm (更新警示)。

檢視和疑難排解 CloudWatch 應用程式深入解析偵測到的 SAP HAN

下列各節提供的步驟可協助您解決在 Application Insights 上設定 SAP HANA 監控時所發生的常見疑難排解案例。

SAP HANA 資料庫達到記憶體配置上限

描述

由 SAP HANA 資料庫提供技術的 SAP 應用程式因高記憶體壓力而發生故障,導致應用程式效能降低。

解析度

您可以檢查顯示相關指標和日誌檔案程式碼片段的動態建立儀表板,找出造成問題的應用程式層。在下列範例中,問題可能是因為 SAP HANA 系統中的大型資料負載而產生。


                        記憶體配置超出。

使用的記憶體配置超過總記憶體配置上限閾值的 80%。


                        顯示記憶體容量不足的日誌群組。

日誌群組會顯示記憶體容量不足的結構描述 BNR-DATA 和資料表 IMDBMASTER_30003。此外,日誌群組會顯示問題的確切時間、目前的全域位置限制、共用記憶體、程式碼大小和 OOM 保留區配置大小。


                        日誌群組文字。

磁碟已滿事件

描述

SAP HANA 資料庫提供技術的 SAP 應用程式停止回應,這會導致無法存取資料庫。

解析度

您可以檢查顯示相關指標和日誌檔案程式碼片段的動態建立儀表板,找出造成問題的資料庫層。在下列範例中,問題可能是系統管理員無法啟用自動日誌備份,造成 sap/hana/log 目錄填滿。


                        顯示記憶體容量不足的日誌群組。

問題儀表板中的日誌群組小工具會顯示 DISKFULL 事件。


                        顯示記憶體容量不足的日誌群組。

SAP HANA 備份已停止執行

描述

SAP HANA 資料庫提供技術的 SAP 應用程式已停止運作。

解析度

您可以檢查顯示相關指標和日誌檔案程式碼片段的動態建立儀表板,找出造成問題的資料庫層。

問題儀表板中的日誌群組小工具會顯示 ACCESS DENIED 事件。這包括其他資訊,例如 S3 儲存貯體、S3 儲存貯體資料夾和 S3 儲存貯體區域。


                        顯示記憶體容量不足的日誌群組。

SAP HANA 的異常偵測

針對特定 SAP HANA 指標 (例如執行緒計數),會 CloudWatch 套用統計和機器學習演算法來定義臨界值。這些演算法會在使用者介入程度最低的情況下,持續分析 SAP HANA 資料庫的指標、判斷正常基準以及表面異常情況。演算法會產生異常偵測模型,模型會產生預期值範圍,代表正常指標行為。

異常偵測演算法會考慮指標的季節性和趨勢變化。季節性變化可能是每小時、每日或每週,如下列 SAP HANA CPU 使用率範例所示。


                    顯示記憶體容量不足的日誌群組。

建立模型之後, CloudWatch 異常偵測會持續評估模型,並對其進行調整,以確保其盡可能準確。這包括重新訓練模型,以調整指標值是否隨著時間而演變,或是遇到突然變化。它還包括預測,以改善季節性,尖峰或稀疏指標的模型。

SAP HANA 的 Application Insights 疑難排解

本節提供的步驟可協助您解決 Application Insights 儀表板所傳回的常見錯誤。

無法新增超過 60 個監控指標

傳回錯誤Component cannot have more than 60 monitored metrics.

根本原因The current metric limit is 60 monitor metrics per component.

解決方案:移除不需要遵守限制的指標。

上架程序之後,不會顯示 SAP 指標或警示。

傳回錯誤:在 AWS Systems Manager 執行命令,AWS-ConfigureAWSPackage 失敗。

輸出會顯示下列錯誤:

Unable to find a host with system database, for more info rerun using -v

                    顯示記憶體容量不足的日誌群組。

解決方案:使用者名稱和密碼可能不正確。確認使用者名稱和密碼有效,然後重新執行上架程序。

輸出會顯示下列安裝錯誤:

ERROR: Can not execute `setup.py` since setuptools is not available in the build environment.

[SSL: CERTIFICATE_VERIFY_FAILED]

解決方案:使用以下範例 SUSE Linux 命令之一來安裝 Python:

範例 1

sudo zypper install -y python36

範例 2

安裝最新版本的 Python 3.8

wget https://www.python.org/ftp/python/3.8.<LATEST_RELEASE>/Python-3.8.<LATEST_RELEASE>.tgz tar xf Python-3.* cd Python-3.*/ sudo zypper install make gcc-c++ gcc automake autoconf libtool sudo zypper install zlib-devel sudo zypper install libopenssl-devel libffi-devel ./configure --with-ensurepip=install sudo make sudo make install sudo su python3.8 -m pip install --upgrade pip setuptools wheel