通知¶
フェールオーバーマネージャーは、クラスターに影響する重要なイベントが発生すると、電子メール通知を送信したり、通知スクリプトを呼び出したりします。電子メール通知を送信するようにフェールオーバーマネージャーを構成した場合は、クラスターの各ノードのポート25で実行されているSMTPサーバーが必要です。次のパラメーターを使用して、フェールオーバーマネージャーの通知動作を構成します。
user.email
script.notification
from.email
構成プロパティの編集の詳細については、「 クラスタープロパティの指定 」を参照してください。
通知の本文には、通知をトリガーしたイベント、およびクラスターの現在の状態に関する詳細が含まれています。例えば:
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アドレスと状態が表示されます。
フェールオーバーマネージャーは、各通知に重大度レベルを割り当てます。次のレベルは、必要な注意のレベルが高まることを示しています。
INFOは、エージェントに関する情報メッセージを示しており、手動による介入は不要です(たとえば、フェールオーバーマネージャーが起動または停止した)。
WARNINGは、管理者がシステムをチェックする必要があるイベントが発生したことを示します(たとえば、フェールオーバーが発生しました)。
SEVEREは、重大なイベントが発生したことを示し、管理者の即時の注意が必要です(たとえば、フェイルオーバーが試行されましたが、完了できませんでした)。
重大度レベルは、通知の緊急度を指定します。重大度レベルがSEVERE通知は、すぐにユーザーの注意を必要としますが、重大度レベルがINFO通知は、ユーザーのアクションを必要としないクラスターに関する操作情報に注意を喚起します。通知の重大度レベルはログレベルとは関係ありません。すべての通知は、構成ファイルで指定されたログレベルの詳細に関係なく送信されます。
notification.levelプロパティーを使用して、 通知をトリガーする最小の重大度レベルを指定できます。
注:管理用メールアドレスに通知を送信することに加えて、すべての通知はクラスターログファイル( /var/log/efm-3.6/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 |
| クラスターcluster_nameの node_addressで実行されている監視エージェント | 監視エージェントが実行されています。 |
| クラスターcluster_nameの node_addressで実行されているマスターエージェント | マスターエージェントが実行されており、データベースの状態が監視されています。 |
| クラスターcluster_nameの node_addressで実行されているスタンバイエージェント | スタンバイエージェントが実行されており、データベースの状態が監視されています。 |
| クラスターcluster_nameのノードnode_addressで実行中のアイドルエージェント | アイドルエージェントが実行されています。ローカルデータベースを起動した後、エージェントを再開できます。 |
| ノードnode_addressへのVIPの割り当て | script_results:NODE_ADDRESS結果をノードするVIP VIP_addressの割り当て |
| ノードnode_addressからのVIPの解放 | script_results:ノードNODE_ADDRESS結果からVIP VIP_addressを解除 |
| クラスターcluster_nameの自動再開チェックを開始しています | このノード上のエージェントは、 auto.resume.period秒ごとにチェックして、 障害が発生したデータベースの監視を再開できるかどうかを確認します。この時間中にクラスタを確認し、データベースが再び起動しない場合はエージェントを停止する必要があります。詳細については、エージェントログを参照してください。 |
| 実行されたエージェント再開スクリプト | 実行されたエージェントはスクリプトscript_nameを再開しました結果: script_results |
次の表にリストされている条件は、 警告レベルの通知をトリガーします。
| 件名 | 説明 |
|---|---|
| クラスターcluster_nameの node_addressで監視エージェントが終了しました | 監視エージェントが終了しました。 |
| クラスターcluster_nameの node_addressでマスターエージェントが終了しました | データベースの状態は監視されていません。 |
| クラスターcluster_nameは 、マスターノードが去ったことを通知 | マスターエージェントが再起動されるまで、クラスターのフェールオーバーは無効になります。 |
| クラスターcluster_nameの node_addressでスタンバイエージェントが終了しました | データベースの状態は監視されていません。 |
| クラスタcluster_nameの node_addressでの昇格中にエージェントが終了しました | データベースの状態は監視されていません。 |
| クラスターcluster_nameの node_addressでエージェントが終了しました | エージェントは終了しました。これは、アイドル状態のエージェントによって生成されます。 |
| クラスタcluster_nameのエージェントが終了しました | エージェントは終了しました。通常、この通知は、起動中にエージェントが終了する前に起動時に生成されます。 |
| 非マスターノードに割り当てられた仮想IPアドレス | 仮想IPアドレスは、非マスターノードに割り当てられているようです。競合を避けるため、フェールオーバーマネージャーはVIPを解放します。 VIPがマスターノードに割り当てられていることを確認し、割り当てられていない場合は手動でアドレスを再割り当てする必要があります。 |
| マスターノードに割り当てられていない仮想IPアドレス。 | 仮想IPアドレスがマスターノードに割り当てられていないようです。 EDB Postgres Failover ManagerはVIPの再取得を試みます。 |
| クラスターcluster_nameのクラスターにスタンバイエージェントがありません | cluster_nameのスタンバイがクラスターを離れました。 |
| クラスターcluster_nameのスタンバイエージェントが失敗しました | cluster_nameのスタンバイエージェントがクラスターを離れましたが、コーディネーターはスタンバイデータベースがまだ実行中であることを検出しました。 |
| クラスタcluster_nameのスタンバイデータベースが失敗しました | スタンバイエージェントは、データベースに障害が発生したことを通知しました。他のノードもスタンバイデータベースに到達できません。 |
| スタンバイエージェントはクラスタcluster_nameのデータベースに到達できません | スタンバイエージェントがデータベースの障害を通知しましたが、他のノードはスタンバイデータベースがまだ実行中であることを検出しました。 |
| クラスターcluster_nameが3つのノードより下にドロップしました | 完全なフェイルオーバー保護には、少なくとも3つのノードが必要です。監視ノードまたはエージェントノードをクラスターに追加してください。 |
| クラスターcluster_nameのサブセットがマスターから切断されました | このノードは、クラスターcluster_nameの大部分に接続されなくなりました。このノードはクラスターのサブセットの一部であるため、フェールオーバーは試行されません。表示される現在のノードは次のとおりです: node_address |
| クラスターcluster_nameでプロモーションが開始されました。 | クラスターcluster_nameでスタンバイのプロモーションが開始されました。 |
| クラスターcluster_nameの監視エラー | node_addressで実行されている目撃者がクラスターを離れました。 |
| クラスターcluster_nameのアイドルエージェント障害。 | node_addressで実行中のアイドルエージェントがクラスターを離れました。 |
| クラスターcluster_nameのネットワークから分離された1つ以上のノード | このノードはネットワークから分離されているようです。クラスターで見られる他のメンバーは次のとおりです。 |
| ノードはクラスターcluster_nameのネットワークから分離されなくなりました。 | このノードは、ネットワークから分離されなくなりました。 |
| スタンバイエージェントが昇格しようとしましたが、マスターDBはまだ実行中です | スタンバイEFMエージェントは自身を昇格させようとしましたが、マスターDBがnode_addressでまだ実行されていることを検出しました 。これは通常、マスターEFMエージェントが終了したことを示します。フェイルオーバーは発生していません。 |
| スタンバイエージェントが昇格を開始しましたが、マスターが再参加しました。 | スタンバイEFMエージェントは自身の昇格を開始しましたが、マスターエージェントがクラスターに再参加していることがわかりました。フェイルオーバーは発生していません。 |
| スタンバイエージェントは昇格しようとしましたが、マスターDBを確認できませんでした | スタンバイEFMエージェントは自身を昇格させようとしましたが、マスターDBがnode_addressでまだ実行中かどうかを検出できませんでした 。フェイルオーバーは発生していません。 |
| スタンバイエージェントは昇格しようとしましたが、VIPはまだ割り当てられているようです | スタンバイEFMエージェントは自身を昇格させようとしましたが、仮想IPアドレス( VIP_address )がまだ別のノードに割り当てられているように見えるため、できませんでした。このような状況で昇格すると、データが破損する可能性があります。フェイルオーバーは発生していません。 |
| スタンバイエージェントは昇格しようとしましたが、孤立しているようです | スタンバイEFMエージェントはそれ自体をプロモートしようとしましたが、既知のサーバー( server_address )に到達できなかったためできませんでした。これは通常、スタンバイエージェントを他のエージェントから分離したネットワークの問題を示しています。フェイルオーバーは発生していません。 |
| フェールオーバーは発生していません | エージェントは、クラスターcluster_nameでマスターデータベースが使用できなくなったことを検出しましたが、フェールオーバーに使用できるスタンバイノードがありません。 |
| クラスターcluster_nameで潜在的な手動フェイルオーバーが必要です。 | クラスターcluster_nameの潜在的なフェイルオーバー状況が検出されました。このクラスターでは自動フェイルオーバーが無効になっているため、手動での介入が必要です。 |
| クラスターcluster_nameでフェイルオーバーが完了しました | クラスターcluster_nameでフェイルオーバーが完了しました。 |
| クラスターcluster_nameのロックファイルが削除されました | クラスターcluster_nameのロックファイルは、ノードnode_addressの path_nameから削除されました 。このロックは、複数のエージェントが同じノード上の同じクラスターを監視することを防ぎます。このファイルを復元して、クラスターの別のエージェントを誤って起動しないようにしてください。 |
| クラスターcluster_nameの recovery.confファイルが見つかりました | クラスターcluster_nameの recovery.confファイルが、マスターノードnode_addressの path_nameで見つかりました。このノードでDBを再起動しようとすると、これは問題になる可能性があります。 |
| recovery.confでrecovery_target_timelineが最新に設定されていません | recovery.confファイルでrecovery_target_timelineパラメータが最新に設定されていません。スタンバイサーバーは、新しいマスターが昇格したときに発生するタイムラインの変更に従うことができません。 |
| recovery.confで指定されたtrigger_fileパスは書き込み不可です | recovery.confファイルのtrigger_fileパラメータに指定されたパスは、 db_service_ownerユーザーによって書き込み可能ではありません。フェールオーバーマネージャーは、必要に応じてデータベースを昇格できません。 |
| クラスターcluster_nameのプロモーションは発生していません | 昇格が試みられましたが、すでに昇格されているノードip_addressがあります。 |
| クラスターcluster_nameのフェイルオーバー後にスタンバイが再構成されない | このノードのauto.reconfigureプロパティはfalseに設定されています。ノードは、フェールオーバー後に新しいマスターノードに従うように再構成されていません。 |
| クラスターcluster_nameの再生を再開できませんでした | 昇格中のスタンバイの再生を再開できませんでした。手動による介入が必要になる場合があります。エラー: error_decriptionこのエラーは、スタンバイの昇格中に再生を呼び出すときにサーバーでエラーが発生した場合に返されます。 |
| スタンバイstandby_idの再生を再開できませんでした。 | スタンバイの再生を再開できませんでした。手動による介入が必要になる場合があります。エラー: error_message |
| データベースのタイムアウト値で起こりうる問題 | あなたのremote.timeout値( 値 ) は 、あなたのlocal.timeout値( 値 )よりも高くなっています。ローカルデータベースの応答に時間がかかりすぎる場合、ローカルエージェントは、他のエージェントは接続できてもデータベースに障害が発生したと想定できます。これによりフェイルオーバーは発生しませんが、ローカルエージェントが監視を停止する可能性があり、フェイルオーバー保護がなくなります。 |
| クラスターcluster_nameでプロモーションに使用できるスタンバイがありません | 番号 :クラスタ内のスタンバイノードの現在の数が最小数に低下しました。別のスタンバイノードを追加または昇格可能にしない限り、フェールオーバーはありません。 |
| クラスターcluster_nameのカスタムモニタータイムアウト | 次のカスタム監視スクリプトがタイムアウトしました: script_name |
| クラスターcluster_nameのカスタムモニター「セーフモード」エラー | 次のカスタムモニタースクリプトは失敗しましたが、「セーフモード」で実行されています: script_name 。出力: script_results |
以下の表にリストされている条件は、 重大な通知をトリガーします。
| 件名 | 説明 |
|---|---|
| スタンバイデータベースは再起動しましたが、EFMは接続できません | データベースの開始または再起動コマンドは正常に実行されましたが、データベースは接続を受け入れていません。 EFMは最大restart.connection.timeout秒間接続を試行し続けます。 |
| node_addressで DBに接続できません | 最大接続制限に達しました。 |
| node_addressで DBに接続できません | db.user = user_nameのパスワードが無効です。 |
| node_addressで DBに接続できません | 許可の指定が無効です。 |
| マスターはクラスターcluster_nameのローカルデータベースにpingできません | マスターエージェントは、 node_addressで実行されているローカルデータベースにアクセスできなくなります。他のノードはデータベースにリモートでアクセスできるため、マスターはVIPを解放したり、recovery.confファイルを作成したりしません。データベースの監視を再開するために再開コマンドが実行されるまで、マスターエージェントはアイドル状態になります。 |
| フェンシングスクリプトエラー | フェンシングスクリプト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 |
| スタンバイを昇格できませんでした | トリガーファイルfile_nameをノードに作成できませんでした。スタンバイを昇格できませんでした。エラーの詳細: message_details |
| cluster_nameクラスターのnode_addressでrecovery.confファイルを作成中にエラーが発生しました | 昇格中にマスターノードnode_addressで recovery.confファイルを作成中にエラーが発生しました。プロモーションは継続しましたが、古いマスターノードを再起動できないようにするには手動での介入が必要です。エラーの詳細: message_details |
| クラスターcluster_nameで予期しないエラーが発生しました | このノードで予期しないエラーが発生しました。詳細については、エージェントログを確認してください。エラー: error_details |
| クラスターcluster_nameのマスターデータベースがフェンスされています | マスターデータベースは、クラスターの大部分から分離されています。クラスターは、フェールオーバーマネージャークラスターの残りの部分がスタンバイを昇格させるときに、 ip_addressのマスターエージェントにmasterデータベースを隔離して2つのマスターを防ぐように指示しています。 |
| 分離されたmasterデータベースのシャットダウン。 | 分離されたmasterデータベースは、フェールオーバーマネージャーによってシャットダウンされました。 |
| クラスターcluster_nameのマスターデータベースがフェンスされています | マスターデータベースは、クラスターの大部分から分離されています。マスターが分離の検出を完了する前に、スタンバイが昇格され、クラスター内のこのノードに再参加しました。このノードは、複数のマスターデータベースを回避するために自身を分離しています。 |
| ノードnode_addressにVIPを割り当てることができませんでした | フェールオーバーマネージャーは、何らかの理由でVIPアドレスを割り当てることができませんでした。 |
| クラスターcluster_nameの master_or_standbyデータベース障害 | 指定されたノードでデータベースに障害が発生しました。 |
| クラスタcluster_nameのエージェントがタイムアウトしています | このエージェントは、ローカルデータベースにアクセスしようとしてタイムアウトしました。タイムアウト後、エージェントはデータベースに正常にpingを送信でき、監視を再開しました。ただし、ノードが正常に実行されていることを確認して、データベースまたはエージェントの障害を防ぐ必要があります。 |
| クラスターcluster_nameのタイムアウトが再開しました | このエージェントは、ローカルデータベースを再構成して再起動した後、監視を再開できませんでした。詳細については、エージェントログを参照してください。 |
| クラスターcluster_nameの内部状態の不一致 | フェールオーバーマネージャークラスターの内部状態は、クラスターメンバーの実際の状態と一致しませんでした。これはまれであり、クラスターに参加するノードやタイミングを変更するノードのタイミングの問題が原因で発生する可能性があります。問題を解決する必要がありますが、クラスターの状態も確認して確認する必要があります。不一致の詳細は、エージェントログファイルで確認できます。 |
| フェールオーバーは発生していません | エージェントがマスターデータベースを検出しました クラスタcluster_nameでは使用できなくなりましたが、フェールオーバーに使用できるスタンバイノードが十分ではありません。 |
| node_addressのデータベースの状態が間違っています | スタンバイエージェントは、ローカルデータベースが回復中でないことを検出しました。エージェントはアイドル状態になります。手動による介入が必要です。 |
| node_addressのデータベースの状態が間違っています | マスターエージェントは、ローカルデータベースが回復中であることを検出しました。エージェントはアイドル状態になります。手動による介入が必要です。 |
| クラスタcluster_nameのデータベース接続エラー | このノードは、 node_addressで実行されているデータベースに接続できません これが修正されるまで、このノードはデータベースが実行されているかどうかを確認できないため、フェイルオーバーが正しく機能しない場合があります。 |
| クラスターcluster_nameのスタンバイカスタムモニターエラー | 次のカスタム監視スクリプトは、スタンバイノードで失敗しました。 エージェントはローカルデータベースの監視を停止します。 スクリプトの場所: script_name スクリプト出力: script_results |
| クラスターcluster_nameのマスターカスタムモニターの障害 | 次のカスタム監視スクリプトは、マスターノードで失敗しました。 EFMはスタンバイの昇格を試みます。 スクリプトの場所: script_name スクリプト出力: script_results |
| マスターノードのproperty_nameをtrueに設定 | property_nameプロパティは、このクラスターに対してtrueに設定されています。クラスター全体を停止せずにマスターエージェントを停止すると、クラスターの残りの部分は直ちにマスターエージェントの障害として処理されます。マスターデータベースのメンテナンスが必要な場合は、マスターエージェントをシャットダウンし、フェールオーバーが発生しないという残りのノードからの通知を待ちます。 |
| ロードバランサー接続スクリプトエラー | ロードバランサー接続スクリプトscript_nameを正常に実行できませんでした。終了値: exit_code結果: script_results |
| ロードバランサーデタッチスクリプトエラー | ロードバランサーデタッチスクリプトscript_nameの実行に失敗しました。終了値: exit_code結果: script_results |