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 ロールの付与を管理者に依頼してください。
-
すべて: モニタリング編集者(
roles/monitoring.editor
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
-
すべて: モニタリング編集者(
アラートを受信するには、必要な通知チャネルを作成します。冗長性を確保するために、複数の通知チャネルを作成することをおすすめします。詳細については、通知チャンネルを作成して管理するをご覧ください。
事前定義のアラート ポリシーをインポートする
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 プロジェクトにインポートするには、次の操作を行います。
-
Google Cloud コンソールで [
統合] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。
Google Cloud Agent for SAP
でフィルタし、[詳細を表示] をクリックします。- [アラート] タブに移動します。
- Pacemaker: Location constraint detected を選択して、[オプションを表示] > [アラート ポリシーをカスタマイズ] をクリックします。
- (省略可)Google Cloud プロジェクト内のすべての SAP システムではなく、特定の SAP システムに対してアラートを構成するには、クエリエディタで
filter
ステートメントを次のように更新します。sid
変数の前に存在する#
文字を削除します。- 必要な SID を指定します。複数の SID を指定するには、
|
文字を使用して SID を区切ります。このようなフィルタ ステートメントの例を次に示します。sid=~"ABC|HDB|XYZ"
この例では、
ABC
、XYZ
、HDB
が SID です。
- (省略可)アラートをトリガーするまでの経過時間をカスタマイズするには、クエリエディタで
window
ステートメントを更新して、任意の測定単位を指定します。- たとえば、制限時間を 3 分に設定するには、次のように設定します。
| window 3m
- たとえば、制限時間を 3 分に設定するには、次のように設定します。
- [アラートの詳細] で、[通知と名前] タブに移動します。
- 必要な通知チャンネルを選択します。
- アラートを確認して [ポリシーを作成] をクリックします。
リソース障害検出のアラートをインポートする
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 プロジェクトにインポートするには、次の操作を行います。
-
Google Cloud コンソールで [
統合] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。
Google Cloud Agent for SAP
でフィルタし、[詳細を表示] をクリックします。- [アラート] タブに移動します。
- Pacemaker: Resource failed to start を選択して、[オプションを表示] > [アラート ポリシーをカスタマイズ] をクリックします。
- (省略可)Google Cloud プロジェクト内のすべての SAP システムではなく、特定の SAP システムに対してアラートを構成するには、クエリエディタで
filter
ステートメントを次のように更新します。sid
変数の前に存在する#
文字を削除します。- 必要な SID を指定します。複数の SID を指定するには、
|
文字を使用して SID を区切ります。このようなフィルタ ステートメントの例を次に示します。sid=~"ABC|HDB|XYZ"
この例では、
ABC
、XYZ
、HDB
が SID です。
- (省略可)アラートをトリガーするまでの経過時間をカスタマイズするには、クエリエディタで
window
ステートメントを更新して、任意の測定単位を指定します。- たとえば、制限時間を 3 分に設定するには、次のように設定します。
| window 3m
- たとえば、制限時間を 3 分に設定するには、次のように設定します。
- [アラートの詳細] で、[通知と名前] タブに移動します。
- 必要な通知チャンネルを選択します。
- アラートを確認して [ポリシーを作成] をクリックします。
SAP HANA レプリケーション エラーのアラートをインポートする
SAP HANA プライマリ サイトで停止が発生した場合、セカンダリがプライマリと同期されていないと、プライマリからセカンダリ システムへの自動フェイルオーバーは実行できません。
このアラート ポリシーは、高可用性 SAP HANA システムのレプリケーション ステータスが 1 分以上同期されていない場合に通知します。このポリシーでは、systemReplication.py
スクリプトから派生した Process Monitoring の指標 workload.googleapis.com/sap/hana/ha/replication
を使用します。このポリシーでは、SAP 管理者に、プライマリ SAP HANA システムとセカンダリ SAP HANA システムのステータスとネットワーク接続を確認するよう指示しています。
Google Cloud で実行されている SAP HANA HA システムでこのような状況が発生した場合に通知を受け取るには、事前定義されたアラート ポリシー SAP HANA Replication is not in sync をインポートします。
Google Cloud コンソールを使用してこのアラート ポリシーを Google Cloud プロジェクトにインポートするには、次の操作を行います。
-
Google Cloud コンソールで [
統合] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。
Google Cloud Agent for SAP
でフィルタし、[詳細を表示] をクリックします。- [アラート] タブに移動します。
- SAP HANA Replication is not in sync を選択して、[オプションを表示] > [アラート ポリシーをカスタマイズ] をクリックします。
- (省略可)Google Cloud プロジェクト内のすべての SAP システムではなく、特定の SAP システムに対してアラートを構成するには、クエリエディタで
filter
ステートメントを次のように更新します。sid
変数の前に存在する#
文字を削除します。- 必要な SID を指定します。複数の SID を指定するには、
|
文字を使用して SID を区切ります。このようなフィルタ ステートメントの例を次に示します。sid=~"ABC|HDB|XYZ"
この例では、
ABC
、XYZ
、HDB
が SID です。
- (省略可)アラートをトリガーするまでの経過時間をカスタマイズするには、クエリエディタで
window
ステートメントを更新して、任意の測定単位を指定します。- たとえば、制限時間を 3 分に設定するには、次のように設定します。
| window 3m
- たとえば、制限時間を 3 分に設定するには、次のように設定します。
- [アラートの詳細] で、[通知と名前] タブに移動します。
- 必要な通知チャンネルを選択します。
- アラートを確認して [ポリシーを作成] をクリックします。
カスタム アラート ポリシーを作成する
事前定義のアラート ポリシーをインポートするだけでなく、更新して要件に合ったカスタム ポリシーを作成することもできます。これには、Google Cloud コンソール、Cloud Monitoring API、Google Cloud CLI、Terraform を使用できます。
まず、アラート ポリシー例の概要と、このドキュメントで説明する事前構成済みアラート ポリシーを確認することをおすすめします。
アラート ポリシーの管理または変更の方法については、アラート ポリシーを管理するをご覧ください。