Google Cloud 上の SAP の指標ベースのアラート ポリシーを作成する

Google Cloud で SAP システムをモニタリングするには、Cloud Monitoring のアラート ポリシーを設定します。このポリシーは、構成ミスやリソース障害が発生した場合に SAP 管理者に通知します。

このドキュメントでは、一般的な HA の問題と、それらの問題に対するアラート ポリシーを作成する方法、また独自のカスタム アラートを作成するための参照としてアラートの例を使用する方法について説明します。このドキュメントで説明するアラートの例では、Monitoring Query Language(MQL)を使用して、Google Cloud の Agent for SAP によって生成された指標をクエリします。デフォルトでは、これらのアラートは特定の Google Cloud プロジェクト内のすべての SAP システムに適用されますが、アラートをカスタマイズして必要な SID をフィルタすることや、経過時間を調整してアラートをトリガーすることができます。

Cloud Monitoring アラートの動作については、アラートの概要をご覧ください。

始める前に

  • Monitoring アラート ポリシーの一般的なコンセプトに精通していることを確認してください。アラート ポリシーに関する説明は、アラートの概要をご覧ください。

  • モニタリングする SAP システムをホストする各インスタンスで、Google Cloud の SAP 用エージェントがインストールされ、Process Monitoring 指標を収集するように構成されていることを確認します。

  • Google Cloud コンソールを使用してアラート ポリシーを作成および変更するために必要な権限を取得するには、プロジェクトに対する次の IAM ロールの付与を管理者に依頼してください。

    ロールの付与の詳細については、アクセス権の管理をご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

  • アラートを受信するには、必要な通知チャネルを作成します。冗長性を確保するために、複数の通知チャネルを作成することをおすすめします。詳細については、通知チャンネルを作成して管理するをご覧ください。

事前定義のアラート ポリシーをインポートする

Google Cloud には、一般的な HA の問題をインポートしてアラートを設定できる事前定義のアラート ポリシーが用意されています。詳しくは、以下のセクションをご覧ください。

ロケーションの制約検出のためのアラートをインポートする

クラスタ コマンドを使用して Pacemaker クラスタ内のリソースを手動で移動すると、そのリソースに制約が追加されるか、クライアントの設定が特定のノードを優先するように設定されます。このような状況では、システム停止時にリソースのフェイルオーバーが妨げられる可能性があります。詳細については、ClusterLabs ドキュメントの 1 つのリソースの移動をご覧ください。

Google Cloud で実行されている SAP HA システムでこのような状況が発生した場合に通知を受け取るには、事前定義されたアラート ポリシー Pacemaker: Location constraint detected をインポートします。

このアラート ポリシーは、優先度ベースの制約が検出されると通知し、SAP 管理者に SAP の高可用性構成のトラブルシューティングガイドの「特定のノードを優先する意図しないノード アフィニティ」セクションを参照するよう指示します。このポリシーでは、Google Cloud の SAP 用エージェントによって収集される Process Monitoring の指標 workload.googleapis.com/sap/validation/pacemaker を使用します。

Google Cloud コンソールを使用してこのアラート ポリシーを Google Cloud プロジェクトにインポートするには、次の手順を行います。

  1. Google Cloud コンソールで [統合] ページに移動します。

    [インテグレーション] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。

  2. Google Cloud Agent for SAP でフィルタし、[詳細を表示] をクリックします。
  3. [アラート] タブに移動します。
  4. Pacemaker: Location constraint detected を選択して、[オプションを表示] > [アラート ポリシーをカスタマイズ] をクリックします。
  5. (省略可)Google Cloud プロジェクト内のすべての SAP システムではなく、特定の SAP システムに対してアラートを構成するには、クエリ エディタfilter ステートメントを次のように更新します。
    1. # 文字を削除します。
    2. 必要な SID を指定します。複数の SID を指定するには、| 文字を使用して SID を区切ります。このようなフィルタ ステートメントの例を次に示します。
      | filter (metric.sid =~ 'ABC|XYZ|HDB')

      この例では、ABCXYZHDB が SID です。

  6. (省略可)アラートをトリガーするまでの経過時間をカスタマイズするには、クエリ エディタwindow ステートメントを更新して、任意の測定単位を指定します。
    1. たとえば、制限時間を 3 分に設定するには、次のように設定します。
      | window 3m
  7. [アラートの詳細] で、[通知と名前] タブに移動します。
  8. 必要な通知チャンネルを選択します。
  9. アラートを確認して [ポリシーを作成] をクリックします。

リソース障害検出のアラートをインポートする

HA システムで、実行中のリソース エージェントが失敗した場合、Pacemaker はエージェントの停止と再起動を試みます。なんらかの理由で再起動オペレーションが失敗した場合、Pacemaker は、そのリソース エージェントの failcount 値を INFINITY に設定します(start-failure-is-fatal がデフォルトの true に設定されている場合)。その後、別のノードでエージェントを起動しようとします。すべてのノードでリソース エージェントが起動に失敗した場合、リソース エージェントは Stopped ステータスのままになります。このリソース エージェントを動作状態に戻すには、SAP 管理者がリソース エージェントの失敗回数を手動でクリアする必要があります。Pacemaker の failcount 動作の詳細については、ClusterLabs のドキュメントをご覧ください。

Google Cloud で実行されている SAP HA システムでこのような状況が発生した場合に通知を受け取るには、事前定義されたアラート ポリシー Pacemaker: Resource failed to start をインポートします。

このアラート ポリシーは、リソース エージェントの起動に失敗し、ステータスが Stopped のまま 3 分以上経過したときに通知します。このポリシーでは、SAP 管理者に SAP の高可用性構成のトラブルシューティングガイドの「リソース エージェントが停止している」セクションを参照するよう指示します。このポリシーでは、Google Cloud の SAP 用エージェントによって収集される Process Monitoring の指標 workload.googleapis.com/sap/cluster/failcounts を使用します。

Google Cloud コンソールを使用してこのアラート ポリシーを Google Cloud プロジェクトにインポートするには、次の手順を行います。

  1. Google Cloud コンソールで [統合] ページに移動します。

    [インテグレーション] に移動

    検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。

  2. Google Cloud Agent for SAP でフィルタし、[詳細を表示] をクリックします。
  3. [アラート] タブに移動します。
  4. Pacemaker: Resource failed to start を選択して、[オプションを表示] > [アラート ポリシーをカスタマイズ] をクリックします。
  5. (省略可)Google Cloud プロジェクト内のすべての SAP システムではなく、特定の SAP システムに対してアラートを構成するには、クエリ エディタfilter ステートメントを次のように更新します。
    1. # 文字を削除します。
    2. 必要な SID を指定します。複数の SID を指定するには、| 文字を使用して SID を区切ります。このようなフィルタ ステートメントの例を次に示します。
      | filter (metric.sid =~ 'ABC|XYZ|HDB')

      この例では、ABCXYZHDB が SID です。

  6. (省略可)アラートをトリガーするまでの経過時間をカスタマイズするには、クエリ エディタwindow ステートメントを更新して、任意の測定単位を指定します。
    1. たとえば、制限時間を 3 分に設定するには、次のように設定します。
      | window 3m
  7. [アラートの詳細] で、[通知と名前] タブに移動します。
  8. 必要な通知チャンネルを選択します。
  9. アラートを確認して [ポリシーを作成] をクリックします。

カスタム アラート ポリシーを作成する

事前定義のアラート ポリシーをインポートするだけでなく、更新して要件に合ったカスタム ポリシーを作成することもできます。これには、Google Cloud コンソールCloud Monitoring APIGoogle Cloud CLITerraform を使用できます。

まず、アラート ポリシー例の概要と、このドキュメントで説明する事前構成済みアラート ポリシーを確認することをおすすめします。

アラート ポリシーの管理または変更の方法については、アラート ポリシーを管理するをご覧ください。