Confluence Data Center 7.X のインストール (Linux, クラスター構成)

このページでは、インストーラーを利用して Confluence の Data Center 版を クラスター化された構成で Linux 環境にインストールする手順について紹介します。

目次


はじめに

Confluence をインストールする環境は以下を想定しています。

インストールディレクトリ
(Confluence のプログラムを配置するディレクトリ)

/opt/atlassian/confluence (Confluence のインストーラーのデフォルト設定を利用)

ローカルホームディレクトリ

(Confluence のローカルデータを保存するディレクトリ)

/var/atlassian/application-data/confluence

共有ホームディレクトリ
(Confluence の共有データを保存するディレクトリ)

/data/confluence/shared-home 

TCP ポート番号8090 (Confluence のデフォルトポートを利用) (情報)アトラシアン アプリケーションで使用されるポート
コンテキストパス
(URL でサーバー名に続く文字)
/wiki 

インストールを実行するユーザー

root

Confluence 稼働ユーザー

confluence (Confluence のインストーラーで自動で作成されるユーザーを利用)

データベース

共有ホームディレクトリ と同一のサーバーにインストールされた PostgreSQL を利用

Java

AdoptOpenJDK JRE (Confluence のインストーラーに同梱の JDK を利用)

起動方法

サービスとして登録し、自動起動する


ご注意ください

Confluence のバージョンによってサポートされている稼働環境は異なります。
最新の情報は、サポート対象プラットフォーム のページからご確認ください。

構成例

Confluence をクラスター構成にする事により、一つのノードが停止しても直ちに Confluence のサービスが停止するという事態を避けることができ可用性は向上します。反面、システムリソースを多く消費するためサーバーの運用負荷は高くなります。詳細は Confluence Data Center でのクラスタ化 をご参照下さい。 

Confluence をクラスター化して構成する場合は、スティッキー HTTP セッション が必要です。この手順書ではロードバランサー(単一)として  Apache を利用し、Confluence を 2ノード構成にした環境でのインストール手順を説明します。

 

他の構成例については、Data Center の構成例 (Atlassian ドキュメント) をご参照ください。

この手順書では、説明を簡略化するために、サーバーは以下の4台で構成する前提で記載しています。
共有データベースと共有データディレクトリは、 一つのサーバーに構築されています。


名称インストールされているシステム・ディレクトリIP アドレス
1Confluence ノード1
  • Confluence アプリケーション (Node1)
192.168.56.113
2Confluence ノード2
  • Confluence アプリケーション (Node2)
192.168.56.114
3ロードバランサ
  • Apache
192.168.56.115
4データサーバー
  • 共有データベース(PostgreSQL)
  • 共有データディレクトリ (/data/confluence/shared-home)
192.168.56.116

1.サーバーを用意する

Confluence をインストールするサーバー

Confluence をインストールするサーバーをノード分用意します。必要なスペックについては以下をご参照ください。

各 Confluence ノードの RAM は、最小 10 GB にすることをお勧めします。

ロードバランサーとして利用するサーバー

ロードバランサーを用意します。ロード バランサは「ステッキー HTTP セッション (セッション アフィニティ) 」と 「WebSockets」 をサポートしている必要があります。AWS 上で構築する場合は、アプリケーションのロードバランサ(ALB)を使用する必要があります。
HAProxy、Apache、および Nginx 等がありますが、この手順書では Apache を利用します。

詳細は ロードバランサーの構成オプション ( Atlassian ドキュメント) や Atlassian Data Center を使用したトラフィック分布 ( Atlassian ドキュメント)   をご確認下さい。

データベースと共有データディレクトリを構成するデータサーバー

Confluence で利用する共有データベース (今回は PostgreSQL)をインストールするサーバーと、添付ファイル等を格納する共有データディレクトリを構築するサーバーを用意します。
今回は、データベースと共有データディレクトリは同じサーバーに構築します。

2.各サーバーにLinux をインストールする

ロードバランサーや Confluence を設定するサーバー、データサーバーに それぞれ Linux をインストールしてください。本ドキュメントでは CentOS を利用します(RHELや、Ubuntu などの Debian 系ディストリビューションを利用することもできます)。

 VMwareAWS などで仮想環境のサーバーに Confluence をインストールすることもできます。その場合、ノード1の 仮想マシン をコピーして ノード2のサーバーを作成する事も可能です。本ドキュメントでは、仮想マシンをコピーする場合としない場合の両方に対応しています。仮想マシンのコピーをする方は、このタイミングではノード2のサーバーは準備しなくて良いです。


3.データベース を用意する

サポート対象プラットフォーム に記載されている、サポートされたデータベースを構築します。本ドキュメントでは PostgreSQL を利用しますので、以下のページの手順を実施してください。
今回はデータサーバーに PostgreSQL をインストールし、Confluence用の共有データベースを作成します。

ご注意ください

クラスタ化した Confluence では、 Confluence 内部の組み込みデータベース(H2) をご利用いただけません。

4.ノード1の Confluence のインストール・セットアップ を実行する

Confluence Data Center 7.X のインストール (Linux, シングルノード構成) の  4.Confluence インストーラーをダウンロードする 以降とConfluence の日本語化を実行します。Confluence のインストール途中で下記の画面が表示されますが、一旦 非クラスター(単一ノード)を選択して作業を進める様にして下さい。

ここでは Confluence ver.7.18.1 をインストールします。インストールする Confluence のバージョンが異なる場合は、バージョンの部分を読み替えて実行をお願いします。

5.共有ディレクトリをセットアップする

クラスタ内のすべてのノードで読み取り/書き込み可能な共有ディレクトリを作成します。今回は、DBサーバーに共有ディレクトリを作成し、NFS で他ノードへ共有する場合の手順を紹介します。

5.1.ノード1の Confluence のサービスを停止する

Confluence が起動している場合は、以下のコマンドを実行し Confluence を停止します。
※ RHEL 7 や CentOS 7 系の OS をご利用で Confluence systemd の設定 を実施している場合は以下のコマンドで実行できます。

# systemctl stop confluence

5.2.バックアップ

作業に入る前に、confluence の インストールディレクトリ (/opt/atlassian/confluence) と ローカルホームディレクトリ (/var/atlassian/application-data/confluence) のバックアップを取得する事をお勧めします。

5.3.データサーバーで共有ディレクトリを作成する

データサーバーで、以下のコマンドを実行し、共有ディレクトリを作成します。

# mkdir -p /data/confluence/shared-home

ノード1の Confluence のローカルホームディレクトリにある shared-home、attachments フォルダを、データサーバーの共有ディレクトリ配下へコピーします。
例として、ノード1の Confluence サーバー上で以下のコマンドを実行すると、rsync コマンド利用して共有データディレクトリ配下へコピーできます。/shared-home/ や、attachments の 末尾の スラッシュ "/" にご留意下さい。

 # rsync -auz -e ssh /var/atlassian/application-data/confluence/shared-home/ 192.168.56.116:/data/confluence/shared-home/
 # rsync -auz -e ssh /var/atlassian/application-data/confluence/attachments 192.168.56.116:/data/confluence/shared-home/

(情報) rsync がインストールされていない場合は、以下のコマンドでインストールできます。

# yum -y install rsync 

rsync 実行後、DBサーバーは下記の様になります。

# ls /data/confluence/shared-home
attachments config confluence.cfg.xml

DBサーバーにて、共有ディレクトリの権限を設定します。

# useradd confluence
# chown -R confluence:confluence /data/confluence/shared-home/


5.4  データサーバーで NFS を設定する

データサーバーで、nfs-utils と rpc bind パッケージをインストールします。

# yum -y install rpcbind nfs-utils

以下のコマンドを実行し、設定用のファイルを作成します。

# vi /etc/exports

共有ディレクトリを読み書き許可する範囲を指定します。 以下の例は、192.168.56.1~192.168.56.254 の範囲で許可します。

/etc/exports を編集
/data/confluence/shared-home 192.168.56.0/24(rw,sync,no_root_squash,no_all_squash)

NFS と rpc bind を起動します。

# systemctl start nfs
# systemctl start rpcbind

 以下のコマンドで、OS 起動時に nfs 関連サービスが自動起動するように設定します。

# systemctl enable nfs rpcbind

以下のコマンドで Firewall を設定し、設定を反映させます。

# firewall-cmd --permanent --zone=public --add-service=nfs
# firewall-cmd --permanent --zone=public --add-service=mountd
# firewall-cmd --permanent --zone=public --add-service=rpc-bind
# firewall-cmd --reload

5.5 ノード1でNFSを設定・ディレクトリをマウントする

ノード1の Confluence のサーバで、nfs-utils と rpc bind パッケージをインストールします

# yum -y install rpcbind nfs-utils

NFS と rpc bind を起動します。

# systemctl start nfs
# systemctl start rpcbind

以下のコマンドで、OS 起動時に nfs 関連サービスが自動起動するように設定します。

# systemctl enable nfs
# systemctl enable rpcbind

以下のコマンドで Firewall を設定し、設定を反映させます。

# firewall-cmd --permanent --zone=public --add-service=nfs
# firewall-cmd --permanent --zone=public --add-service=mountd
# firewall-cmd --permanent --zone=public --add-service=rpc-bind
# firewall-cmd --reload

ノード1の Confluence のサーバで、以下のコマンドを実行し、共有ディレクトリを作成します。

# mkdir -p /data/confluence/shared-home

共有ディレクトリの権限を設定します。

# chown -R confluence:confluence /data/confluence/shared-home


以下のコマンドを実行し、/etc/fstab に参照先のサーバーの共有フォルダ情報を追加します。

# vi /etc/fstab

以下の行を追加します。以下は参照先のデータサーバーのIPアドレスが「192.168.56.116」、共有ディレクトリのパスが「/data/confluence/shared-home」である例です。

/etc/fstab に追加
192.168.56.116:/data/confluence/shared-home /data/confluence/shared-home nfs defaults 0 0


以下のコマンドを実行し、ネットワーク経由で NFS マウントします。

# mount -v /data/confluence/shared-home

上記を実行後、以下のようなメッセージのみが表示されましたら、マウントは実行できています。エラーの場合はこれ以外に「failed, reason given by server: No such file or directory」などのメッセージが表示されます。

mount.nfs: timeout set for Mon Jun  6 17:01:58 2022
mount.nfs: trying text-based options 'vers=4.1,addr=192.168.56.116,clientaddr=192.168.56.113'

dfコマンドを実行し、マウントが完了しているか確認します。

# df -h
ファイルシス            サイズ  使用  残り 使用% マウント位置
devtmpfs                  2.8G     0  2.8G    0% /dev
tmpfs                     2.9G     0  2.9G    0% /dev/shm
tmpfs                     2.9G  8.6M  2.9G    1% /run
tmpfs                     2.9G     0  2.9G    0% /sys/fs/cgroup
/dev/mapper/centos-root   6.2G  4.2G  2.1G   68% /
/dev/sda1                1014M  195M  820M   20% /boot
tmpfs                     576M     0  576M    0% /run/user/0
192.168.56.116:/          6.2G  1.7G  4.6G   28% /data/confluence/shared-home

6.ノード1の Confluence をクラスタモードへ変更する

ノード1の Confluence を起動します。

#  systemctl start confluence

ノード1の Confluence が起動したら、管理者権限の ID でログインし管理画面より、「管理」→「クラスタリング」を選択し、「クラスターモードを有効にする」ボタンを押します。

下記の画面が表示されるので、この状態で Confluence を再起動します。

# systemctl stop confluence
# systemctl start confluence

再起動後 Web ブラウザーで Confluence にアクセスすると下記の画面が表示されますので、必要なパラメータを入力します。下記の例では

  • クラスター名:confluence-cluster (こちらは、任意の名前で構いません)
  • 共有ホームディレクトリ:/data/confluence/shared-home (このディレクトリは NFS でマウントしたディレクトリを指定する必要があります。)
  • ノード検出方法:マルチキャスト

としています。ネットワークインタフェースは、他のConfluence ノードと通信するインタフェースを選択してください。

上記の画面で、「クラスターを新規作成」ボタンを押し、しばらくして下記の画面が表示されれば、処理は成功です。

Confluence を起動ボタンを押すと、下記のような画面が表示されます。

7.ロードバランサを設定する

ロードバランサにするサーバーへ Apache をインストールします。

# yum install -y httpd

Confluence 分散用 の .conf ファイルを作成します。以下の例では、ファイル名は「httpd-proxy.conf」にしています。

# vi /etc/httpd/conf/extra/httpd-proxy.conf

作成した httpd-proxy.conf ファイルに、各ノードの Confluenceの URL を含めた以下の情報を記載します。以下の例では、Confluence のノード1が http://192.168.56.113:8090/wiki ノード2がhttp://192.168.56.114:8090/wiki です。

/etc/httpd/conf/extra/httpd-proxy.conf を編集
<Location /manager>
    SetHandler balancer-manager
    Require all granted
</Location>

# Main Synchrony proxy rule
ProxyPass /synchrony  balancer://synchrony-http/synchrony

# Synchrony HTTP balancer declaration
<Proxy balancer://synchrony-http>
    BalancerMember http://192.168.56.113:8091 route=synnode1
    BalancerMember http://192.168.56.114:8091 route=synnode2

    Require all granted
</Proxy>

# Synchrony WebSocket balancer declaration
<Proxy balancer://synchrony-ws>
    BalancerMember ws://192.168.56.113:8091 route=synnode1
    BalancerMember ws://192.168.56.114:8091 route=synnode2

    Require all granted
</Proxy>

# WebSocket rewrite condition and rules
RewriteEngine     On
RewriteCond       %{REQUEST_URI}       ^/synchrony/(.*)/bayeux-sync1   [NC]
RewriteRule       /(.*)                balancer://synchrony-ws/$1      [P,L]

# Main Confluence balancer
Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
<Proxy "balancer://confluence-cluster">
    BalancerMember http://192.168.56.113:8090/wiki route=1
    BalancerMember http://192.168.56.114:8090/wiki route=2
    ProxySet stickysession=ROUTEID
</Proxy>

# Main Confluence proxy rules
ProxyPass        /wiki balancer://confluence-cluster
ProxyPassReverse /wiki balancer://confluence-cluster


上記の設定を有効にするためと、追加で必要なモジュール  /etc/httpd/conf/httpd.conf を編集します。

 #vi /etc/httpd/conf/httpd.conf 

最後に以下の2行を追加します。

LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
Include conf/extra/httpd-proxy.conf

Apache を起動します。同時に自動起動設定と、Firewall 設定をします。

# systemctl enable httpd
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --reload
# systemctl start httpd

ブラウザで http://<サーバマシンのIPアドレス>/manager へアクセスし、Apache httpd の manager 画面を確認します。 ロードバランサのサーバーの IP アドレスが、「192.168.56.115」の場合は、http://192.168.56.115/manager へアクセスしてください。
ここでノード1とノード2の URL が設定できていることを確認します。

CentOS, Red Hat Enterprise Linux を使用する場合の注意点

CentOS や Red Hat Enterprise Linux 上に構築する場合、SELinux が有効化されていると通信が通りません。Apache HTTPD のログに以下の様にエラーが出力されます。

(13)Permission denied: AH00957: HTTP: attempt to connect to 192.168.56.114:8090 (192.168.56.114) failed

適宜設定を変更してください。

参考資料:How to use Apache as a Load Balancer for Confluence Data Center

7.1 Confluence サーバーの Firewall 設定

Load Balancer から Confluence にアクセスするために、ノード1のサーバーで 以下のfirewall 設定をします。また、クラスタリングのための設定も含んでいます。

(情報) この設定は、後でノード2のサーバーに対しても実施する必要があります。(VMをコピーして ノード2を作成する場合は不要です)

# firewall-cmd --permanent --zon=public --add-port=5801/tcp
# firewall-cmd --permanent --zon=public --add-port=5701/tcp
# firewall-cmd --permanent --zon=public --add-port=25500/tcp
# firewall-cmd --permanent --zon=public --add-port=54327/udp
# firewall-cmd --reload

(情報) 参考資料:アトラシアン アプリケーションで使用されるポート

7.2  ノード1の shared-home を削除する

DBサーバーに shared-home の内容をコピーしたら以前のディレクトリは削除します。ノード1の サーバーで下記の作業を実施します。

# cd /var/atlassian/application-data/confluence
# tar cvf shared-home.tar shared-home/
# gzip shared-home.tar
# mv shared-home.tar.gz /tmp
# rm -rf shared-home

(情報) 上記でできる、/tmp/shared-home.tar.gz は念のためのバックアップなので作業が終了したら、削除しても大丈夫です。

7.3 Confluence のサーバ基本URLの修正

これまで、Confluence に直接 Webブラウザーから 直接アクセスしてきましたが、今後はロードバランサー経由になるため URL が変更されます。これに合わせて、Confluence の設定も変更します。

Confluence を停止します。

# systemctl stop confluence

Confluence の server.xml ファイルを修正します。

# vi /opt/atlassian/confluence/conf/server.xml

<Connector port="8090" というタグを見つけて下記の様に、4行目の最後の /> を消して、1行を追加します。

(情報) この設定は、後でノード2のサーバーに対しても実施する必要があります。(VMをコピーして ノード2を作成する場合は不要です)

修正前修正後
<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
            maxThreads="48" minSpareThreads="10"
            enableLookups="false" acceptCount="10" URIEncoding="UTF-8"
            protocol="org.apache.coyote.http11.Http11NioProtocol"/>

<Connector port="8090" connectionTimeout="20000" redirectPort="8443"
            maxThreads="48" minSpareThreads="10"
            enableLookups="false" acceptCount="10" URIEncoding="UTF-8"
            protocol="org.apache.coyote.http11.Http11NioProtocol"
            scheme="http" proxyName="192.168.56.115" proxyPort="80"/>

修正が終わったら、Confluenceを起動します。

# systemctl start confluence

今回はロードバランサー経由の URL http://<ロードバランサーマシンのIPアドレス>/wiki でアクセスして下さい。Confluence にログインすると、下記のような警告メッセージが表示されますので、「基本 URL をアップデート」リンクをクリックします。


下記の画面が表示されますので、サーバ基本URLをロードバランサー経由の URL (下記は、http://192.168.56.115/wiki ) に変更します。

8.ノード2の作業

8.1.VMをコピーする場合

仮想環境の機能を利用してノード1の VM を複製して、IP アドレスを変更してノード2のサーバーとしてください。 

8.2.VMをコピーしない場合

(情報) 以下の作業はノード1、ノード2 の Confluence が起動している場合は、Confluence サービスを停止してから実施して下さい。

ノード2のサーバーで以下の作業を実施します。

# rsync -auz -e ssh /var/atlassian/application-data/confluence/ 192.168.56.114:/var/atlassian/application-data/confluence


9.ノード2の Confluence を起動/動作確認をする

9.1.Confluence の起動

Confluence のノードは時間をずらして起動する必要があります。まず、ノード1を起動して、Confluence が稼働している事を確認したのちに、ノード2の Confluence を起動します。

2つの Confluence を起動した後、管理画面で「管理」→「クラスタリング」を選択します。下記の様に、ノード1、ノード2が確認できます。

この状態で、ページの閲覧、作成、編集、検索などの Confluence の機能確認を簡単にして下さい。

9.2.ページの作成・検索・閲覧のテスト

2台が稼働している状態で、ノード1の Confluence を停止します。下記の様にクラスタリング画面の表示がノード2のみになります。


この状態で、ページを作成し添付ファイルも保存します。

ノード1の Confluence を起動してから、ノード2の Confluence を停止します。

ノードの起動中・停止中には下記の様な警告が表示される事があります。また、実運用で障害が起きた時も同様に警告が表示されます。

下記の様にノード1のみが稼働している状態になったら、先ほど作成したページを検索します。

インデックス更新の確認のため、Confluence の画面右上の検索ボックスに先ほど作成したページのタイトルを入れて検索します。検索できれば、問題ありません。ノード2の修正がノード1のインデックスに反映されました。

また、上記で検索したページを閲覧、編集できるか確認します。ページを閲覧、編集できればノード1の作業が、ノード2にも引き継がれた事になります。

9.3.共同編集のテスト

(情報) 共同編集を利用しない場合は、このテストは不要です。

Confluenceが2台とも動作している状態で、1つのページに複数のブラウザーまたは端末からアクセスし編集モードにします。お互いの画面に、相手の編集がリアルタイムに表示される事を確認します。


リックソフト株式会社 は、日本でトップレベルのAtlassian Platinum Solution Partnerです。
大規模ユーザーへの対応実績が認められたEnterpriseの認定をうけ、高度なトレーニング要件をクリアし、小規模から大規模のお客様まで対応可能な実績を示したパートナー企業です。


Copyright © Ricksoft Co., Ltd. プライバシーポリシー お問い合わせ