仮想サーバー構築

【仮想サーバ構築】JBoss-EAPを設定する!【ドメイン構成】

2020年3月30日

この記事では、前記事【仮想サーバ構築】サーブレットコンテナ(JBOSS)の導入【APサーバー】後の「Jboss-EAP-7.2.0」の設定方法について解説しています。本記事では「ドメイン構成」での設定方法を説明しています。

jboss-eap-7.2では、複数ノードをシングルコンソールで管理する「ドメイン構成」で設定していきます。

想定する構築環境

本記事では、クラスタ環境としてノード2台(ap01、ap02)での「ドメイン構成」を想定しています。また、1ノード2インスタンス構成をとり、障害発生時に自動縮退を行うものとして進めます。

jboss-eap設定の流れ

  1. クラスタ環境設定
  2. JBOSS-EAPの起動
  3. 管理コンソール設定
  4. サービス画面の表示確認
  5. JBOSS-EAP起動・停止・状態表示スクリプトの修正

JBoss-EAPを設定する

クラスタ環境設定

本記事では、ドメイン構成として、jboss-eapへクラスタ環境を構築していきます。

マスタ側(ap01)の設定

「$JBOSS_HOME/domain/configuration/host-master.xml」へドメインコントローラの設定を行います。 「ap01」側で作業を行います。

1行目:「name」属性にマスタノード名を入力 例)「ap01」
3行目:「<local/>」となっていればドメインコントローラーとして動作します。
<local/>要素が含まれているとそのホストがドメインコントローラーとなるため、<local/>要素が有効になっていることを確認します。

スレイブ側(ap02)の設定

「$JBOSS_HOME/domain/configuration/host-slave.xml」へドメインコントローラの設定を行います。 「ap02」側で作業を行います。

1行目:「name」属性にマスタノード名を入力 例)「ap02」
5-7行目:jboss-eapでユーザー作成時に出力されたパスワードを記入します。
例)「 <secret value="UEBzc1cwcmQ=" /> 」
スレイブは、上記のパスワードを使用してマスタ側の管理CLIへアクセスします。

下記のログは「【仮想サーバ構築】サーブレットコンテナ(JBOSS)の導入【APサーバー】」の記事で、「8.JBOSS-EAP7.2.0の導入」⇒「④ スレイブ側の接続ユーザ(ap02)作成」時のログになります。

30行目を右へにスクロールさせると、スレイブがマスターへアクセスする際のパスワードが出力されているのが分かります。<secret value="UEBzc1cwcmQ=" />

JBOSS-EAPの起動

マスター、スレイブの設定が完了したら、一旦jboss-eapを起動し、動作に問題がないことを確認します。

jbossの起動はマスタ→スレイブの順で起動します。
本記事では、起動コマンドでIPをそれぞれバインドする方式を用いるため、各設定ファイルへのIP情報は記述しません。

JBOSS-EAP (マスタ)起動

次のコマンドを実行して、jboss-eap(マスタ)側を起動します。

# 1行で入力します。

$ /opt/jboss/EAP-7.2.0/bin/domain.sh --host-config=host-master.xml -Djboss.bind.address.management=192.168.109.151 -Djboss.bind.address=192.168.109.151

実行後、コンソールへ下記のログが出力されていれば、正常起動が出来ています。

jboss-eap(マスタ)側サーバが起動しました。

エラーが出力される場合は、設定を再度見直してください。

JBOSS-EAP (スレイブ)起動

次のコマンドを実行して、jboss-eap(スレイブ)側を起動します。

# 1行で入力します。

$ /opt/jboss/EAP-7.2.0/bin/domain.sh --host-config=host-slave.xml -Djboss.domain.master.address=192.168.109.151 -Djboss.bind.address=192.168.109.152

実行後、コンソールへ下記のログが出力されていれば、正常起動が出来ています。

jboss-eap(スレイブ)側サーバが起動しました。

エラーが出力される場合は、設定を再度見直してください。

クラスタ環境の疎通ログ確認

スレイブ側のjboss-eapを起動すると、マスタ側のコンソールへ下記のログが出力されます。

スレイブ側(ap02)の接続が認識される。

JBOSS-EAP (スレイブ)起動後に、上記ログが出力されていれば、クラスタ環境が正常に認識されています。

管理コンソール設定

ここからは、管理コンソール(ブラウザ画面)による設定になります。

本環境はドメイン構成の為、全インスタンスの設定は、ホスト「ap01」の管理コンソールから行います。

管理コンソールへログイン

次のURLをブラウザへ入力して、jboss-eap(マスタ)管理コンソールへアクセスします。

URL:「<ap01のIPアドレス>:9990」

ログインダイアログボックスが表示されるため、下記の情報を入力してログインします。

ユーザー名:jboss-eap導入時に作成したユーザー(jb7admin)
パスワード: jboss-eap導入時に設定したパスワード(P@ssW0rd)

サーバー(インスタンス)の登録

ログイン成功後、管理コンソールのトップ画面が表示されます。

ログインに成功後、表示されるjboss-eapの管理コンソールトップ画面

サーバー(インスタンス)の登録

クラスタ環境が認識されている為、「ap01」「ap02」がホストとして登録されていることが分かります。

トップメニューから「Runtime」⇒「hosts」で「ap01」「ap02」が認識されていいます。

下記の情報を基に、各サーバー(インスタンス)を登録していきます。

NodeGroupName
(Server)
offsetInterfaceAutoStartsocket
ap01main-server-groupjbs110publicOFFfull-ha-sockets
jbs22100
ap02other-server-groupjbs210
jbs12100

「Runtime」⇒「Hosts」⇒「Host」⇒「ap01」⇒「+(追加)」をクリックし、サーバーを登録します。

Hostから「ap01」⇒「+」ボタンをクリック

設定項目

  • Name:インスタンス名
  • Auto Start:jboss-eap起動時にインスタンスの自動起動有無
  • Group:サーバーグループ名
  • Socket Binding Default Inteface:public(固定)
  • Socket Binding Group:full-ha-sockets
  • Socket Binding Port Offset:主系は「0」、復系は「100」
  • Update Auto Start With Server Status:OFF(固定)

すべてを登録すると以下のイメージの状態になります。
サーバー(インスタンス)はまだ起動していないため、黒いアイコンが表示されます。

main-server-group:「jbs11」「jbs22」

other-server-group:「jbs21」「jbs12」

サーバー(インスタンス)の起動

「Runtime」⇒「Hosts」⇒「Host」⇒「ap01」 ⇒「Start」でサーバを起動します。

ホスト「ap01」の「jbs11」を起動します。

同様に残る「jbs22」「jbs21」「jbs12」も起動します。

ホスト「ap01」の「jbs11」「jbs22」が起動している。
ホスト「ap02」の「jbs12」「jbs21」が起動している。

全インスタンスが起動しました。

サービス画面の表示確認

すべてのインスタンスが正常に画面表示できることを確認します。

URL:「 http://192.168.109.151:8080/ 」(ap01:jbs11)
URL:「 http://192.168.109.151:8180/ 」(ap01:jbs22)
URL:「 http://192.168.109.152:8080/ 」(ap02:jbs21)
URL:「 http://192.168.109.152:8180/ 」(ap02:jbs12)

すべてのURLで下記の画面が表示されていれば、正常に動作しています。

jboss-eapのサービス画面 例)は「jbs11」の画面

JBOSS-EAP起動・停止・状態表示スクリプトの修正

現在までに行ってきた設定でも、jboss-eapの起動に問題はないのですが、起動コマンドが長すぎる為、ちょっとめんどくさいですね。

jboss-eapの起動シェルは下記のディレクトリに準備されています。

起動シェルスクリプトの配置

/opt/jboss/EAP-7.2.0/bin/init.d

  • jboss-eap.conf(設定ファイル)
  • jboss-eap-rhel.sh(起動シェル)

デフォルトのままでは実用に耐えられないため、少し手を入れます。

JBOSS-EAPのログ出力及びPID用のディレクトリ作成

出力されるログとPIDのディレクトリを作成します。

JBOSS-EAP設定ファイルの編集

起動の都度、いちいちコマンドを入力していくのは非常に大変です。

予め必要な情報を設定ファイルにまとめておくことにします。

下記の要素を設定ファイルに盛り込みます。

変数名使用有無
default location/etc/default/jboss-eap未使用
JAVA_HOME"/usr/lib/jvm/default-java"未使用
JBOSS_HOME/opt/jboss/EAP-7.2.0使用
JBOSS_USERjboss使用
JBOSS_PIDFILE/var/run/jboss-eap/jboss-eap.pid使用
JBOSS_MODEdomain使用
JBOSS_CONFIGstandalone.xml未使用
JBOSS_DOMAIN_CONFIGdomain.xml使用
JBOSS_HOST_CONFIGhost-master.xmlマスタ時
host-slave.xmlスレイブ時
STARTUP_WAIT60使用
SHUTDOWN_WAIT60未使用
JBOSS_CONSOLE_LOG/var/log/jboss-eap/console.log使用
JBOSS_MNGap01使用
JBOSS_OPTS--admin-only -b 127.0.0.1未使用

作成した設定ファイルを既存の「 jboss-eap.conf 」と差し替えます。
既存の「 jboss-eap.conf 」は「 jboss-eap.conf.old」とリネームして保存しておきます。

起動シェルスクリプトの配置

  • /opt/jboss/EAP-7.2.0/bin/init.d
    • jboss-eap.conf(設定ファイル)664
    • jboss-eap.conf.old(既存設定ファイル)
    • jboss-eap-rhel.sh(起動シェル)755

JBOSS_HOST_CONFIG」については、マスタ側で起動の場合「host-master.xml」、スレイブ側で起動の場合「host-slave.xml」と設定します。

JBOSS-EAP起動・停止・状態表示スクリプトの編集

JBOSS-EAP起動・停止・状態表示スクリプトを実用に耐えるように修正します。

作成した設定ファイルを既存の「 jboss-eap-rhel.sh 」と差し替えます。
既存の「 jboss-eap.conf 」は「 jboss-eap.conf.old」とリネームして保存しておきます。

起動シェルスクリプトの配置

  • /opt/jboss/EAP-7.2.0/bin/init.d
    • jboss-eap.conf(設定ファイル)664
    • jboss-eap.conf.old(既存設定ファイル)
    • jboss-eap-rhel.sh(起動シェル)755
    • jboss-eap-rhel.sh.old(既存起動シェル)

 本スクリプト利用により発生した利用者の損害全てに対し、いかなる責任をも負わないものとし、損害賠償をする一切の義務はないものとします。

起動シェルを使用したJBOSS-EAPの起動

ここでいったん、起動シェルが正常に動作することを確認します。

シェルの所有権は「jboss」にありますが、ここでは「root」権限で実行します。
シェルの中身でPID出力先等、「root」権限以外無効の為!

ホスト「ap01」「ap02」で下記のコマンドを実行します。

sh /opt/jboss/EAP-7.2.0/bin/init.d/jboss-eap-rhel.sh start

ホスト「ap01」「ap02」 で設定ファイルの内容が、一部異なることに注意してください。
  JBOSS_HOST_CONFIG」の設定値が、マスタ側で起動の場合「host-master.xml」、スレイブ側で起動の場合「host-slave.xml」と設定します。

「ap01」で、Jboss-eap(マスタ)が正常に起動されている。
「ap02」で、Jboss-eap(スレイブ)が正常に起動されている。

一応、「/var/log/jboss-eap/console.log」の中身に、エラーが無いことを確認します。

JBOSS-EAP状態確認

Jboss-eapの状態を確認します。

ホスト「ap01」「ap02」で下記のコマンドを実行します。

# sh /opt/jboss/EAP-7.2.0/bin/init.d/jboss-eap-rhel.sh status

正常に起動されていれば、「jboss-eap is running (pid 〇〇〇〇)」と出力されます。

「ap01」で、Jboss-eap(マスタ)プロセスがPID:7051で、正常に起動されている。
「ap02」で、Jboss-eap(スレイブ)プロセスがPID:4986正常に起動されている。

以上で「JBOSS-EAPドメイン構成」の設定は完了です。

よく読まれている記事

1

目次1 Shellとは?1.1 代表的なシェルの種類2 シェルスクリプトの違いとは? Shellとは? Shellとは、人間の理解できる言葉を機会へ伝えるプログラムです。 Linux環境でコマンドプロ ...

2

Linuxは主にサーバー用として利用されるOSです。大規模な基幹システムの開発者、ロボットや家電開発等の組み込み系エンジニア、ネットワーク機器やデータベースに携わるインフラエンジニアは触れることが多い ...

3

プログラミング言語を習得しようと思った時、必ずと言っていいほど候補として挙げられるのが「Java」というプログラミング言語です。 「Java」は、現在日本で最も使われている言語であり、非常に人気のある ...

4

この記事は、Linuxについて勉強している初心者の方向けに「Shellスクリプト」について解説します。最後まで読んで頂けましたら、Shellスクリプトはどのような役割を担っているのか?を理解出来るよう ...

-仮想サーバー構築

Copyright© Beエンジニア , 2020 All Rights Reserved.