Enterprise Edition――フェールオーバー(PostgreSQLがバックエンドDBの場合)

Applications Managerでフェールオーバーを実装するには、次の手順に従ってください。

単一データベースとデュアルApplications Managerの構成

この設定では、プライマリApplications Manager、セカンダリApplications Manager、共有の1データベースを利用します。Applicatiions Managerは2つとも、共通のデータベースを参照してデータを管理します。プライマリがDBと交信している間、セカンダリが実行しているのはDBからの情報聞き取りのみです。プライマリ サーバーがダウンすると、セカンダリ サーバーが引き継ぎを行います。しばらくして最初のサーバーが再起動すると、今度はプライマリではなくセカンダリとして動作を始めます。

フェールオーバーをインストールする前に(Managedサーバーの場合)
  • Applications ManagerのAdminコンソールにログインし、Managedサーバーのリストに移動します。
  • Managedサーバーを編集し、フェールオーバー詳細のラジオ ボタンを有効にします。
  • フェールオーバー構成のインストール前に、対象となるManagedサーバーのホスト名、Webサーバー、SSLポートを入力してください。
  • 保存のち、フェールオーバー サーバーのインストールを開始できます。

フェールオーバー構成詳細

ここでは、ノード1、ノード2、ノード3の3つを立ち上げるものとします。
Applications Manager:ノード1、ノード2
PostgreSQLデータベース:ノード3

フェールオーバーを図表で説明

手順1:PosgreSQLデータベース サーバーをノード3にインストールし、起動確認します。

当社サイトよりApplications Managerをダウンロードしてください。PostgresSQLは製品にバンドルされており、バンドル版のPostgreSQL利用を推奨します。

リモートPostgres DBサーバーのセットアップ手順

  • DBを実行するリモート サーバーで行うのと同様に、Applicaions Managerを通常通りインストールしてください。この環境ではDBを使うことだけが目的であるため、Professional Editionをインストールします(Windowsではインストーラーを右クリックし、「管理者として実行」します。コマンド プロンプトも同じ手順で、管理者として実行してください。コマンド プロンプトのラベルが「Administrator」かで確認可能です)。
  • このApplicaions Managerを1回起動して、停止します。
  • ManageEngine Applications Managerサービスの停止を確認してください。
  • Applications Manageから、サーバー管理者権限のコマンド プロンプトを開きます。<AppManager_Home>フォルダーへ移動し、次のコマンドを実行します。 shutdownApplicationsManager.bat -force
  • 上記コマンドを繰り返し、全プロセスの停止を確認してください。
  • Windowsでは、コマンド プロンプトを開き、<AppManager_Home>binフォルダーへ移動してuninstallservice.batを実行、Applications ManagerのWindowsサービスを削除します。この場合はDBだけが必要なので、製品のサービスは不要です。
  • pg_hba.confへの変更
    • <AppManager_Home>/working/pgsql/data/amdbフォルダーのpg_hba.confを開きます。
    • # IPv4 local 接続で、アドレスを127.0.0.1/32から0.0.0.0/0に変更してください。これによって、リモート サーバーからのPostgreSQL DBへの接続が可能になります。
  • postgresql.confへの変更
    • <AppManager_Home>/working/pgsql/data/amdbフォルダーのpostgresql.confを開きます。
      listen_addressesのコメントを解除し、localhostを「*」に変更します。
  • Windowsでは、<AppManager_Home>\working\binフォルダーにコマンド プロンプトで移動し、「register_pgdbservice.bat」を実行します。これによって、PosgreSQLがWindowsサービスとしてインストールされます。
  • ここで、ApplicationsManager_Posgresqlサービスの起動が可能となり、PostgreSQL DBサーバーの接続準備ができたことになります。
  • Linuxでは、<AppManager_Home>/workingフォルダーへ移動し、sh./bin/startPGSQL.shを実行すると、PostgreSQL DBサーバーの接続準備ができたことになります。

手順2:Applications Managerをノード1にインストールします。

  • Applications Managerを、通常リモート サーバーに行うのと同様に、インストールしてください。このApplications Managerを、下記の手順で最低1回は起動・停止します。
    • ManageEngine Applications ManagerのWindowsサービスの停止を確認してください。
    • Applications Manageから、サーバー管理者権限のコマンド プロンプトを開きます。
    • <AppManager_Home>フォルダーへ移動し、次のコマンドを実行します。shutdownApplicationsManager.bat -force
    • 上記コマンドを繰り返し、全プロセスの停止を確認してください。
  • <AppManager_Home>conf\AMServer.propertiesファイルをエディターで開き、下記エントリを更新のうえ保存します。

    am.dbserver.type=pgsql
    am.db.port=15432(ポート番号は、インストールしたPostgreSQLの<AppManager_Home>\working\pgsql\data\amdb\postgres_ext.confファイルで確認できます)。
    am.dbport.check=false

  • 下記の2か所にあるdatabase_params.confファイルを更新します。これらのファイルは同一です。変更必要箇所は、JDBCのURLだけです。PostgreSQL DBを実行しているリモート サーバーのホスト名とポートを更新してください。
    • Url jdbc:postgresql://paulp0558:15432/amdbdontTrackOpenResources=true&useUnicode=true&characterEncoding=UTF-8 AppModules TopoDB-MapDB-EventDB-AlertDB-PollDB-PolicyDB-USERSTORAGEDB-ApplnDB
      以下の2か所にあるdatabase_params.confファイルでも、同じ変更を行います。
      <AppManager_Home>\working\conf\PGSQL
      <AppManager_Home>\working\conf
    • これによって、Applications ManagerのWindowsサービスを起動する準備が完了です。Applications Managerはリモート サーバーで実行中のPostgreSQLに接続します。このサーバーは、プライマリ サーバーとして動作します。<AppManager_Home>\logs\rapper.logで確認ください。
  • Linuxでは、スタートアップ プロセスの起動と追跡は、次のように実行します。
    nohup sh startApplicationsManager.sh &

    Enterキーを押してください。

    tail -f nohup.out

手順3:Applications Managerをノード2にインストールします。これはセカンダリ サーバーとして動作します。

am.dbserver.type=pgsql
am.db.port=15432(ポート番号は、インストールしたPostgreSQLの<AppManager_Home>/working/pgsql/data/amdb/postgres_ext/.confファイルで確認できます)。
am.dbport.check=false

  • Applications Managerを、通常リモート サーバーに行うのと同様に、インストールしてください。このApplications Managerを、下記の手順で最低1回は起動・停止します。
    • Windowsサービスの場合、ManageEngine Applications Managerサービスの停止を確認してください。
    • Applications Manageから、サーバー管理者権限のコマンド プロンプトを開きます。
    • <AppManager_Home>フォルダーへ移動し、次のコマンドを実行します。shutdownApplicationsManager.bat -force
    • 上記コマンドを繰り返し、全プロセスの停止を確認してください。
  • <AppManager_Home>\conf\AMServer.propertiesファイルをエディターで開き、下記エントリを更新のうえ保存します。
  • database_params.confファイルshown in below 2 locations.これらのファイルは同一です。Only change you have to make is for jdbc URL as shown belowの更新

PostgreSQL DBを実行しているリモート サーバーのホスト名とポートを更新してください。
Url jdbc:postgresql://paulp0558:15432/amdbdontTrackOpenResources=true&useUnicode=true&characterEncoding=UTF-8 AppModules TopoDB-MapDB-EventDB-AlertDB-PollDB-PolicyDB-USERSTORAGEDB-ApplnDB

  • 以下の2か所にあるdatabase_params.confファイルでも、同じ変更を行います。

    <AppManager_Home>\working\conf\PGSQL
    <AppManager_Home>\working/conf

これによって、Applications ManagerのWindowsサービスを起動する準備が完了です。このApplicaions Managerは、プライマリがすでに稼働中のため、完全には起動しません。サーバーは起動後、プライマリへの聞き取りを行います。同じ設定は、<AppManager_Home>\logs\wrapper.logからも可能です。

メモ
Linuxでは、スタートアップ プロセスの起動と追跡は、次のように実行します。
nohup sh startApplicationsManager.sh &
Enterキーを押してください。
tail -f nohup.out

nohup出力サンプル

INFO | jvm 1 | 2013/08/05 01:00:06 | Checking for availability of Primary Server in Database. Found an entry.
INFO | jvm 1 | 2013/08/05 01:00:06 |
INFO | jvm 1 | 2013/08/05 01:00:06 | Trying to connect to Primary Server at 192.168.1.3
INFO | jvm 1 | 2013/08/05 01:00:06 |
INFO | jvm 1 | 2013/08/05 01:00:07 | Please wait ...
INFO | jvm 1 | 2013/08/05 01:00:08 | ....Connected
INFO | jvm 1 | 2013/08/05 01:00:08 |
INFO | jvm 1 | 2013/08/05 01:00:08 |
INFO | jvm 1 | 2013/08/05 01:00:08 | Starting AdventNet Web NMS Standby Server. Modules will be started once it takes over as Primary Server.
INFO | jvm 1 | 2013/08/05 01:00:08 |
INFO | jvm 1 | 2013/08/05 01:00:08 | Monitoring Primary Server at 192.168.1.3

ノード1のApplications Managerがダウンすると、ノード2のApplications Managerが起動します。フェールオーバー発生時はメール通知で、ダウン中のノードの問題解決が必要とわかります。ダウンから回復したサーバーはセカンダリとなって、次回の障害の際はフェールオーバー先となるよう、情報聞き取りを始めます。

INFO | jvm 1 | 2013/08/05 01:09:47 | Monitoring Primary Server at 192.168.1.3
INFO | jvm 1 | 2013/08/05 01:10:48 | Starting to do FailOver Tasks.
INFO | jvm 1 | 2013/08/05 01:11:08 | Process : AlertFE [ Started ]
INFO | jvm 1 | 2013/08/05 01:11:08 | Process : NmsMainFE [ Started ]
INFO | jvm 1 | 2013/08/05 01:11:08 |
INFO | jvm 1 | 2013/08/05 01:11:08 | Verifying connection with web server... verified
INFO | jvm 1 | 2013/08/05 01:11:08 |
INFO | jvm 1 | 2013/08/05 01:11:08 | Applications Manager started successfully.
INFO | jvm 1 | 2013/08/05 01:11:08 |
INFO | jvm 1 | 2013/08/05 01:11:08 | Please connect your client to web server on port: 9095
INFO | jvm 1 | 2013/08/05 01:11:08 |
INFO | jvm 1 | 2013/08/05 01:11:09 | new primary server is 192.168.1.4

メモ:上記の手順をEnerprise構成全体で、フェールオーバーを設定するそれぞれのApplications Managerに実行してください。