通知¶
Failover Managerクラスターに影響する重要なイベントが発生すると、電子メール通知を送信したり、通知スクリプトを呼び出します。Failover Managerを構成した場合電子メール通知を送信するには、クラスターの各ノードのポート25で実行されているSMTPサーバーが必要です。次のパラメーターを使用して、Failover Managerの通知動作を構成します。
user.email
script.notification
from.email
設定プロパティの編集の詳細については、 :doc:`クラスタープロパティ<cluster_properties>`の指定を参照してください。
通知の本文には、通知をトリガーしたイベント、およびクラスターの現在の状態に関する詳細が含まれています。例:
EFM node: 10.0.1.11
Cluster name: acctg
Database name: postgres
VIP: ip_address (Active|Inactive)
Database health is not being monitored.
VIPフィールドには、ノードに実装されている場合、仮想IPのIPアドレスと状態が表示されます。
Failover Manager各通知に重大度レベルを割り当てます。次のレベルは、必要な注意のレベルが高まることを示しています。
INFOは、エージェントに関する情報メッセージを示し、手動の介入を必要としません(たとえば、Failover Managerが開始または停止しました)。 :ref:`INFOレベル通知のリスト<notifications_info>`を参照してくださいWARNINGは、管理者がシステムをチェックする必要があるイベントが発生したことを示します(たとえば、フェイルオーバーが発生しました)。 :ref:`警告レベル通知のリスト<notifications_warning>`を参照してくださいSEVEREは、重大なイベントが発生し、管理者の即時の注意が必要であることを示します(たとえば、フェールオーバーが試行されたが、完了できなかった)。 :ref:`重大レベルの通知のリスト<notifications_severe>`を参照してください
重大度レベルは、通知の緊急度を指定します。重大度レベルが SEVERE の通知はユーザーの注意をすぐに必要としますが、重大度レベルが INFO の通知はユーザーのアクションを必要としないクラスターに関する操作情報に注意を喚起します。通知の重大度レベルはロギングレベルとは関係ありません。構成ファイルで指定されたログレベルの詳細に関係なく、すべての通知が送信されます。
:ref:`notification.level<notification.level>`プロパティを使用して、通知をトリガーする最小の重大度レベルを指定できます。
注意: :通知を管理用メールアドレスに送信することに加えて、すべての通知はクラスターログファイル( /var/log/efm-4.0/<cluster_name>.log )に記録されます。
以下の表にリストされている条件は、 INFO レベルの通知をトリガーします。
件名 |
説明 |
|---|---|
|
実行されたフェンシングスクリプト*script_name*結果:script_results |
|
実行されたプロモーション後スクリプト*script_name*結果:script_results |
|
実行されたリモートプレプロモーションスクリプト*script_name*結果:script_results |
|
実行されたリモートポストプロモーションスクリプト*script_name*結果:script_results |
|
実行されたデータベース障害後スクリプト*script_name*結果:script_results |
|
実行されたプライマリ分離スクリプト*script_name*結果:script_results |
|
監視エージェントが実行されています。 |
|
プライマリエージェントが実行されており、データベースの状態が監視されています。 |
|
スタンバイエージェントが実行されており、データベースの状態が監視されています。 |
|
アイドルエージェントが実行されています。ローカルデータベースを起動した後、エージェントを再開できます。 |
|
VIP*VIP_address*をノード*node_address*に割り当てる結果:script_results |
|
ノード*node_address*からVIP*VIP_address*を解放する結果:script_results |
|
このノードのエージェントは、*auto.resume.period*秒ごとにチェックして、障害のあるデータベースの監視を再開できるかどうかを確認します。この時間中にクラスタを確認し、データベースが再び起動しない場合はエージェントを停止する必要があります。詳細については、エージェントログを参照してください。 |
|
実行されたエージェントはスクリプトを再開しました*script_name*結果:script_results |
|
このスタンバイを新しいプライマリに合わせて再設定すると、pg_xlogまたはpg_walの内容が*pgdata*ディレクトリにバックアップされました。このバックアップは、ディスクスペースを解放するのに都合が良いときに削除する必要があります。 |
以下の表にリストされている条件は、*警告*レベルの通知をトリガーします。
件名 |
説明 |
|---|---|
|
監視エージェントが終了しました。 |
|
データベースの状態は監視されていません。 |
|
プライマリエージェントが再起動されるまで、クラスターのフェールオーバーは無効になります。 |
|
データベースの状態は監視されていません。 |
|
データベースの状態は監視されていません。 |
|
エージェントは終了しました。これは、アイドル状態のエージェントによって生成されます。 |
|
エージェントは終了しました。通常、この通知は、起動中にエージェントが終了するときに起動時に生成されます。 |
|
仮想IPアドレスは、非プライマリノードに割り当てられているようです。競合を避けるために、Failover ManagerVIPをリリースします。VIPがプライマリノードに割り当てられていることを確認し、割り当てられていない場合は手動でアドレスを再割り当てする必要があります。 |
|
仮想IPアドレスは、プライマリノードに割り当てられていないようです。EDBPostgresFailover ManagerVIPの再取得を試みます。 |
|
*cluster_name*のスタンバイがクラスターを離れました。 |
|
*cluster_name*のスタンバイエージェントがクラスターを離れましたが、コーディネーターはスタンバイデータベースがまだ実行中であることを検出しました。 |
|
スタンバイエージェントは、データベースに障害が発生したことを通知しました。他のノードもスタンバイデータベースに到達できません。 |
|
スタンバイエージェントはデータベースの障害を通知しましたが、他のノードはスタンバイデータベースがまだ実行中であることを検出しました。 |
|
完全なフェイルオーバー保護には、少なくとも3つのノードが必要です。監視ノードまたはエージェントノードをクラスターに追加してください。 |
|
このノードは、クラスターの大部分*cluster_name*に接続されなくなりました。このノードはクラスターのサブセットの一部であるため、フェールオーバーは試行されません。表示される現在のノードは次のとおりです:node_address |
|
クラスター*cluster_name*でスタンバイのプロモーションが開始されました。 |
|
*node_address*で実行されている目撃者がクラスターを離れました。 |
|
*node_address*で実行されているアイドルエージェントがクラスターを離れました。 |
|
このノードはネットワークから分離されているようです。クラスターで見られる他のメンバーは次のとおりです:node_name |
|
このノードは、ネットワークから分離されなくなりました。 |
|
スタンバイEFMエージェントはそれ自体をプロモートしようとしましたが、プライマリDBが*node_address*でまだ実行されていることを検出しました。これは通常、プライマリEFMエージェントが終了したことを示しています。フェイルオーバーは発生していません。 |
|
スタンバイEFMエージェントはそれ自体の昇格を開始しましたが、プライマリエージェントがクラスターに再参加したことがわかりました。フェイルオーバーは発生していません。 |
|
スタンバイEFMエージェントはそれ自体をプロモートしようとしましたが、プライマリデータベースがまだ*node_address*で実行されているかどうかを検出できませんでした。フェイルオーバーは発生していません。 |
|
スタンバイEFMエージェントは自身を昇格しようとしましたが、仮想IPアドレス(VIP_address)がまだ別のノードに割り当てられているように見えるため、できませんでした。このような状況で昇格すると、データが破損する可能性があります。フェイルオーバーは発生していません。 |
|
スタンバイEFMエージェントは自身を昇格させようとしましたが、既知のサーバー(server_address)に到達できなかったためできませんでした。これは通常、スタンバイエージェントを他のエージェントから分離したネットワークの問題を示しています。フェイルオーバーは発生していません。 |
|
クラスター*cluster_name*の潜在的なフェールオーバー状況が検出されました。このクラスターでは自動フェイルオーバーが無効になっているため、手動での介入が必要です。 |
|
クラスター*cluster_name*でフェイルオーバーが完了しました。 |
|
クラスター*cluster_name*のロックファイルは、ノード*node_address*の*path_name*から削除されました。このロックは、複数のエージェントが同じノード上の同じクラスターを監視することを防ぎます。このファイルを復元して、クラスターの別のエージェントを誤って起動しないようにしてください。 |
|
クラスター*cluster_name*の回復ファイルが、プライマリノード*node_address*の*path_name*で見つかりました。このノードでDBを再起動しようとすると、これは問題になる可能性があります。 |
|
recovery_target_timelineパラメーターは、リカバリー設定で最新に設定されていません。スタンバイサーバーは、新しいプライマリが昇格したときに発生するタイムラインの変更を追跡できません。 |
|
昇格が試みられましたが、すでに昇格されているノードがあります:ip_address。 |
|
このノードのauto.reconfigureプロパティはfalseに設定されています。ノードは、フェイルオーバー後に新しいプライマリノードを追跡するように再構成されていません。 |
|
昇格中のスタンバイの再生を再開できませんでした。手動による介入が必要になる場合があります。エラー:*error_decription*このエラーは、スタンバイの昇格中に再生を呼び出すときにサーバーでエラーが発生した場合に返されます。 |
|
スタンバイの再生を再開できませんでした。手動による介入が必要になる場合があります。エラー:error_message。 |
|
remote.timeoutの値(value)は、local.timeoutの値(value)よりも大きくなっています。ローカルデータベースが応答するのに時間がかかりすぎる場合、ローカルエージェントは、他のエージェントは接続できてもデータベースに障害が発生したと想定できます。これによりフェイルオーバーは発生しませんが、ローカルエージェントが監視を停止し、フェイルオーバーが保護されない可能性があります。 |
|
クラスター内の現在のスタンバイノードの数は、最小数*number*に低下しています。別のスタンバイノードを追加または昇格可能にしない限り、フェールオーバーはありません。 |
|
クラスタ内の現在のフェールオーバー優先順位リストは空です。クラスター*cluster_name*の唯一の昇格可能なスタンバイを削除しました。別の昇格可能なスタンバイノードを追加するか、フェイルオーバー優先順位リストに追加して昇格可能にしない限り、フェイルオーバーはありません。 |
|
クラスター内の同期スタンバイノードの数が*number*を下回りました。プライマリの同期スタンバイ名は、*newsynchronous_standby_namesvalue*に再構成されました。 |
|
クラスター内の同期スタンバイノードの数が*count*を下回りました。プライマリは同期レプリケーションモードから除外されました。 |
|
データベース構成を再ロードできませんでした。手動による介入が必要です。エラー:error_message。 |
|
次のカスタム監視スクリプトがタイムアウトしました:script_name |
|
次のカスタムモニタースクリプトは失敗しましたが、``セーフモード``で実行されています:script_name。出力:script_results |
|
このクラスターの*primary.shutdown.as.failure*プロパティーがtrueに設定されています。クラスタ全体を停止せずにプライマリエージェントを停止すると、クラスタの残りの部分では、プライマリエージェントの即時の障害として扱われます。プライマリデータベースでメンテナンスが必要な場合は、プライマリエージェントをシャットダウンし、フェールオーバーが発生しないという残りのノードからの通知を待ちます。 |
|
プライマリエージェントは、*node_address*で実行されているローカルデータベースにアクセスできなくなりました。他のノードはデータベースにリモートでアクセスできるため、プライマリはIDLEになり、データベースの監視を再開しようとします。 |
以下の表にリストされている条件は、*SEVERE*通知をトリガーします。
件名 |
説明 |
|---|---|
|
データベースの開始または再起動コマンドは正常に実行されましたが、データベースは接続を受け入れていません。EFMは、*restart.connection.timeout*秒まで接続を試行し続けます。 |
|
最大接続制限に達しました。 |
|
db.user=/*user_name*のパスワードが無効です。 |
|
許可の指定が無効です。 |
|
プライマリエージェントは、*node_address*で実行されているローカルデータベースにアクセスできなくなりました。他のノードはデータベースにリモートでアクセスできるため、プライマリはVIPを解放したり、recovery.confファイルを作成したりしません。プライマリエージェントは、再開コマンドを実行してデータベースの監視を再開するまでIDLEのままになります。 |
|
フェンシングスクリプト*script_name*は正常に実行できませんでした。終了値:*exit_code*結果:*script_results*フェイルオーバーは発生していません。 |
|
プロモーション後スクリプト*script_name*は正常に実行できませんでした。終了値:exit_code*結果:*script_results |
|
リモートポストプロモーションスクリプト*script_name*は正常に実行できませんでした終了値:exit_code*結果:*script_results ノード:node_address |
|
リモート事前プロモーションスクリプト*script_name*の実行に失敗しました終了値:exit_code*結果:*script_results ノード:node_address |
|
ポストデータベースエラースクリプト*script_name*は正常に実行できませんでした。終了値:exit_code*結果:*script_results |
|
エージェント再開スクリプト*script_name*は正常に実行できませんでした。結果:script_results |
|
プライマリ分離スクリプト*script_name*は正常に実行できませんでした。終了値:exit_code*結果:*script_results |
|
ノードでプロモートコマンドが失敗しました。スタンバイを昇格できませんでした。エラーの詳細:error_details |
|
プロモーション中にプライマリノード*node_address*でrecovery.confファイルを作成中にエラーが発生しました。プロモーションは継続しましたが、古いプライマリノードを再起動できないようにするには手動での介入が必要です。エラーの詳細:message_details |
|
このノードで予期しないエラーが発生しました。詳細については、エージェントログを確認してください。エラー:error_details |
|
プライマリデータベースは、クラスターの大部分から分離されています。クラスターは、フェールオーバーマネージャークラスターの残りの部分がスタンバイを昇格するときに2つのプライマリを防ぐために、プライマリデータベースをフェンスするように*ip_address*のプライマリエージェントに指示しています。 |
|
分離されたプライマリデータベースは、フェールオーバーマネージャーによってシャットダウンされました。 |
|
プライマリデータベースは、クラスターの大部分から分離されています。プライマリが分離の検出を完了する前に、スタンバイが昇格され、クラスター内のこのノードに再参加しました。このノードは、複数のプライマリデータベースを回避するために自身を分離しています。 |
|
フェールオーバーマネージャーは、何らかの理由でVIPアドレスを割り当てることができませんでした。 |
|
指定されたノードでデータベースに障害が発生しました。 |
|
このエージェントは、ローカルデータベースにアクセスしようとしてタイムアウトしました。タイムアウト後、エージェントはデータベースに正常にpingでき、監視を再開しました。ただし、データベースまたはエージェントの障害の可能性を防ぐため、ノードが正常に実行されていることを確認するためにノードをチェックする必要があります。 |
|
このエージェントは、ローカルデータベースを再構成して再起動した後、監視を再開できませんでした。詳細については、エージェントログを参照してください。 |
|
フェールオーバーマネージャークラスターの内部状態は、クラスターメンバーの実際の状態と一致しませんでした。これはまれであり、ノードがクラスターに参加したり、状態を変更したりするタイミングの問題が原因である可能性があります。問題を解決する必要がありますが、クラスターの状態も確認して確認する必要があります。不一致の詳細は、エージェントログファイルで確認できます。 |
|
エージェントは、プライマリデータベースがクラスター*cluster_name*で使用できなくなったが、フェールオーバーに使用できるスタンバイノードがないことを検出しました。 |
|
スタンバイエージェントは、ローカルデータベースが回復中でないことを検出しました。エージェントはアイドル状態になります。手動による介入が必要です。 |
|
プライマリエージェントは、ローカルデータベースが回復中であることを検出しました。エージェントはアイドル状態になります。手動による介入が必要です。 |
|
このノードは、*node_address*で実行されているデータベースに接続できません これが修正されるまで、このノードはデータベースが実行されているかどうかをチェックできないため、フェイルオーバーが適切に機能しない場合があります。 |
|
次のカスタム監視スクリプトは、スタンバイノードで失敗しました。エージェントはローカルデータベースの監視を停止します。スクリプトの場所:script_name*スクリプト出力:*script_results |
|
次のカスタム監視スクリプトは、プライマリノードで失敗しました。EFMはスタンバイの昇格を試みます。スクリプトの場所:script_name*スクリプト出力:*script_results |
|
ループバックアドレスは、*ping.server.ip*プロパティに設定されます。この設定はネットワーク分離の検出に干渉する可能性があるため、変更する必要があります。 |
|
ロードバランサー接続スクリプト*script_name*を正常に実行できませんでした。終了値:exit_code*結果:*script_results |
|
ロードバランサデタッチスクリプト*script_name*が正常に実行されませんでした。終了値:exit_code*結果:*script_results |
|
クラスター内の同期スタンバイノードの数が*count*に減少しました。プライマリ上のすべての書き込みクエリは、十分な同期スタンバイノードが追加されるまでブロックされます。 |