ノードがクラスタに再ジョインしたときに Confluence Data Center でクラスタ パニックがトリガーされる

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

プラットフォームについて: Data Center - この記事は、Data Center プラットフォームのアトラシアン製品に適用されます。

このナレッジベース記事は製品の Data Center バージョン用に作成されています。Data Center 固有ではない機能の Data Center ナレッジベースは、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。

*Fisheye および Crucible は除く

問題

ノードがクラスタに再ジョインしたときに Confluence Data Center でクラスタ パニックがトリガーされる。atlassian-confluence.log には、Hazelcast が強制終了されている旨の警告のみが書き込まれている。

次のようなアクションが行われる。

  • すべてのクラスタ ノードが 1 つのクラスタ内に正常に存在する (例: ノード 1、2、および 3)
  • 1 つのノードがシャットダウンによってクラスタから外される (例: ノード 3)
  • これにより、ノード 1 と 2 がクラスタに残される。ノード 3 が開始されてクラスタにジョインすると、ノード 1 と 2 がパニック モードになる
  • 一部またはすべてのノードで Hazelcast が終了される

atlassian-confluence.log: には次のようなログが表示される。

2021-01-27 22:08:43,894 WARN [hz.ShutdownThread] [com.hazelcast.instance.Node] log [xxx.xxx.xxx.xxx]:5801 [confluenceCluster] [3.8.6] Terminating forcefully...

原因

ノードがマルチキャストで継続的に通信するうえで、問題が発生しています。Omping などのネットワーク通信ツールでは、ノードがクラスタ内にいる間は通信エラーは表示されませんが、いずれかのノードで Hazelcast が終了されると通信がダウンします。 

回避策

Confluence Data Center バージョン 5.9 以降での回避策は、マルチキャストからユニキャストに移行することです。

  • On this page:

    Confluence Data Center を初めてセットアップする場合、ガイドに従い、検出モードの選択やクラスタ ノードの追加のプロセスを順に進めていくことができます。クラスタでのノード検出を変更する場合、各クラスタ ノードのローカル ホーム ディレクトリ内の confluence.cfg.xml ファイルを編集することが必要になります。

    • 変更を行う前に、クラスタ内のすべてのノードをシャットダウンしてください。
    • 各ノードで検出設定が完全に同一である (各ローカル ホーム ディレクトリ内の  confluence.cfg.xml  ファイルに加えた変更が同じ内容である) ことを確認します。
    • これらのファイルを手動で編集する前には必ずバックアップを作成してください。

    Confluence Data Center の古いバージョンからアップグレードしたか、バージョン 5.9 で使用を開始したかによって、必要な変更はいくらか異なります。以下に、両方の変更方法の詳細を説明します。

    マルチキャストから TCP/IP に変更するには

    confluence.cfg.xml ファイルから、以下の 2 行を探します。

    <property name="confluence.cluster.address">[multicast IP]</property>
    <property name="confluence.cluster.join.type">multicast</property>

    ファイル内に両方の行が存在する場合、次のように変更します。confluence.cluster.address プロパティは存在するが、confluence.cluster.join.type プロパティへの参照がない場合、1 つめの行を更新し、以下のように 2 行目を追加します。

    <property name="confluence.cluster.peers">[node 1 IP],[node 2 IP],[node 3 IP]</property> <!-- A comma-separated list of node IP addresses, without spaces -->
    <property name="confluence.cluster.join.type">tcp_ip</property> <!-- accepted values are multicast or tcp_ip -->

    各ノードのアドレスを入力し、各アドレスをカンマで区切ります。IP アドレスの周囲から括弧が削除されていることを確認します。

    これで、クラスタ ノードを再起動できます。

    マルチキャストから AWS に変更する方法

    confluence.cfg.xml ファイルから以下の 2 行を探し、削除します。

    <property name="confluence.cluster.address">[multicast IP]</property>
    <property name="confluence.cluster.join.type">multicast</property>


    Confluence に渡す資格情報の種類に応じて、AWS 構成の次の 2 つのブロックのいずれかを追加します。 

    オプション 1: アクセス キー/秘密キー ベースの資格情報の場合

    <property name="confluence.cluster.join.type">aws</property>
    <property name="confluence.cluster.aws.host.header">[---VALUE---]</property>
    <property name="confluence.cluster.aws.region">[---VALUE---]</property>
    <property name="confluence.cluster.aws.tag.key">[---VALUE---]</property>
    <property name="confluence.cluster.aws.tag.value">[---VALUE---]</property>
    <property name="confluence.cluster.aws.access.key">[---VALUE---]</property>
    <property name="confluence.cluster.aws.secret.key">[---VALUE---]</property>

    オプション 2: IAM ロール ベースの資格情報の場合

    <property name="confluence.cluster.join.type">aws</property>
    <property name="confluence.cluster.aws.host.header">[---VALUE---]</property>
    <property name="confluence.cluster.aws.region">[---VALUE---]</property>
    <property name="confluence.cluster.aws.tag.key">[---VALUE---]</property>
    <property name="confluence.cluster.aws.tag.value">[---VALUE---]</property>
    <property name="confluence.cluster.aws.iam.role">[---VALUE---]</property>

    TCP/IP から AWS に変更する方法

    confluence.cfg.xml ファイルから以下の 2 行を探し、削除します。

    <property name="confluence.cluster.join.type">tcp_ip</property>
    <property name="confluence.cluster.peers">[node 1 IP],[node 2 IP],[node 3 IP]</property>

    Confluence に渡す資格情報の種類に応じて、AWS 構成を使用して以下の 2 つのブロックのいずれかを追加します。 

    オプション 1: アクセス キー/秘密キー ベースの資格情報の場合

    <property name="confluence.cluster.join.type">aws</property>
    <property name="confluence.cluster.aws.host.header">[---VALUE---]</property>
    <property name="confluence.cluster.aws.region">[---VALUE---]</property>
    <property name="confluence.cluster.aws.tag.key">[---VALUE---]</property>
    <property name="confluence.cluster.aws.tag.value">[---VALUE---]</property>
    <property name="confluence.cluster.aws.access.key">[---VALUE---]</property>
    <property name="confluence.cluster.aws.secret.key">[---VALUE---]</property>

    オプション 2: IAM ロール ベースの資格情報の場合

    <property name="confluence.cluster.join.type">aws</property>
    <property name="confluence.cluster.aws.host.header">[---VALUE---]</property>
    <property name="confluence.cluster.aws.region">[---VALUE---]</property>
    <property name="confluence.cluster.aws.tag.key">[---VALUE---]</property>
    <property name="confluence.cluster.aws.tag.value">[---VALUE---]</property>
    <property name="confluence.cluster.aws.iam.role">[---VALUE---]</property>

    これで、クラスタ ノードを再起動できます。

    CloudFormation YAML テンプレートを使用している場合、AWS 側にも反映させるため、少なくとも適切な値を設定している必要があります。AWS モードのクラスタ タイプに切り替える場合、「Confluence Data Center を AWS で実行する」を確認し、YAML で次のセットアップを行うようにします。

    Key: Cluster
    Value: !Ref AWS::StackName
    PropagateAtLaunch: true

    TCP/IP からマルチキャストに変更するには

    TCP/IP からマルチキャストに切り替えるには、上記でおおまかに説明した変更の逆を実行します。

    confluence.cfg.xml ファイルのプロパティのリファレンス

    鍵 (キー)有効な値注意

    confluence.cluster.join.type

    'multicast' 'tcp_ip'、または 'aws'

    5.9 より前の Data Center インストールにはこのキーがありません。キーがない場合、Confluence は既定で multicast を選択します。
    confluence.cluster.address
    単一のマルチキャスト IP アドレスconfluence.cluster.join.type が multicast  に設定されている場合にのみ、Confluence はこのキーを使用します。
    confluence.cluster.peers
    IP アドレスのカンマ区切りの文字列(スペースなし)

    ここには 1 つ以上のアドレスが必要です。アドレスは、クラスタの各ノードの IP アドレスです。例:
    <property name="confluence.cluster.peers">[node 1 IP],[node 2 IP],[node 3 IP]</property> 

    confluence.cluster.join.type が tcp_ip
     に設定されている場合にのみ、Confluence はこのキーを使用します。

    confluence.cluster.authentication.enabledtrue、falseConfluence ノードがクラスターに参加するときに認証しない場合は、このプロパティを false に設定します。これは非推奨です。
    confluence.cluster.authentication.secret(自動生成)。このプロパティを設定して、ノードがクラスターに参加するときにノードを認証するために使用される共有シークレットを変更します。シークレットは最大 40 字の文字列にする必要があります。 




Confluence Data Center versions prior to 5.9 do not have the option to use unicast, so the workaround is not applicable.  However, a similar issue has been addressed for versions 5.8.5 and above: CONFSERVER-39396 - Node rejoining cluster can cause cluster panic. Configure cluster safety cache to flush value on merge.

最終更新日: 2025 年 1 月 27 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.