次の項ではノード・マネージャの概要を説明します。
WebLogic Serverの本番環境では、サーバー・インスタンスが複数のドメイン、マシン、および地理的な場所にまたがって分散することがよくあります。ノード・マネージャは、離れた場所から管理サーバー・インスタンスや管理対象サーバー・インスタンスを起動、停止、および再起動できるWebLogic Server付属のユーティリティです。ノード・マネージャは任意指定の機能ですが、高可用性が要求されるアプリケーションをWebLogic Server環境でホストする場合には使用することをお勧めします。
ノード・マネージャ・プロセスは、特定のWebLogicドメインではなく、マシンに関連付けられます。サーバー・インスタンスがノード・マネージャ・プロセスと同じマシン上に存在している限り、同じノード・マネージャ・プロセスを使用して任意のWebLogic Serverドメインのサーバー・インスタンスを制御できます。ノード・マネージャは、ノード・マネージャを使用して制御するWebLogic Serverインスタンス(管理サーバーまたは管理対象サーバー)をホストするコンピュータごとに実行する必要があります。
WebLogic Serverには、Javaベースのノード・マネージャとスクリプト・ベースのノード・マネージャという、同じような機能を持つ2つのバージョンのノード・マネージャが用意されています。ただし、それぞれのバージョンでは、構成とセキュリティに関する考慮事項が異なっています。
Javaベースのノード・マネージャは、Java仮想マシン(JVM)プロセスで動作します。ノード・マネージャは、WindowsプラットフォームではWindowsサービスとして、UNIXプラットフォームではオペレーティング・システムのサービスとして実行することをお勧めします。これにより、システムの再起動時にノード・マネージャを自動的に再起動できるようになります。
Oracleでは、Windows、Solaris、HP-UX、Linux on Intel、Linux on Z-Series、およびAIXオペレーティング・システム用のネイティブ・ノード・マネージャ・ライブラリを提供しています。
注意: ノード・マネージャは、Open VMS、OS/390、AS400、UnixWare、またはTru64 UNIXではサポートされていません。 |
このバージョンのノード・マネージャの構成は、nodemanager.properties
ファイルで指定されます。「nodemanager.propertiesのレビュー」を参照してください。
Javaベースのノード・マネージャは、スクリプト・ベースのノード・マネージャよりセキュリティ面で優れています。「Javaベースのノード・マネージャのセキュリティの構成」を参照してください。
UNIXおよびLinuxシステムに対しては、スクリプト・ベース・バージョンのノード・マネージャが提供されます。このスクリプトはUNIXシェル・スクリプトに基づいていますが、セキュリティ向上のためにSSHを使用します。SSHではユーザーIDベースのセキュリティが使用されます。
スクリプト・バージョンのノード・マネージャの構成については、「スクリプト・ノード・マネージャの構成」を参照してください。
このバージョンのノード・マネージャでは、Javaベースのノード・マネージャほどのセキュリティは提供されません。しかし、スクリプト・ベースのノード・マネージャの利点は、SSHを使用するように構成されたネットワーク上でサーバーをリモート管理できることです。サーバーを追加でインストールする必要はありません。スクリプトをリモート・マシンにコピーするだけです。
注意: スクリプト・ベースのノード・マネージャは、オペレーティング・システムのサービスとして実行することをお勧めします。これにより、システムの再起動時にノード・マネージャを自動的に再起動できるようになります。 |
どのバージョンのノード・マネージャを使用するかは、お使いのWebLogic Server環境の要件によって異なります。現在の環境に最適なバージョンを判断する際は、以下の点を考慮してください。
WebLogic ServerをWindowsシステムにインストールしている場合は、Javaバージョンのノード・マネージャを使用する必要があります。スクリプト・バージョンのノード・マネージャは、Windowsではサポートされません。
コンセンサス・リースを使用する場合は、Javaバージョンのノード・マネージャを使用するとパフォーマンスが向上する可能性があります。
スクリプト・ベースのノード・マネージャの場合は、セキュリティ構成をJavaバージョンよりもかなり単純にする必要があります。RSHおよびSSHは、Javaバージョンのノード・マネージャで使用するSSLよりも一般的で構成も容易なセキュリティ手法です。スクリプト・バージョンのノード・マネージャの場合は、必要なサイズもJavaバージョンに比べて小さくなります。
Javaバージョンのノード・マネージャは、サポートされるUNIXシステムでinetd
と組み合わせて使用できます。inetd
を使用すると、構成されたポートでリクエストを受信したときにノード・マネージャを自動的に再起動できます。
ノード・マネージャ・クライアントは、通信するノード・マネージャのローカルにあってもリモートにあってもかまいません。以下のクライアントから、Javaバージョンまたはスクリプト・ベース(SSH)バージョンのノード・マネージャのうち、いずれかにアクセスします(また、スクリプト・ベースのノード・マネージャで使用するための、シェル・コマンド・テンプレート形式によるSSHクライアントが用意されています)。
管理サーバー
管理コンソールの「環境」>「マシン」>「構成」>ノード・マネージャページ
たとえば、管理サーバーに通信してServerLifeCycleRuntimeMBean
に対する操作を実行するJMXユーティリティを作成できます。このServerLifeCycleRuntimeMBeanは、内部でノード・マネージャを使用して、操作を実行します。JMXの詳細は、『Oracle WebLogic Server JMXによるカスタム管理ユーティリティの開発』を参照してください。
WLSTコマンドおよびスクリプト - WLSTオフラインは実行中の管理サーバーが存在しない場合に実行可能なノード・マネージャ・コマンド・ライン・インタフェースとして機能します。WLSTコマンドを使用すると、管理サーバーに接続せずにサーバー・インスタンスの起動、停止、およびモニターを行うことができます。管理サーバーの起動が、スタンドアロン・クライアントの主な目的です。しかし、以下の目的にも使用することができます。
ノード・マネージャを使用して起動されたサーバー・インスタンスの停止
管理対象サーバーの起動
ノード・マネージャのログ・ファイルの内容へのアクセス
ノード・マネージャで起動されたサーバーのステータスの取得
サーバー出力ログの内容の取得
WLSTおよびノード・マネージャを使用したサーバーの制御の詳細は、「ノード・マネージャを使用したサーバーの制御」を参照してください。
次の項では、基本的なノード・マネージャの機能について説明します。
WebLogic Scripting Tool (またはスクリプト・ベースのノード・マネージャを使用する場合のみSSHクライアント)を使用して、管理サーバーをホストするマシン上のノード・マネージャ・プロセスに接続し、管理サーバーを起動、停止、または再起動するためのコマンドを発行します。管理サーバーとノード・マネージャの関係は、シナリオに応じて異なります。
管理サーバーをノード・マネージャの制御下に置くことができます。ノード・マネージャを使用して管理サーバーを起動、モニター、および再起動できます。
管理サーバーをノード・マネージャ・クライアントにできます。管理コンソールから管理対象サーバーを起動または停止するときには、管理サーバーを使用してノード・マネージャにアクセスしています。
管理サーバーではノード・マネージャを使用して管理対象サーバーを起動するプロセスがサポートされています。ノード・マネージャを使用して管理対象サーバーを起動するときには、管理対象サーバーは管理サーバーにアクセスして未処理の構成の更新を取得します。
WebLogic Server Scripting Tool (WLST)コマンド・ラインまたはスクリプトを使用してノード・マネージャにコマンドを発行し、管理対象サーバー・インスタンスやクラスタを起動、停止、一時停止、および再起動できます。
ノード・マネージャは、管理サーバーにアクセスできない場合でも管理対象サーバー独立(MSI)モードが有効になっていれば、管理対象サーバー・インスタンスを障害後に再起動できます。デフォルトでは、これは有効になっています。
注意: ノード・マネージャは、最初からMSIモードで管理対象サーバーを起動することはできません。管理対象サーバーが自身の構成を設定を取得するには、ドメインの管理サーバーにアクセスできなくてはならないからです。 |
注意: ノード マネージャは、スクリプトまたはコマンドラインで管理対象サーバーを起動するときに指定するものと同じコマンド引数を使用します。起動引数の詳細は、『Oracle WebLogic Serverコマンド・リファレンス』のweblogic.Serverコマンド・ライン・リファレンスに関する項を参照してください。 |
ノード・マネージャを使用して起動されたサーバー・インスタンスに障害が発生した場合、ノード・マネージャはそのインスタンスを自動的に再起動します。
注意: ノード・マネージャは、ノード・マネージャを使用して起動されたサーバーのみを再起動できます。 |
再起動機能は構成可能です。ノード・マネージャのデフォルトの動作は、以下のとおりです。
障害の発生した、制御下にあるサーバー・インスタンスを自動的に再起動します。この機能は無効にできます。
障害の発生したサーバー・インスタンスを特定の回数まで再起動します。再起動の回数は、ノード・マネージャのstartup.properties
ファイルでRestartMax
プロパティを設定して定義します。
ノード・マネージャに障害が発生した場合や、ノード・マネージャが明示的に停止された場合、ノード・マネージャは再起動時に前回の終了時に制御下にあったサーバー・インスタンスを判別します。ノード・マネージャは必要に応じて障害の発生したサーバー・インスタンスを再起動できます。
注意: ノード・マネージャをオペレーティング・システムのサービスとして実行することをお勧めします。これにより、ホスト・マシンの再起動時にノード・マネージャを自動的に再起動できるようになります。 |
次の項では、ノード・マネージャがサーバーとの通信に使用するプロセスの図および説明と合わせて、ノード・マネージャの役割のWebLogic Server環境における「全体像」を示します。
図2-1は、ノード・マネージャ、ノード・マネージャのクライアント、およびノード・マネージャが制御するサーバー・インスタンスの関係を示します。
図2-2は、ノード・マネージャによる管理サーバー起動プロセスを示します。
この項では、すでに管理サーバーをインストールし、構成ウィザードを使用してドメイン・ディレクトリを作成していることを前提としています。
ノード・マネージャは、管理サーバーをホストするマシンAで実行されています。スタンドアロンのノード・マネージャ・クライアントはリモートにあります。
認可されたユーザーは、WLSTオフライン・コマンドnmConnect
を発行し、管理サーバーをホストするマシン上のノード・マネージャ・プロセスに接続します(ノード・マネージャ・インスタンスがSSHバージョンである場合は、ユーザーはSSHクライアントを使用して接続できます)。nmConnect
コマンドによってノード・マネージャのユーザー名とパスワードが提供され、これらを使用してユーザーはノード・マネージャの認証を受けます。
次に、ユーザーはnmStart
コマンドを発行し、管理サーバーを起動するための資格証明を提供します。例:
prps = makePropertiesObject("username=weblogic, password=welcome1") nmStart("AdminServer",props=prps)
注意: ユーザーが以前にノード・マネージャに接続したことがある場合にはboot.properties ファイルが存在するので、ユーザーはユーザー名とパスワードを指定する必要はありません。 |
nmStart
コマンドは、起動するドメインおよびサーバー・インスタンスを識別します。
ノード・マネージャがnodemanager.domains
でドメイン・ディレクトリをルックアップし、暗号化されたユーザー名とパスワードを格納するローカル・ファイルを使用してユーザーの資格証明を認証します。
ノード・マネージャは、管理サーバーの起動プロパティを取得します。
ノード・マネージャが管理サーバーのプロセスを作成します。
管理サーバーが、そのconfig
ディレクトリからドメイン構成を取得します。
注意: 管理サーバーの実行後、WLSTオンライン・コマンド(nmGenBootStartupProps )を使用して、ユーザー資格証明と起動プロパティを更新できます。
あるいは、管理サーバーとノード・マネージャの実行時に、AdminServer > 「構成」 > 「サーバーの起動」ページで、管理コンソールにユーザー資格証明と起動プロパティを更新できます。管理サーバーは、実行中のノード・マネージャに更新内容をプッシュし、ノード・マネージャは情報をディスクに書き込みます。 |
図2-3は、ノード・マネージャによる管理対象サーバー起動プロセスを示します。
ノード・マネージャは、管理対象サーバー1をホストするマシンBで実行されています。ドメインの管理サーバーはマシンAで実行されています。
ユーザーが、管理コンソールから管理対象サーバー1の起動コマンドを発行します。
注意: スタンドアロン・クライアントは、管理対象サーバーの起動コマンドを発行することもできます。 |
管理サーバーが、管理対象サーバー1用に構成されたリモート起動プロパティを指定して、マシンB上のノード・マネージャに管理対象サーバー1の起動コマンドを発行します。引数とその指定方法の詳細は、「ステップ5: リモート起動引数の構成」を参照してください。
ノード・マネージャが管理対象サーバー1を起動します。
ノード マネージャは、ノード・マネージャ・プロセスが実行されているものと同じルート・ディレクトリを使用してその管理対象サーバーを起動します。別のディレクトリで管理対象サーバーを実行するには、管理コンソール・ページで「サーバー」>「構成」>「サーバーの起動」の「ルート・ディレクトリ」
の属性を設定します。
管理対象サーバー1が管理サーバーにアクセスし、構成情報の更新をチェックします。
ドメイン構成に未処理の変更がある場合、管理対象サーバー1は構成データのローカル・キャッシュを更新します。
図2-4は、ノード・マネージャによる管理サーバー再起動プロセスを示します。
ノード・マネージャは、管理サーバーをホストするマシンで実行されています。ノード・マネージャを使用して最初に起動された管理サーバーはすでに終了しています。管理サーバーのAutoRestart
属性はtrue
に設定されています。
注意: サーバー・インスタンスのAutoRestart 属性がfalse に設定されている場合、ノード・マネージャはそのインスタンスを再起動しません。 |
ノード・マネージャが管理サーバー・プロセスの終了コードから再起動が必要であると判断します。
ノード・マネージャがboot.properties
ファイルから管理サーバーの起動に使用するユーザー名とパスワードを取得し、server_name
/data/nodemanager/startup.properties
ファイルからサーバーの起動プロパティを取得します。
ノード・マネージャが管理サーバーを起動します。
管理サーバーがその構成データを読み込み、起動します。
図2-5は、ノード・マネージャによる管理対象サーバー再起動プロセスを示します。
ノード・マネージャは、管理対象サーバー1をホストするマシンBで実行されています。ノード・マネージャを使用して最初に起動された管理対象サーバー1はすでに終了しています。管理対象サーバー1のAutoRestart
属性はtrue
に設定されています。
注意: サーバー・インスタンスのAutoRestart 属性がfalse に設定されている場合、ノード・マネージャはそのインスタンスを再起動しません。 |
ノード・マネージャが管理対象サーバー1の最新の既知の状態から再起動が必要であると判断します。
ノード・マネージャがboot.properties
ファイルから管理対象サーバー1の起動に使用するユーザー名とパスワードを取得し、startup.properties
ファイルからサーバーの起動プロパティを取得します。これらのサーバー固有のファイルは、管理対象サーバー1のサーバー・ディレクトリにあります。
ノード・マネージャが管理対象サーバー1を起動します。
注意: ノード・マネージャは、サーバー・インスタンスに障害が発生した後からRestartDelaySeconds で指定された秒数待機してから再起動を行います。 |
管理対象サーバー1が管理サーバーにアクセスし、構成データの更新をチェックします。管理サーバーにアクセスし、構成データの更新を取得すると、管理対象サーバー1はconfig
ディレクトリのローカル・キャッシュを更新します。
管理対象サーバー1が管理サーバーにアクセスできなかった場合に管理対象サーバー独立(MSI)モードが有効になっていると、管理対象サーバー1はローカルにキャッシュされた構成データを使用します。
注意: デフォルトでは、管理対象サーバー独立モードは有効になっています。 |
図2-6は、ノード・マネージャの制御下にある管理対象サーバーの停止に伴う通信について説明しています。管理対象サーバーの状態と可用性によっては、ノード・マネージャは別の方法で停止を始める必要があります。
ノード・マネージャは、管理対象サーバー1をホストするマシンBで実行されています。
認可されたユーザーが、管理コンソールを使用して管理対象サーバー1の停止コマンドを発行します。
管理サーバーは管理対象サーバー1に直接シャットダウン・コマンドを発行します。管理対象サーバー1へのアクセスが成功すると、管理対象サーバー1は、『Oracle WebLogic Serverサーバーの起動と停止の管理』の正常シャットダウンに関する項で説明されている停止シーケンスを実行します。
前の手順で管理対象サーバー1へのアクセスが失敗した場合、管理サーバーはマシンB上のノード・マネージャに管理対象サーバー1の停止コマンドを発行します。
ノード・マネージャが、オペレーティング・システムに管理対象サーバー1を強制停止するようにリクエストを発行します。
オペレーティング・システムが管理対象サーバー1のプロセスを終了させます。
システム・クラッシュの後に、ノード・マネージャによってサーバーが確実に再起動されるようにするには、以下を実行する必要があります。
Javaベースのノード・マネージャの場合、CrashRecoveryEnabled
がtrue
に設定されていることを確認します。
CrashRecoveryEnabled
構成プロパティを使用すると、ノード・マネージャがシステム・クラッシュの後にサーバーを再起動できます。このプロパティは、デフォルトでは有効になっていません。
スクリプト・ベースのノード・マネージャの場合、この行をマシン起動スクリプトに配置するか、必要に応じて指定スケジュールで定期的に実行します。
wlscontrol.sh -d domain_name
CRASHRECOVERY
管理サーバーをノード・マネージャを使用して起動します。
すべての管理対象サーバーを管理サーバーを使用して起動します。この操作は、WLSTまたは管理コンソールで実行できます。
システムの再起動後、ノード・マネージャはnodemanager.domains
ファイルで指定された各管理対象ドメインをチェックして、停止に問題のあったサーバー・インスタンスがあるかどうかを判断します。これは、WebLogic Serverプロセスの作成時にノード・マネージャによって作成されたロック・ファイルが存在するかどうかによって決まります。このロック・ファイルには、WebLogic Server起動スクリプトのプロセス識別子が含まれています。ロック・ファイルが存在するが、プロセスIDが実行されていない場合、ノード・マネージャは自動的にサーバーを再起動しようとします。
プロセスが実行中であれば、ノード・マネージャはさらにチェックを行ってプロセス内で実行されている管理サーブレットにアクセスし、プロセスIDに対応するプロセスが、WebLogic Serverインスタンスであることを確認します。
注意: ノード・マネージャがチェックを実行して管理サーブレットにアクセスする際、不適切な資格証明に関し、サーバー・ログ内にアラートが示されることがあります。 |
複数のサーバーを管理する場合、ノード・マネージャは、図2-7に示すように複数の構成ファイルを使用し、複数のディレクトリにログ・ファイルを出力します。
以下の項では、ノード・マネージャの構成ファイルとログ・ファイルについて説明します。
言及されていない限り、構成ファイルはJavaベースのノード・マネージャとスクリプト・ベースのノード・マネージャの両方に適用されます。
Javaベースのノード・マネージャによって使用される構成ファイルです。「nodemanager.propertiesのレビュー」を参照してください。
このファイルはWL_HOME
/common/nodemanager
にあります。WL_HOME
はWebLogic Serverのインストール先ディレクトリです。
このファイルには、ノード・マネージャによって管理されるドメインの名前と、それに対応するディレクトリのマッピングが格納されます。「ステップ4: nodemanager.domainsファイルの構成」を参照してください。
このファイルはWL_HOME
/common/nodemanager
にあります。
このファイルには、ノード・マネージャが対称暗号化キーとして使用する暗号化データが格納されます。データは暗号化された形で保存されます。
このファイルはWL_HOME
/common/nodemanager
にあります。
このファイルには、ノード・マネージャのユーザー名とパスワードが格納されます。「ステップ2: ノード・マネージャのユーザー名とパスワードの指定」を参照してください。
このファイルはDOMAIN_HOME
/config/nodemanager
にあります。
ノード・マネージャはこのファイルを使用して、サーバーの起動時にユーザー資格証明を指定します。「ノード・マネージャの一般的な構成」を参照してください。
このファイルはDOMAIN_HOME
/servers/
server_name
/data/nodemanager
にあります。
各管理対象サーバー・インスタンスには、ノード・マネージャによるサーバーの起動方法および管理方法を指定するプロパティが記載された、独自のstartup.properties
ファイルがあります。最後に管理サーバーを使用してこのサーバーを起動したときにノード・マネージャに渡されたプロパティを使用して、ノード・マネージャはこのファイルを自動的に作成します。これにより、ノード・マネージャ・クライアントまたは起動スクリプトは、管理サーバーによって最後に使用されたものと同じプロパティを使用して管理対象サーバーを再起動できるようになります。
startup.properties
の詳細は、「ステップ6: サーバーの起動プロパティの設定」を参照してください。これらのプロパティは、ServerStartMBeanのサーバー起動属性とServerStartMBeanの状態モニター属性に対応しています。
このファイルはDOMAIN_HOME
/servers/server_name/data/nodemanager
にあります。
server
_name.addr
は、サーバーが起動または移行される際に追加されたIPアドレスを格納します。このファイルは、移行中にサーバーIPアドレスが正常にオンラインになった後に生成されます。IPアドレスがオフラインになると、server
_name.addr
は削除されます。サーバーIPアドレスは、サーバーの停止中に、アドレスが誤って削除されてしまうことを回避するための、削除リクエストの検証に使用されます。
このファイルはDOMAIN_HOME
/servers/server_name/data/nodemanager
にあります。
サーバーごとに生成されるserver_name
.lck
は、内部的に使用されるロックIDを格納します。
このファイルはDOMAIN_HOME
/servers/server_name/data/nodemanager
にあります。
サーバーごとに生成されるserver_name
.pid
は、サーバーのプロセスIDを格納します。ノード・マネージャは、クラッシュ・リカバリ中、サーバーによって生成されたプロセスIDをチェックします。
このファイルはDOMAIN_HOME
/servers/server_name/data/nodemanager
にあります。
個々の管理対象サーバーの起動または停止に関する問題を解決するには、ノード・マネージャおよびWebLogic Serverのログ・ファイルを利用します。
表2-1 ノード・マネージャ・ログ・ファイルの場所
ログ・ファイル | 場所 |
---|---|
ノード・マネージャのログ・ファイル |
Javaベース・ノード・マネージャ専用の |
ノード・マネージャ・サーバー・インスタンスのログ・ファイル |
|
WebLogic Serverのログ・ファイル |
|
ノード・マネージャは、NodeManagerHome/nodemanager.log
にログ・ファイルを作成します。このログ・ファイルには、ノード・マネージャによって管理されるすべてのドメインに関するデータが記載されます。
nodemanager.log
は、スクリプト・ベース・ノード・マネージャではなく、Javaベースノード・マネージャのみに対して作成されます。このログ・ファイルは、ノード・マネージャによって生成され、特定の物理的なマシン上でノード・マネージャによって制御されるすべてのドメインに関するデータが格納されます。このファイルは、WL_HOME
/common/nodemanager
にあります。
ログ出力は、現在のnodemanager.log
に追加されます。ログ・ローテーションはデフォルトでは無効になっていますが、nodemanager.properties
でLogCount
を設定することで有効にできます。
以下の方法で、ノード・マネージャのログ・ファイルを表示できます。
管理コンソールで「マシン」>「監視」>「ノード・マネージャのログ」ページでを選択します。
WLSTのnmLog
コマンドを使用します。
ノード・マネージャは制御対象の各サーバー・インスタンスについて、サーバー・インスタンスで生成されるstdout
メッセージおよびstderr
メッセージを格納するログ・ファイルを保持します。サーバー・インスタンスのリモート起動プロパティとしてリモート起動デバッグ・プロパティが有効になっている場合や、ノード・マネージャのデバッグ・プロパティが有効になっている場合には、ノード・マネージャによってサーバーの出力ログ情報にデバッグ情報が追加されます。
注意: ノード・マネージャが作成するこのログ・ファイルのサイズは制限できません。stdout へのロギングはデフォルトでは無効になっています。 |
このファイルは、domain_name
/servers/
server_name
/logs
にあります。
ノード・マネージャによって、サーバー・インスタンスのlogs
ディレクトリにそのサーバー・インスタンスのサーバー出力ログが次の名前で作成されます。
server_name
.out
server_name
はサーバー・インスタンスの名前です。
以下の方法で、特定のサーバー・インスタンスに関するノード・マネージャのログ・ファイルを表示できます。
「診断」>「ログ・ファイル」を選択します。
WLSTのnmServerLog
コマンドを使用します。
ノード・マネージャが作成できるサーバー出力ログ数に制限はありません。