チュートリアル: SAP HANA のモニターリングを設定する - Amazon CloudWatch

チュートリアル: SAP HANA のモニターリングを設定する

このチュートリアルでは、SAP HANA データベースのモニターリングを設定できるよう CloudWatch Application Insights を設定する方法を説明します。CloudWatch Application Insights の自動ダッシュボードを使用して、問題の詳細を可視化し、トラブルシューティングを加速させ、SAP HANA データベースでの解決までの平均時間 (MTTR) を短縮できます。

サポートされている環境

CloudWatch Application Insights では、次のシステムおよびパターン用に AWS リソースのデプロイがサポートされています。SAP HANA データベースソフトウェアおよびサポートされている SAP アプリケーションソフトウェアを指定してインストールします。

  • 単一の Amazon EC2 インスタンスでの SAP HANA データベース ― シングルノードのスケールアップアーキテクチャにおける SAP HANA で、メモリは最大 24 TB です。

  • 複数の Amazon EC2 インスタンスでの SAP HANA データベース ― マルチノードのスケールアウトアーキテクチャにおける SAP HANA です。

  • クロス AZ SAP HANA データベースの高可用性セットアップ ― SUSE/RHEL クラスタリングにより 2 つのアベイラビリティーゾーンでの高可用性が設定されている 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 For SAP With High Availability and Update Services

  • RedHat Linux 8.5 For SAP With High Availability and Update Services

  • RedHat Linux 8.4 For SAP With High Availability and Update Services

  • RedHat Linux 8.3 For SAP With High Availability and Update Services

  • RedHat Linux 8.2 For SAP With High Availability and Update Services

  • RedHat Linux 8.1 For SAP With High Availability and Update Services

  • RedHat Linux 7.9 For SAP With High Availability and Update Services

機能

SAP HANA 向けの CloudWatch Application Insights には、次の機能があります。

  • SAP HANA ワークロードの自動検出

  • 静的しきい値に基づく SAP HANA アラームの自動作成

  • 異常検出に基づく SAP HANA アラームの自動作成

  • SAP HANA のログパターンの自動認識

  • SAP HANA 用のヘルスダッシュボード

  • SAP HANA 用の問題ダッシュボード

前提条件

CloudWatch Application Insights で SAP HANA データベースを設定するには、次の前提条件を実行する必要があります。

  • SAP HANA – 実行中およびアクセス可能な SAP HANA データベース 2.0 SPS05 を Amazon EC2 インスタンスにインストールします。

  • 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 が検出されない場合、インストールされます。

  • hdbclient — CloudWatch Application Insights は、python ドライバーを使用して SAP HANA データベースに接続します。クライアントが python3 にインストールされていない場合は、hdbclient tar ファイルのバージョン 2.10 or later/hana/shared/SID/hdbclient/ に存在することを確認してください。

  • Amazon CloudWatch エージェント — Amazon EC2 インスタンスで既存の CloudWatch エージェントが実行されていないことを確認します。CloudWatch エージェントがインストールされている場合は、マージ競合を避けるために、既存の CloudWatch エージェント設定ファイルから CloudWatch Application Insights で使用しているリソースの設定を削除するようにしてください。詳細については、「 CloudWatch エージェント設定ファイルを手動で作成または編集する」を参照してください。

  • AWS Systems Manager の有効化 – インスタンスに SSM Agent をインストールし、インスタンスを SSM に対して有効にします。SSM Agent のインストールについての詳細は、「AWS Systems Manager ユーザーガイド」の「SSM Agent の使用」を参照してください。

  • Amazon EC2 インスタンスロール — 次の Amazon EC2 インスタンスロールをアタッチして、データベースを設定する必要があります。

    • Systems Manager を有効にする AmazonSSMManagedInstanceCore ロールをアタッチする必要があります。詳細については、「AWS Systems Manager アイデンティティベースのポリシーの例」を参照してください。

    • インスタンスメトリクスとログが CloudWatch を介して発行されるように CloudWatchAgentServerPolicy をアタッチする必要があります。詳細については、「CloudWatch エージェントで使用する IAM ロールとユーザーを作成する」を参照してください

    • AWS Secrets Manager に保存されているパスワードを読み取るには、次の IAM インラインポリシーを Amazon EC2 インスタンスロールにアタッチする必要があります。インラインポリシーの詳細については、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 ボリュームが含まれます。1 つのアカウントに複数のデータベースがある場合は、各 SAP HANA データベースシステムの AWS リソースを含む 1 つのリソースグループを作成することをお勧めします。

  • IAM アクセス許可 — 管理者以外のユーザーの場合:

    • Application Insights でサービスにリンクされたロールを作成できる AWS Identity and Access Management (IAM) ポリシーを作成し、ユーザー ID にアタッチする必要があります。ポリシーをアタッチする手順については、「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. 左側のナビゲーションペインで、[Insights] の下にある [Application Insights] を選択します。

  3. [Application Insights] ページには、Application Insights でモニターリングするアプリケーションのリストと、各アプリケーションのモニターリングのステータスが表示されます。右上隅の [Add an application] (アプリケーションの追加) を選択します。

  4. [Specify application details] (アプリケーションの詳細の指定) ページで、[Resource group] (リソースグループ) のドロップダウンリストから SAP HANA データベースのリソースを含む AWS リソースグループを選択します。アプリケーションのリソースグループを作成していない場合は、[Resource group] (リソースグループ) のドロップダウンから、[Create new resource group] (新しいリソースグループの作成) を選択して作成できます。リソースグループの作成についての詳細は、AWS Resource Groups ユーザーガイドを参照してください。

  5. [Monitor CloudWatch Events] (CloudWatch Events のモニタリング) で、CloudWatch Events と Application Insights のモニタリングを統合できるチェックボックスをオンにすると、Amazon EBS、Amazon EC2、AWS CodeDeploy、Amazon ECS、AWS Health APIs And Notifications、Amazon RDS、Amazon S3、および AWS Step Functions からのインサイトを取得できます。

  6. 選択したアプリケーションの問題が検出されたときにそれらを表示し、通知を受け取るには、[AWS Systems Manager OpsCenter と統合する] にある [修正アクションのため AWS Systems Manager OpsCenter OpsItems を生成する] 横のチェックボックスをオンにします。AWS リソースに関連する OpsItems というオペレーション作業項目を解決するために実行されたオペレーションを追跡するには、SNS トピックの ARN を指定します。

  7. オプションでタグを入力して、リソースを特定し整理できます。CloudWatch Application Insights では、タグベースのリソースグループと AWS CloudFormation スタックベースのリソースグループ (Application Auto Scaling グループを除く) の両方がサポートされています。詳細については、AWS Resource Groups とタグユーザーガイドの「Tag Editor」を参照してください。

  8. [Next] (次へ) を選択してモニターリングの設定を続行します。

  9. [検出されたコンポーネントを確認] ページには、CloudWatch Application Insights によって自動的に検出されたモニターリング対象のコンポーネントとそれらのワークロードが一覧表示されます。

    1. 検出された SAP HANA 単一ノードワークロードを含むコンポーネントにワークロードを追加するには、コンポーネントを選択し [コンポーネントを編集] を選択します。

      注記

      検出された SAP HANA マルチノードまたは HANA 高可用性ワークロードを含むコンポーネントは、1 つのコンポーネントで 1 つのワークロードのみをサポートします。

      CloudWatch Application Insights コンソールのモニタリング用コンポーネントの確認ページ: 編集するコンポーネントを選択します。
    2. 新しいワークロードを追加するには、[新しいワークロードを追加] を選択します。

      CloudWatch Application Insights コンソールのコンポーネント編集セクション: 左下のボタンを選択してワークロードを追加します。
    3. ワークロードの編集が完了したら、[変更の保存] を選択します。

  10. [Next] を選択します。

  11. [コンポーネントの詳細を指定] ページで、ユーザー名とパスワードを入力します。

  12. アプリケーションのモニターリング設定を確認し [Submit] (送信) をクリックします。

  13. アプリケーション詳細ページが開き、[アプリケーションの概要] および [モニタリング対象コンポーネントとワークロード][モニタリング対象ではないコンポーネントとワークロード] のリストを表示できます。コンポーネントまたはワークロードの横にあるラジオボタンをオンにすると、[設定履歴][ログパターン] 、および作成したタグも表示できます。設定を送信すると、アカウントで SAP HANA システムのすべてのメトリクスとアラームがデプロイされます。これには最大 2 時間かかります。

SAP HANA データベースのモニターリングの管理

次の手順を実行して、SAP HANA データベースのユーザー認証情報、メトリクス、およびログパスを管理できます。

  1. CloudWatch コンソールを開きます。

  2. 左側のナビゲーションペインで、[Insights] の下にある [Application Insights] を選択します。

  3. [Application Insights] ページには、Application Insights でモニターリングするアプリケーションのリストと、各アプリケーションのモニターリングのステータスが表示されます。

  4. [Monitored components] (モニターリングされているコンポーネント) で、コンポーネント名の横にあるラジオボタンをオンにします。次に、[Manage monitoring] (モニターリングの管理) を選択します。

  5. [EC2 instance group logs] (EC2 インスタンスグループのログ) では、既存のログパス、ログパターンのセット、ロググループ名を更新できます。さらに、追加で Application logs (アプリケーションログ) を最大 3 つまで追加できます。

  6. [Metrics] (メトリクス) では、要件に応じて SAP HANA メトリクスを選択できます。SAP HANA のメトリクス名は、hanadb で始まります。コンポーネントごとに最大 40 個のメトリクスを追加できます。

  7. [HANA configuration] (HANA の設定) で、SAP HANA データベースのパスワードとユーザー名を入力します。これらは、Amazon CloudWatch エージェントが SAP HANA データベースに接続するために使用されるユーザー名とパスワードです。

  8. [Custom alarms] (カスタムアラーム) では、CloudWatch Application Insights によってモニターリングするアラームを追加できます。

  9. アプリケーションのモニターリング設定を確認し、[Submit] (送信) をクリックします。設定を送信すると、アカウントで SAP HANA システムのすべてのメトリクスとアラームが更新されます。これには最大 2 時間かかります。

CloudWatch Application Insights で検出された SAP HANA における問題の表示とトラブルシューティング

次のセクションでは、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

根本原因 – 現在の監視対象メトリクスの上限は、コンポーネントごとに 60 個です。

解決方法 – 制限を超えないように、必要のないメトリクスを削除します。

オンボーディングプロセス後に SAP メトリクスが表示されない

次の情報を参照して、オンボーディングプロセス後に SAP メトリクスがダッシュボードに表示されない理由を特定してください。最初のステップは、Amazon EC2 インスタンスの AWS Management Consoleまたはエクスポーターログを使用して、SAP メトリクスが表示されない理由をトラブルシューティングすることです。次に、エラー出力を確認して解決策を見つけます。

オンボーディング後に SAP メトリクスが表示されない理由をトラブルシューティングします。

Amazon EC2 インスタンスの AWS Management Consoleまたはエクスポーターログをトラブルシューティングに使用できます。

AWS Management Console
オンボーディング後に SAP メトリクスが表示されない問題をコンソールを使用してトラブルシューティングする
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. 左側のナビゲーションペインで、[ステートマネージャー] を選択します。

  3. [関連付け] で、文書 AWSEC2-ApplicationInsightsCloudwatchAgentInstallAndConfigure のステータスを確認します。ステータスが Failed の場合は、[実行 ID] で失敗した ID を選択し、出力を表示します。

  4. [関連付け] で、文書 AWS-ConfigureAWSPackage のステータスを確認します。ステータスが Failed の場合は、[実行 ID] で失敗した ID を選択し、出力を表示します。

Exporter logs from Amazon EC2 instance
オンボーディング後に SAP メトリクスが表示されない問題をエクスポーターログを使用してトラブルシューティングする
  1. SAP HANA データベースが実行されている Amazon EC2 インスタンスに接続します。

  2. 次のコマンドを使用して、WORKLOAD_SHORT_NAME に使用する正しい命名規則を見つけます。この省略名は次の 2 つのステップで使用します。

    sudo systemctl | grep exporter
    注記

    Application Insights は、実行中のワークロードに応じて、サービス名にサフィックス WORKLOAD_SHORT_NAME を追加します。SAP HANA のシングルノード、マルチノード、高可用性デプロイの省略名は HANA_SNHANA_MN、および HANA_HA です。

  3. エクスポーターマネージャーのサービスログにエラーがないかチェックするには、WORKLOAD_SHORT_NAMEステップ 2 で見つけた省略名に置き換えて、次のコマンドを実行します。

    sudo journalctl -e --unit=prometheus-hanadb_exporter_manager_WORKLOAD_SHORT_NAME.service
  4. エクスポーターマネージャーのサービスログにエラーが表示されない場合は、次のコマンドを実行してエクスポーターサービスログにエラーがないか確認します。

    sudo journalctl -e --unit=prometheus-hanadb_exporter_WORKLOAD_SHORT_NAME.service

オンボーディング後に 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 エージェントの設定ファイルの一部として事前設定されているものと同じメトリクスを設定しようとしています。/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.d/ にある既存のファイルを削除するか、既存の CloudWatch エージェントの設定ファイルから競合の原因となっているメトリクスを削除します。

  • 出力では、次のエラーが表示されます。

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

    解決策 — ユーザー名、パスワード、またはデータベースポートが間違っている可能性があります。ユーザー名、パスワード、およびポートが有効であることを確認し、その後オンボーディングプロセスに戻ります。

  • 出力では、次のエラーが表示されます。

    This hdbcli installer is not compatible with your Python interpreter

    解決策 — Python 3.6 の次の例に示すように、pip3 と wheel をアップグレードします。

    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