AWS のサービスを使用して SAP RHEL Pacemaker クラスターをモニタリングする - AWS 規範ガイダンス

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

AWS のサービスを使用して SAP RHEL Pacemaker クラスターをモニタリングする

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

概要

このパターンでは、Amazon CloudWatch と Amazon Simple Notification 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 コマンドは、クラスターアラート設定を設定するために使用されます。

前提条件と制限

前提条件

  • アクティブな AWS アカウント。

  • E メールまたはモバイル通知を送信するように Amazon SNS を設定します。

  • SAP ASCS/ERS for ABAP または SCS/ERS for Java、および SAP HANA Database RHEL Pacemaker クラスター。手順については、以下を参照してください。

制限事項

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

製品バージョン

  • RHEL 7.3 以降

アーキテクチャ

ターゲットテクノロジースタック

  • RHEL Pacemaker アラートイベント駆動型エージェント

  • Amazon Elastic Compute Cloud (Amazon EC2)

  • CloudWatch アラーム

  • CloudWatch ロググループとメトリクスフィルター

  • Amazon SNS

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

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

SAP RHEL Pacemaker クラスターをモニタリングするためのアーキテクチャ

自動化とスケール

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

ツール

AWS サービス

  • Amazon CloudWatch は、 AWS リソースと で実行するアプリケーションのメトリクスを AWS リアルタイムでモニタリングするのに役立ちます。

  • Amazon Simple Notification Service (Amazon SNS) は、ウェブサーバーやメールアドレスなど、パブリッシャーとクライアント間のメッセージの交換を調整および管理するのに役立ちます。

ツール

  • CloudWatch エージェント (統合) は、EC2 インスタンスからシステムレベルのメトリクス、ログ、トレースを収集し、アプリケーションからカスタムメトリクスを取得するツールです。

  • Pacemaker アラートエージェント (RHEL 7.3 以降に対応) は、Pacemaker クラスターでリソースが停止または再起動したときなど、変更があったときにアクションを開始するツールです。

ベストプラクティス

  • で SAP ワークロードを使用するためのベストプラクティスについては AWS、 AWS 「 Well-Architected フレームワークの SAP レンズ」を参照してください。

  • SAP HANA クラスターの CloudWatch モニタリングの設定に関連するコストをご検討ください。詳しくは「CloudFront ドキュメント」をご確認ください。

  • Amazon SNS アラートへのページャーまたはチケット発行メカニズム導入をご検討ください。

  • pcs、Pacemaker、およびフェンシングエージェントの RPM パッケージの RHEL 高可用性 (HA) AWS バージョンを必ず確認してください。

エピック

タスク説明必要なスキル

SNS トピックを作成します。

  1. にサインイン AWS マネジメントコンソール し、https://console.aws.amazon.com/sns/v3/home で Amazon SNS コンソールを開きます。

  2. Amazon SNS ダッシュボードの [Common actions] の下で、[Create topic] を選択します。 

  3. [新しいトピックの作成] ダイアログボックスの [タイプ] で、[標準] を選択します。

  4. [トピック名] にトピックの名前 (my-topic など) を入力します。

  5. [トピックを作成] を選択します。

    これにより、通知を発行できるリソースポリシーを持つ SNS トピックが作成されます。

  6. トピック ARN をコピーします (例: arn:aws:sns:us-east-1:111122223333:my-topic)。この ARN は、後のステップで必要になります。

AWS 管理者

SNS トピックのアクセスポリシーを変更します。

  1. Amazon SNS コンソールのナビゲーションペインで [トピック] を選択し、作成したトピックを選択します。 

  2. [編集] を選択し、[アクセスポリシー] セクションに移動します。

  3. アクセスポリシーに、このトピックへの発行が許可されているサービスプリンシパルの 1 つとして CloudWatch が含まれていることを確認します。例えば、次のようになります。

       {        "Sid": "Allow AWS CloudWatch to Publish to this SNS topic",       "Effect": "Allow",       "Principal": {         "Service": [           "cloudwatch.amazonaws.com"         ]       },       "Action": "SNS:Publish",       "Resource": "arn:aws:sns:us-east-1:111122223333:my-topic"     }
  4. [Save changes] (変更の保存) をクリックします。

AWS システム管理者

SNS トピックにサブスクライブします。

  1. Amazon SNS コンソールのナビゲーションペインで、[サブスクリプション][サブスクリプションの作成] の順に選択します。

  2. [トピック ARN] に最初のタスクで作成した ARN を貼り付けます。

  3. [Protocol (プロトコル)] として [Email (E メール)] を選択してください。

  4. [エンドポイント] に SAP Pacemaker クラスターを担当し、通知を受け取る担当者またはチームの E メールアドレスを入力します。例えば、SAP Basis またはインフラストラクチャチームのディストリビューションリストの E メールアドレスを指定できます。

  5. [Create subscription] を選択してください。

  6. E メールアプリケーションから、 AWS 通知からのメッセージを開き、サブスクリプションを確認します。

ウェブブラウザに Amazon SNS の確認画面が表示されます。

AWS システム管理者
タスク説明必要なスキル

クラスターのステータスを確認します。

pcs status コマンドを使用して、リソースがオンラインであることを確認します。

SAP ベーシス管理者
タスク説明必要なスキル

プライマリクラスターインスタンスで Pacemaker アラートエージェントを設定します。

プライマリークラスターの EC2 インスタンスにログインし、次のコマンドを実行します。

install --mode=0755 /usr/share/pacemaker/alerts/alert_file.sh.sample touch /var/lib/pacemaker/alert_file.sh touch /var/log/pcmk_alert_file.log chown hacluster:haclient /var/log/pcmk_alert_file.log chmod 600 /var/log/pcmk_alert_file.log pcs alert create id=alert_file description="Log events to a file." path=/var/lib/pacemaker/alert_file.sh pcs alert recipient add alert_file id=my-alert_logfile value=/var/log/pcmk_alert_file.log
SAP ベーシス管理者

セカンダリクラスターインスタンスで Pacemaker アラートエージェントを設定します。

セカンダリクラスターのセカンダリクラスター EC2 インスタンスにログインし、次のコマンドを実行します。

install --mode=0755 /usr/share/pacemaker/alerts/alert_file.sh.sample touch /var/lib/pacemaker/alert_file.sh touch /var/log/pcmk_alert_file.log chown hacluster:haclient /var/log/pcmk_alert_file.log chmod 600 /var/log/pcmk_alert_file.log
SAP ベーシス管理者

RHEL アラートリソースが作成されていることを確認します。

設定が作成されたことを確認するには、次のコマンドを使用します。

pcs alert

コマンドの出力は次のようになります。

[root@xxxxxxx ~]# pcs alert Alerts: Alert: alert_file (path=/var/lib/pacemaker/alert_file.sh) Description: Log events to a file. Recipients: Recipient: my-alert_logfile (value=/var/log/pcmk_alert_file.log)
SAP ベーシス管理者
タスク説明必要なスキル

CloudWatch エージェントをインストールします。

EC2 インスタンスに CloudWatch エージェントをインストールするには、いくつかの方法があります。コマンドラインを使う場合

  1. CloudWatch エージェントパッケージをダウンロードする:  

    wget https://s3.<region>.amazonaws.com/amazoncloudwatch-agent-region/redhat/amd64/latest/amazon-cloudwatch-agent.rpm

    ここで、 <region> は EC2 インスタンス AWS リージョン が配置されている です (例: us-west-2)。

  2. オプション) パッケージの署名を確認します。手順については、CloudWatch ドキュメントの「CloudWatch エージェントパッケージの署名の検証」をご確認ください。

  3. 最初のインスタンスにパッケージをインストールします。

    sudo rpm -U ./amazon-cloudwatch-agent.rpm
  4. セカンダリインスタンスに対しても同様にインストールします。

詳しくは「CloudFront ドキュメント」をご確認ください。

AWS システム管理者

IAM ロールを EC2 インスタンスにアタッチする

CloudWatch エージェントで、インスタンスのデータを送信できるようにするには、IAM CloudWatchAgentServerRole ロールを各インスタンスにアタッチする必要があります。または、CloudWatch エージェントのポリシーを既存の IAM ロールに追加することもできます。詳しくは「CloudFront ドキュメント」をご確認ください。

AWS 管理者

プライマリクラスターインスタンスの Pacemaker アラートエージェントのログファイルをモニタリングするように CloudWatch エージェントを設定します。

  1. コマンドを実行して、プライマリクラスターインスタンスを設定します。

    sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
  2. Linux の場合は [1] を選択し、モニタリング戦略のオプションを選択します。

  3. 質問「ログファイルをモニタリングしますか」では [はい] を選択し、pcs アラートコマンドから Pacemaker ログファイルのパスを指定します。ここでは var/log/pcmk_alert_file.log です。

  4. ロググループとログストリームの名前を指定します。ログストリームを指定しない場合、 AWS インスタンス ID がデフォルトとして使用されます。

  5. セカンダリクラスターインスタンスに対してステップ 1~4 を繰り返します。

AWS 管理者

プライマリクラスターインスタンスとセカンダリクラスターインスタンスで CloudWatch エージェントを起動します。

エージェントを起動するには、プライマリクラスターとセカンダリクラスターの EC2 インスタンスで次のコマンドを実行します。

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -s -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json
AWS 管理者
タスク説明必要なスキル

CloudWatch ロググループを設定します。

  1. CloudWatch コンソール (https://console.aws.amazon.com/cloudwatch/) を開きます。

  2. ナビゲーションペインで、[ロググループ][ロググループの作成] の順に選択します。               

  3. ロググループの名前を入力し、[ロググループの作成] を選択します。

CloudWatch エージェントは、Pacemaker アラートファイルをログストリームとして CloudWatch ロググループに転送します。

AWS 管理者

CloudWatch メトリクスフィルターを設定します。

メトリクスフィルターは、CloudWatch ログストリームで stop <cluster-resource-name> などのパターンを検索するのに役立ちます。このパターンが特定されると、メトリクスフィルターはカスタムメトリクスを更新します。

  1. CloudWatch コンソールのナビゲーションペインで、[ロググループ] を選択します。

  2. 前のタスクで作成したロググループの名前を選択します。

  3. [アクション]、[メトリクスフィルターの作成] の順に選択します。

  4. [フィルターパターン] には、stop ABC_scs など、使用するフィルターパターンを入力して、ABC_scs という名前の SAP SCS クラスターリソースの停止イベントに対応させます。

    詳しくは、CloudWatch ドキュメントの「Filter pattern syntax」を参照してください。

  5. (オプション) フィルターパターンをテストするには、[テストパターン] に、パターンのテストに使用する 1 つまたは複数のログイベントを入力します。[ログイベントメッセージ] ボックスのログイベントの区切りに改行が使用されるため、各ログイベントは必ず別々の行で指定する必要があります。

  6. [次へ] を選択し、フィルターの名前を入力します。

  7. [メトリクス詳細][メトリクス名前空間] で、メトリクスを発行する CloudWatch 名前空間の名前を入力します (sapcluster_monitoring など)。名前空間がまだ存在しない場合は、[新規作成] を選択します。

  8. [メトリクス名]には、新しいメトリクスの名前を入力します (例: sapcluster_<sid>。ここで <sid> は SAP システムの識別名となります)。

  9. [メトリクス値]1 と入力します。 

    または、$size などのトークンを入力します。これにより、size フィールドを含むすべてのログイベントについて、size フィールド内の数値だけメトリクスが増加します。

  10. [デフォルト値]0 と入力します。

  11. [Create metric filter] (メトリクスフィルターの作成) を選択します。

メトリクスフィルターは、ステップ 4 でパターンを識別すると、CloudWatch カスタムメトリクスの値 sapcluster_abc1 に更新します。

CloudWatch アラーム SAP-Cluster-QA1-ABC はメトリクス sapcluster_abc をモニタリングし、メトリクスの値が 1 に変わったときに SNS 通知を送信します。これは、クラスターリソースが停止し、アクションを実行する必要があることを示します。

AWS 管理者、SAP ベーシス管理者

SAP ASCS/SCS および ERS メトリクスの CloudWatch メトリクスアラームを設定します。

単一のメトリクスに基づいてアラームを作成する場合:

  1. CloudWatch コンソールのナビゲーションペインで、[アラーム][すべてのアラーム] の順に選択します。

  2. [アラームの作成] を選択します。

  3. [メトリクスの選択] を選択します。

  4. 前のタスクで作成されたカスタムメトリクス sapcluster_monitoring を検索します。

  5. 前のタスクで作成された SAP SCS のメトリクス名 (sapcluster_<abc> など) も選択します。

  6. [グラフ化されたメトリクス] タブで、以下を設定します。

    • [統計] で、[Maximum] を選択します。

    • [期間][1 minute] を選択してください。

    • [しきい値タイプ] では、[静的] を選択し、 sapcluster_<sid> のしきい値を 1 以上の値に設定します。

  7. [次へ] を選択します。

  8. [通知] で、最初のエピックで作成した SNS トピックを選択します。

  9. [名前][説明] にアラーム名と簡単な説明を入力し、[次へ] を選択します。

  10. [Create Alarm] (アラームの作成) を選択します。

AWS 管理者

SAP HANA メトリクスの CloudWatch メトリクスアラームを設定します。

前のタスクの CloudWatch メトリクスアラームを設定する手順を繰り返し、これらの変更を加えます。

  • ステップ 5 では、SAP HANA のメトリクス名を選択します (例: sapcluster_db_<abc>)。

  • ステップ 6 では、sapcluster_<sid> のしきい値を 0 より大きい値に設定します。

AWS 管理者

関連リソース

アタッチメント

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip