

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS のサービスを使用して SAP RHEL Pacemaker クラスターをモニタリングする
<a name="monitor-sap-rhel-pacemaker-clusters-by-using-aws-services"></a>

*Amazon Web Services、Harsh Thoria、Randy Germann、RAVEENDRA Voore*

## 概要
<a name="monitor-sap-rhel-pacemaker-clusters-by-using-aws-services-summary"></a>

このパターンでは、Amazon CloudWatch と Amazon Simple Notiﬁcation Service (Amazon SNS) を使用して、SAP アプリケーションおよび SAP HANA データベースサービス用の Red Hat Enterprise Linux (RHEL) ペースメーカークラスターのアラートをモニタリングおよび設定する手順の概要を示します。

この設定を行うことで、CloudWatch ログストリーム、メトリクスフィルター、アラームを使用して、SAP SCS または ASCS、エンキューレプリケーションサーバー (ERS)、SAP HANA クラスターリソースが「停止」状態になったときにモニタリングできます。Amazon SNS は、停止したクラスターのステータスに関する E メールをインフラストラクチャまたは SAP Basis チームに送信します。

このパターンの AWS リソースは、 AWS CloudFormation スクリプトまたは AWS サービスコンソールを使用して作成できます。このパターンではコンソールの使用を前提としています。CloudFormation スクリプトの提供や、CloudWatch および Amazon SNS のインフラストラクチャデプロイには対応しません。Pacemaker コマンドは、クラスターアラート設定を設定するために使用されます。

## 前提条件と制限
<a name="monitor-sap-rhel-pacemaker-clusters-by-using-aws-services-prereqs"></a>

**前提条件**
+ アクティブな AWS アカウント。
+ E メールまたはモバイル通知を送信するように Amazon SNS を設定します。
+ SAP ASCS/ERS for ABAP または SCS/ERS for Java、および SAP HANA Database RHEL Pacemaker クラスター。手順については、以下を参照してください。
  + [SAP HANA cluster setup](https://docs.aws.amazon.com/sap/latest/sap-hana/sap-hana-on-aws-manual-deployment-of-sap-hana-on-aws-with-high-availability-clusters.html)
  + [SAP Netweaver ABAP/Java cluster setup](https://docs.aws.amazon.com/sap/latest/sap-netweaver/sap-netweaver-ha-configuration-guide.html)

**制限事項**
+ このソリューションは、現在 RHEL バージョン 7.3 以降の Pacemaker ベースのクラスターで動作します。SUSE オペレーティングシステムではテストされていません。

**製品バージョン**
+ RHEL 7.3 以降

## アーキテクチャ
<a name="monitor-sap-rhel-pacemaker-clusters-by-using-aws-services-architecture"></a>

**ターゲットテクノロジースタック**
+ RHEL Pacemaker アラートイベント駆動型エージェント
+ Amazon Elastic Compute Cloud (Amazon EC2)
+ CloudWatch アラーム
+ CloudWatch ロググループとメトリクスフィルター
+ Amazon SNS

**ターゲット アーキテクチャ**

次の図は、このソリューションのコンポーネントとワークフローを示しています。

![SAP RHEL Pacemaker クラスターをモニタリングするためのアーキテクチャ](https://docs.aws.amazon.com/ja_jp/prescriptive-guidance/latest/patterns/images/pattern-img/ca4d282e-eadd-43fd-8506-3dbeb43e4db6/images/bfc96678-1fd3-47b6-8f09-bf7cf7c4a92c.png)


**自動化とスケール**
+ CloudFormation スクリプトを使用して、 AWS リソースの作成を自動化できます。追加のメトリクスフィルターを使用して、複数のクラスターをスケールおよびカバーすることもできます。

## ツール
<a name="monitor-sap-rhel-pacemaker-clusters-by-using-aws-services-tools"></a>

**AWS サービス**
+ [Amazon CloudWatch](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html) は、 AWS リソースと で実行するアプリケーションのメトリクスを AWS リアルタイムでモニタリングするのに役立ちます。
+  [Amazon Simple Notiﬁcation Service (Amazon SNS)](https://docs.aws.amazon.com/sns/latest/dg/welcome.html) は、ウェブサーバーやメールアドレスなど、パブリッシャーとクライアント間のメッセージの交換を調整および管理するのに役立ちます。

**ツール**
+ CloudWatch エージェント (統合) は、EC2 インスタンスからシステムレベルのメトリクス、ログ、トレースを収集し、アプリケーションからカスタムメトリクスを取得するツールです。
+ Pacemaker アラートエージェント (RHEL 7.3 以降に対応) は、Pacemaker クラスターでリソースが停止または再起動したときなど、変更があったときにアクションを開始するツールです。

## ベストプラクティス
<a name="monitor-sap-rhel-pacemaker-clusters-by-using-aws-services-best-practices"></a>
+ で SAP ワークロードを使用するためのベストプラクティスについては AWS、 AWS 「 Well-Architected フレームワークの [SAP レンズ](https://docs.aws.amazon.com/wellarchitected/latest/sap-lens/sap-lens.html)」を参照してください。
+ SAP HANA クラスターの CloudWatch モニタリングの設定に関連するコストをご検討ください。詳しくは「[CloudFront ドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_billing.html)」をご確認ください。
+ Amazon SNS アラートへのページャーまたはチケット発行メカニズム導入をご検討ください。
+ **pcs**、Pacemaker、およびフェンシングエージェントの RPM パッケージの RHEL 高可用性 (HA) AWS バージョンを必ず確認してください。

## エピック
<a name="monitor-sap-rhel-pacemaker-clusters-by-using-aws-services-epics"></a>

### Amazon SNS をセットアップする
<a name="set-up-sns"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| SNS トピックを作成します。 | 1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/sns/v3/home](https://console.aws.amazon.com/sns/v3/home) で Amazon SNS コンソールを開きます。<br />2. Amazon SNS ダッシュボードの [**Common actions**] の下で、[**Create topic**] を選択します。 <br />3. **[新しいトピックの作成]** ダイアログボックスの **[タイプ]** で、**[標準]** を選択します。<br />4. **[トピック名]** にトピックの名前 (`my-topic` など) を入力します。<br />5. **[トピックを作成]** を選択します。<br />これにより、通知を発行できるリソースポリシーを持つ SNS トピックが作成されます。<br />6. **トピック ARN** をコピーします (例: `arn:aws:sns:us-east-1:111122223333:my-topic`)。この ARN は、後のステップで必要になります。 | AWS 管理者 | 
| SNS トピックのアクセスポリシーを変更します。 | 1. Amazon SNS コンソールのナビゲーションペインで **[トピック]** を選択し、作成したトピックを選択します。 <br />2. **[編集]** を選択し、**[アクセスポリシー]** セクションに移動します。<br />3. アクセスポリシーに、このトピックへの発行が許可されているサービスプリンシパルの 1 つとして CloudWatch が含まれていることを確認します。例えば、次のようになります。<pre>   { <br />      "Sid": "Allow AWS CloudWatch to Publish to this SNS topic",<br />      "Effect": "Allow",<br />      "Principal": {<br />        "Service": [<br />          "cloudwatch.amazonaws.com"<br />        ]<br />      },<br />      "Action": "SNS:Publish",<br />      "Resource": "arn:aws:sns:us-east-1:111122223333:my-topic"<br />    }</pre><br />4. **[Save changes]** (変更の保存) をクリックします。 | AWS システム管理者 | 
| SNS トピックにサブスクライブします。 | 1. Amazon SNS コンソールのナビゲーションペインで、**[サブスクリプション]**、**[サブスクリプションの作成]** の順に選択します。<br />2. **[トピック ARN]** に最初のタスクで作成した ARN を貼り付けます。<br />3. [**Protocol (プロトコル)**] として [**Email (E メール)**] を選択してください。<br />4. **[エンドポイント]** に SAP Pacemaker クラスターを担当し、通知を受け取る担当者またはチームの E メールアドレスを入力します。例えば、SAP Basis またはインフラストラクチャチームのディストリビューションリストの E メールアドレスを指定できます。<br />5. [**Create subscription**] を選択してください。<br />6. E メールアプリケーションから、 AWS 通知からのメッセージを開き、サブスクリプションを確認します。ウェブブラウザに Amazon SNS の確認画面が表示されます。 | AWS システム管理者 | 

### クラスターの設定を確認する
<a name="confirm-the-setup-of-the-cluster"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| クラスターのステータスを確認します。 | **pcs status** コマンドを使用して、リソースがオンラインであることを確認します。 | SAP ベーシス管理者 | 

### Pacemaker アラートを設定する
<a name="configure-pacemaker-alerts"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| プライマリクラスターインスタンスで Pacemaker アラートエージェントを設定します。 | プライマリークラスターの EC2 インスタンスにログインし、次のコマンドを実行します。<pre>install --mode=0755 /usr/share/pacemaker/alerts/alert_file.sh.sample<br />touch /var/lib/pacemaker/alert_file.sh<br />touch /var/log/pcmk_alert_file.log<br />chown hacluster:haclient /var/log/pcmk_alert_file.log<br />chmod 600 /var/log/pcmk_alert_file.log<br />pcs alert create id=alert_file description="Log events to a file." path=/var/lib/pacemaker/alert_file.sh<br />pcs alert recipient add alert_file id=my-alert_logfile value=/var/log/pcmk_alert_file.log</pre> | SAP ベーシス管理者 | 
| セカンダリクラスターインスタンスで Pacemaker アラートエージェントを設定します。 | セカンダリクラスターのセカンダリクラスター EC2 インスタンスにログインし、次のコマンドを実行します。<pre>install --mode=0755 /usr/share/pacemaker/alerts/alert_file.sh.sample<br />touch /var/lib/pacemaker/alert_file.sh<br />touch /var/log/pcmk_alert_file.log<br />chown hacluster:haclient /var/log/pcmk_alert_file.log<br />chmod 600 /var/log/pcmk_alert_file.log</pre> | SAP ベーシス管理者 | 
| RHEL アラートリソースが作成されていることを確認します。 | 設定が作成されたことを確認するには、次のコマンドを使用します。<pre>pcs alert</pre><br />コマンドの出力は次のようになります。<pre>[root@xxxxxxx ~]# pcs alert <br />Alerts:<br /> Alert: alert_file (path=/var/lib/pacemaker/alert_file.sh)<br />  Description: Log events to a file.<br />  Recipients:<br />   Recipient: my-alert_logfile (value=/var/log/pcmk_alert_file.log)</pre> | SAP ベーシス管理者 | 

### CloudWatch エージェントを設定する
<a name="configure-the-cw-agent"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| CloudWatch エージェントをインストールします。 | EC2 インスタンスに CloudWatch エージェントをインストールするには、いくつかの方法があります。コマンドラインを使う場合1. CloudWatch エージェントパッケージをダウンロードする:  <pre>wget https://s3.<region>.amazonaws.com/amazoncloudwatch-agent-region/redhat/amd64/latest/amazon-cloudwatch-agent.rpm</pre><br />ここで、 `<region>` は EC2 インスタンス AWS リージョン が配置されている です (例: `us-west-2`)。<br />2. オプション) パッケージの署名を確認します。手順については、CloudWatch ドキュメントの「[CloudWatch エージェントパッケージの署名の検証](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/verify-CloudWatch-Agent-Package-Signature.html)」をご確認ください。<br />3. 最初のインスタンスにパッケージをインストールします。<pre>sudo rpm -U ./amazon-cloudwatch-agent.rpm</pre><br />4. セカンダリインスタンスに対しても同様にインストールします。<br />詳しくは「[CloudFront ドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-on-EC2-Instance.html)」をご確認ください。 | AWS システム管理者 | 
| IAM ロールを EC2 インスタンスにアタッチする | CloudWatch エージェントで、インスタンスのデータを送信できるようにするには、IAM **CloudWatchAgentServerRole** ロールを各インスタンスにアタッチする必要があります。または、CloudWatch エージェントのポリシーを既存の IAM ロールに追加することもできます。詳しくは「[CloudFront ドキュメント](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-iam-roles-for-cloudwatch-agent-commandline.html)」をご確認ください。 | AWS 管理者 | 
| プライマリクラスターインスタンスの Pacemaker アラートエージェントのログファイルをモニタリングするように CloudWatch エージェントを設定します。 | 1. コマンドを実行して、プライマリクラスターインスタンスを設定します。<pre>sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard</pre><br />2. Linux の場合は **[1]** を選択し、モニタリング戦略のオプションを選択します。<br />3. 質問「**ログファイルをモニタリングしますか**」では **[はい]** を選択し、**pcs アラート**コマンドから Pacemaker ログファイルのパスを指定します。ここでは `var/log/pcmk_alert_file.log` です。<br />4. ロググループとログストリームの名前を指定します。ログストリームを指定しない場合、 AWS インスタンス ID がデフォルトとして使用されます。<br />5. セカンダリクラスターインスタンスに対してステップ 1～4 を繰り返します。 | AWS 管理者 | 
| プライマリクラスターインスタンスとセカンダリクラスターインスタンスで CloudWatch エージェントを起動します。 | エージェントを起動するには、プライマリクラスターとセカンダリクラスターの EC2 インスタンスで次のコマンドを実行します。<pre>sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m<br />ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json</pre> | AWS 管理者 | 

### CloudWatch リソースをセットアップする
<a name="set-up-cw-resources"></a>


| タスク | 説明 | 必要なスキル | 
| --- | --- | --- | 
| CloudWatch ロググループを設定します。 | 1. CloudWatch コンソール ([https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)) を開きます。<br />2. ナビゲーションペインで、**[ロググループ]**、**[ロググループの作成]** の順に選択します。               <br />3. ロググループの名前を入力し、**[ロググループの作成]** を選択します。CloudWatch エージェントは、Pacemaker アラートファイルをログストリームとして CloudWatch ロググループに転送します。 | AWS 管理者 | 
| CloudWatch メトリクスフィルターを設定します。 | メトリクスフィルターは、CloudWatch ログストリームで `stop <cluster-resource-name>` などのパターンを検索するのに役立ちます。このパターンが特定されると、メトリクスフィルターはカスタムメトリクスを更新します。1. CloudWatch コンソールのナビゲーションペインで、**[ロググループ]** を選択します。<br />2. 前のタスクで作成したロググループの名前を選択します。<br />3. [**アクション**]、[**メトリクスフィルターの作成**] の順に選択します。<br />4. **[フィルターパターン]** には、`stop ABC_scs` など、使用するフィルターパターンを入力して、`ABC_scs` という名前の SAP SCS クラスターリソースの停止イベントに対応させます。<br />詳しくは、CloudWatch ドキュメントの「[Filter pattern syntax](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html)」を参照してください。<br />5. (オプション) フィルターパターンをテストするには、[**テストパターン**] に、パターンのテストに使用する 1 つまたは複数のログイベントを入力します。**[ログイベントメッセージ]** ボックスのログイベントの区切りに改行が使用されるため、各ログイベントは必ず別々の行で指定する必要があります。<br />6. [**次へ**] を選択し、フィルターの名前を入力します。<br />7. **[メトリクス詳細]** の **[メトリクス名前空間]** で、メトリクスを発行する CloudWatch 名前空間の名前を入力します (`sapcluster_monitoring` など)。名前空間がまだ存在しない場合は、**[新規作成]** を選択します。<br />8. **[メトリクス名]**には、新しいメトリクスの名前を入力します (例: `sapcluster_<sid>`。ここで `<sid>` は SAP システムの識別名となります)。<br />9. **[メトリクス値]** に **1** と入力します。 <br />または、`$size` などのトークンを入力します。これにより、`size` フィールドを含むすべてのログイベントについて、`size` フィールド内の数値だけメトリクスが増加します。<br />10. **[デフォルト値]** に **0** と入力します。<br />11. **[Create metric filter]** (メトリクスフィルターの作成) を選択します。<br />メトリクスフィルターは、ステップ 4 でパターンを識別すると、CloudWatch カスタムメトリクスの値 `sapcluster_abc` を **1** に更新します。<br />CloudWatch アラーム `SAP-Cluster-QA1-ABC` はメトリクス `sapcluster_abc` をモニタリングし、メトリクスの値が **1** に変わったときに SNS 通知を送信します。これは、クラスターリソースが停止し、アクションを実行する必要があることを示します。 | AWS 管理者、SAP ベーシス管理者 | 
| SAP ASCS/SCS および ERS メトリクスの CloudWatch メトリクスアラームを設定します。 | 単一のメトリクスに基づいてアラームを作成する場合: 1. CloudWatch コンソールのナビゲーションペインで、**[アラーム]**、**[すべてのアラーム]** の順に選択します。<br />2. [**アラームの作成**] を選択します。<br />3. [**メトリクスの選択**] を選択します。<br />4. 前のタスクで作成されたカスタムメトリクス `sapcluster_monitoring` を検索します。<br />5. 前のタスクで作成された SAP SCS のメトリクス名 (`sapcluster_<abc>` など) も選択します。<br />6. **[グラフ化されたメトリクス]** タブで、以下を設定します。[**統計**] で、[**Maximum**] を選択します。**[期間]** は**[1 minute]** を選択してください。**[しきい値タイプ]** では、**[静的]** を選択し、** **`sapcluster_<sid>`**** のしきい値を 1 以上の値に設定します。<br />7. [**次へ**] を選択します。<br />8. **[通知]** で、最初のエピックで作成した SNS トピックを選択します。<br />9. **[名前]** と **[説明]** にアラーム名と簡単な説明を入力し、**[次へ]** を選択します。<br />10. **[Create Alarm]** (アラームの作成) を選択します。 | AWS 管理者 | 
| SAP HANA メトリクスの CloudWatch メトリクスアラームを設定します。 | 前のタスクの CloudWatch メトリクスアラームを設定する手順を繰り返し、これらの変更を加えます。+ ステップ 5 では、SAP HANA のメトリクス名を選択します (例: `sapcluster_db_<abc>`)。<br />+ ステップ 6 では、`sapcluster_<sid>`**** のしきい値を 0 より大きい値に設定します。 | AWS 管理者 | 

## 関連リソース
<a name="monitor-sap-rhel-pacemaker-clusters-by-using-aws-services-resources"></a>
+ [Triggering Scripts for Cluster Events](https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html-single/high_availability_add-on_reference/index#ch-alertscripts-HAAR) (RHEL ドキュメント)
+ [ウィザードを使用して CloudWatch エージェント設定ファイルを作成する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html) (CloudWatch ドキュメント)
+ [Amazon CloudWatch とは](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/install-CloudWatch-Agent-commandline-fleet.html) (CloudWatch ドキュメント)
+ [静的しきい値に基づいて CloudWatch アラームを作成する](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html) (CloudWatch ドキュメント)
+ [高可用性クラスターを使用した AWS への SAP HANA の手動デプロイ](https://docs.aws.amazon.com/sap/latest/sap-hana/sap-hana-on-aws-manual-deployment-of-sap-hana-on-aws-with-high-availability-clusters.html) ( AWS ウェブサイトの SAP ドキュメント)
+ [SAP NetWeaver ガイド ](https://docs.aws.amazon.com/sap/latest/sap-netweaver/welcome.html)( AWS ウェブサイトの SAP ドキュメント)

## アタッチメント
<a name="attachments-ca4d282e-eadd-43fd-8506-3dbeb43e4db6"></a>

このドキュメントに関連付けられている追加のコンテンツにアクセスするには、添付ファイルをダウンロードして解凍します。[zip](samples/p-attach/ca4d282e-eadd-43fd-8506-3dbeb43e4db6/attachments/attachment.zip)