本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
教學課程:設定 SAP HANA 的監控
本教學課程示範如何設定 CloudWatch Application Insights,以設定 SAP HANA 資料庫的監控。您可以使用 CloudWatch Application Insights 自動儀表板,以視覺化方式呈現問題詳細資訊、加速疑難排解,並改進 SAP HANA 資料庫的平均解決時間 (MTTR)。
SAP HANA 主題的 Application Insights
支援的環境
CloudWatch Application Insights 支援下列系統和模式 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 Application Insights 僅支援單一 SID HANA 環境。如果連接了多個 HANA SID,則僅為偵測到的第一個 SID 設定監控。
支援的作業系統
適用於 SAP HANA 的 CloudWatch Application Insights 支援下列作業系統上的 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 for SAP 搭配高可用性和更新服務
-
RedHat Linux 8.4 for SAP 搭配高可用性和更新服務
-
RedHat Linux 8.3 for SAP 搭配高可用性和更新服務
-
具有高可用性和更新服務的 RedHat Linux 8.2 For SAP
-
具有高可用性和更新服務的 RedHat Linux 8.1 For SAP
-
具有高可用性和更新服務的 RedHat Linux 7.9 For SAP
功能
適用於 SAP HANA 的 CloudWatch Application Insights 提供下列功能:
-
自動偵測 SAP HANA 工作負載
-
根據靜態閾值自動建立 SAP HANA 警示
-
根據異常偵測自動建立 SAP HANA 警示
-
自動 SAP HANA 日誌模式辨識
-
SAP HANA 的運作狀態儀表板
-
SAP HANA 的問題儀表板
先決條件
您必須完成以下先決條件,使用 CloudWatch Application Insights 設定 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.8 – 在作業系統上安裝 Python 3.8 或更新版本。使用最新版本的 Python。如果您的作業系統上未偵測到 Python3,則會安裝 Python 3.6。
如需更多資訊,請參閱installation example。
注意
SuSE Linux 15 SP4、RedHat Linux 8.6 及更新版本的作業系統需要手動安裝 Python 3.8 或更新版本。
-
Pip3 – 在作業系統上安裝安裝程式 pip3。如果沒有在您的作業系統上偵測到 pip3,則會安裝 pip3。
-
hdbclient – CloudWatch Application Insights 使用 python 驅動程式連線至 SAP HANA 資料庫。如果用戶端未安裝在 python3 下,請確定您在
2.10 or later
下具有 hdbclient tar 檔案版本/hana/shared/SID/hdbclient/
。 -
Amazon CloudWatch 代理程式 – 確保您沒有在 Amazon EC2 執行個體上執行預先存在的 CloudWatch 代理程式。若您安裝了 CloudWatch 代理程式,請確保從現有 CloudWatch 代理程式組態檔案中移除您要在 CloudWatch Application Insights 中使用的資源組態,以避免合併衝突。如需詳細資訊,請參閱手動建立或編輯 CloudWatch 代理程式組態檔案。
-
AWS Systems Manager 啟用 – 在執行個體上安裝 SSM 代理程式,且必須為 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 資源群組 – 您必須建立資源群組,其中包含應用程式堆疊用於將應用程式加入 CloudWatch Application Insights 的所有相關 AWS 資源。這包括執行 SAP HANA 資料庫的 Amazon EC2 執行個體和 Amazon EBS 磁碟區。如果每個帳戶有多個資料庫,建議您建立一個資源群組,其中包含每個 SAP HANA 資料庫系統 AWS 的資源。
-
IAM 許可 - 對於非管理員使用者:
-
您必須建立 AWS Identity and Access Management (IAM) 政策,允許 Application Insights 建立服務連結角色,並將其連接到您的使用者身分。如需連接政策的步驟,請參閱 CloudWatch 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 資料庫的監控
-
開啟 CloudWatch 主控台
。 -
從左側導覽窗格中,選擇 Insights 下的 Application Insights。
-
Application Insights 頁面會顯示 Application Insights 監控的應用程式清單,以及每個應用程式的監控狀態。在右上角,選擇 Add an application (新增應用程式)。
-
在 Specify application details (指定應用程式詳細資訊) 頁面上,從 Resource group (資源群組) 的下拉清單中選取 AWS 資源群組,其中包含您的 SAP HANA 資料庫資源。如果尚未建立應用程式的資源群組,您可以透過選擇 Resource group (資源群組) 下拉單中的 Create new resource group (建立新的資源群組) 建立一個。如需建立資源群組的詳細資訊,請參閱《AWS Resource Groups 使用者指南》。
-
在監控 CloudWatch Events 下,選取核取方塊以整合 Application Insights 監控與 CloudWatch Events,從 Amazon EBS、Amazon EC2 AWS CodeDeploy、Amazon ECS、 AWS Health APIs和通知、Amazon RDS、Amazon S3 和 取得洞見 AWS Step Functions。
-
在與 AWS Systems Manager OpsCenter 整合下,選取 Generate AWS Systems Manager OpsCenter OpsItems 旁的核取方塊,以便在偵測到所選應用程式的問題時檢視和取得通知。若要追蹤為了解決與 AWS 資源相關的操作工作項目而執行的操作,稱為 OpsItems,請提供 SNS 主題 ARN。
-
您可以選擇輸入標籤協助您識別和整理資源。CloudWatch Application Insights 支援標籤型和 AWS CloudFormation 堆疊型資源群組,但 Application Auto Scaling 群組除外。如需詳細資訊,請參閱 AWS Resource Groups 和標籤使用者指南中的標籤編輯器。
-
選擇 Next (下一個) 繼續設定監控。
-
在檢閱偵測到的元件頁面上,系統會列出 CloudWatch Application Insights 自動偵測到的受監控元件及其工作負載。
-
若要將工作負載新增至包含偵測到的 SAP HANA 單一節點工作負載的元件,請選取該元件,然後選擇編輯元件。
注意
包含偵測到的 SAP HANA 多節點或 HANA 高可用性工作負載的元件,一個元件上僅支援一個工作負載。
-
若要新增工作負載,請選擇新增工作負載。
-
完成編輯工作負載後,請選擇儲存變更。
-
-
選擇下一步。
-
在指定元件詳細資訊頁面上,輸入使用者的使用者名稱和密碼。
-
檢閱您的應用程式監控組態,然後選擇 Submit (提交)。
-
應用程式詳細資訊頁面隨即開啟,您可以在其中檢視應用程式摘要、受監控元件和工作負載的清單,以及未受監控元件和工作負載。如果選取元件或工作負載旁邊的選項按鈕,則您也可以檢視組態歷史記錄、日誌模式,以及任何已建立的標籤。當您提交組態時,您的帳戶會為 SAP HANA 系統部署所有指標和警示,這可能需要最多 2 小時。
管理 SAP HANA 資料庫的監控
您可以執行下列步驟來管理 SAP HANA 資料庫的使用者憑證、指標和日誌路徑:
-
開啟 CloudWatch 主控台
。 -
從左側導覽窗格中,選擇 Insights 下的 Application Insights。
-
Application Insights 頁面會顯示 Application Insights 監控的應用程式清單,以及每個應用程式的監控狀態。
-
在 Monitored components (受監控元件) 下,選取元件名稱旁的選項按鈕。然後,選擇 Manage monitoring (管理監控)。
-
在 EC2 instance group logs (EC2 執行個體群組日誌) 下,您可以更新現有的日誌路徑、日誌模式集和記錄群組名稱。此外,您可以新增最多三個額外 Application logs (應用程式日誌)。
-
在 Metrics (指標) 下,您可以根據需求選擇 SAP HANA 指標。SAP HANA 指標名稱的字首為
hanadb
。每個元件最多可新增 40 個指標。 -
在 HANA configuration (HANA 組態) 下,輸入 SAP HANA 資料庫的密碼和使用者名稱。這是 Amazon CloudWatch 代理程式用來連線至 SAP HANA 資料庫的使用者名稱和密碼。
-
在 Custom alarms (自訂警示) 下,您可以新增其他警示,以便由 CloudWatch Application Insights 監控。
-
檢閱您的應用程式監控組態,然後選擇 Submit (提交)。當您提交組態時,您的帳戶會為 SAP HANA 系統更新所有指標和警示,這可能需要最多 2 小時。
檢視與針對 CloudWatch Application Insights 偵測到的 SAP HANA 問題進行疑難排解
下列各節提供的步驟可協助您解決在 Application Insights 上設定 SAP HANA 監控時所發生的常見疑難排解案例。
SAP HANA 資料庫達到記憶體配置上限
描述
由 SAP HANA 資料庫提供技術的 SAP 應用程式因高記憶體壓力而發生故障,導致應用程式效能降低。
Resolution
您可以檢查顯示相關指標和日誌檔案程式碼片段的動態建立儀表板,找出造成問題的應用程式層。在下列範例中,問題可能是因為 SAP HANA 系統中的大型資料負載而產生。

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

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

磁碟已滿事件
描述
SAP HANA 資料庫提供技術的 SAP 應用程式停止回應,這會導致無法存取資料庫。
Resolution
您可以檢查顯示相關指標和日誌檔案程式碼片段的動態建立儀表板,找出造成問題的資料庫層。在下列範例中,問題可能是系統管理員無法啟用自動日誌備份,造成 sap/hana/log 目錄填滿。

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

SAP HANA 備份已停止執行
描述
SAP HANA 資料庫提供技術的 SAP 應用程式已停止運作。
Resolution
您可以檢查顯示相關指標和日誌檔案程式碼片段的動態建立儀表板,找出造成問題的資料庫層。
問題儀表板中的日誌群組小工具會顯示 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
根本原因 – 目前的指標限制為每個元件 60 個受監控的指標。
解決方案 – 若要保持在限制以下,請移除不需要的指標。
加入程序之後不會顯示任何SAP指標
使用以下資訊來了解為什麼 SAP 指標在加入程序後不會顯示在儀表板上。第一步是疑難排解為什麼 SAP 指標不會使用來自 Amazon EC2 執行個體的 AWS Management Console 或 Exporter 日誌顯示。接著,檢閱錯誤輸出以尋找解決方案。
故障診斷為什麼 SAP 指標在加入後未顯示
您可以從 Amazon EC2 執行個體使用 AWS Management Console 或 匯出工具日誌進行疑難排解。
解決 SAP 指標在加入後未出現的常見根本原因
下列範例說明如何解決 SAP 指標在加入後未出現的常見根本原因。
-
輸出顯示下列錯誤。
Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/default ... Reading json config file path: /opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ssm_AmazonCloudWatch-ApplicationInsights-SSMParameterForTESTCWEC2INSTANCEi0d88867f1f3e36285.tmp ... 2023/11/30 22:25:17 Failed to merge multiple json config files. 2023/11/30 22:25:17 Failed to merge multiple json config files. 2023/11/30 22:25:17 Under path : /metrics/append_dimensions | Error : Different values are specified for append_dimensions 2023/11/30 22:25:17 Under path : /metrics/metrics_collected/disk | Error : Different values are specified for disk 2023/11/30 22:25:17 Under path : /metrics/metrics_collected/mem | Error : Different values are specified for mem 2023/11/30 22:25:17 Configuration validation first phase failed. Agent version: 1.0. Verify the JSON input is only using features supported by this version.
解決方案:Application Insights 正在嘗試設定與現有 CloudWatch 代理程式組態檔案中預先設定的相同指標。在現有 CloudWatch 代理程式組態檔案中移除現有檔案,
/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/
或移除導致衝突的指標。 -
輸出顯示下列錯誤。
Unable to find a host with system database, for more info rerun using -v
解析 – 使用者名稱、密碼或資料庫連接埠可能不正確。確認使用者名稱、密碼和連接埠有效,然後重新執行加入程序。
-
輸出顯示下列錯誤。
This hdbcli installer is not compatible with your Python interpreter
解析度 – 升級 pip3 和 wheel,如下列 Python 3.6 範例所示。
python3.6 -m pip install --upgrade pip setuptools wheel
-
輸出顯示下列錯誤。
Unable to install hdbcli using pip3. Please try to install it
解決方案 – 確定您已遵循
hdbclient
先決條件或在 pip3 下hdbclient
手動安裝 。 -
輸出顯示下列錯誤。
Package 'boto3' requires a different Python: 3.6.15 not in '>= 3.7'
解決方案 – 此作業系統版本需要 Python 3.8 或更高版本。檢查 Python 3.8 先決條件並進行安裝。
-
輸出會顯示下列其中一個安裝錯誤。
Can not execute `setup.py` since setuptools is not available in the build environment
或
[SSL: CERTIFICATE_VERIFY_FAILED]
解決方案 – 使用 SUSE Linux 命令安裝 Python,如下列範例所示。下列範例會安裝最新版本的 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