Confluence Data Center で Synchrony の状態を確認する方法
プラットフォームについて: Data Center のみ - この記事は、Data Center プラットフォームのアトラシアン製品にのみ適用されます。
この KB は Data Center バージョンの製品用に作成されています。Data Center 固有ではない機能の Data Center KB は、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
目的
この記事では、Confluence Data Center で Synchrony ノードの状態を確認する方法について説明します。Confluence Data Center 6.x では、Synchrony は Confluence とユーザーのブラウザの両方にアクセスできる必要があります。
Synchrony は共同編集を実現するエンジンであり、Confluence Data Center の 1 つ以上のノードで実行できます。
環境
Confluence Data Center 6.0 から 6.11
Synchrony のスタンドアロン クラスタを実行するのを選択した場合は Confluence Data Center 6.12 以降。詳細については「Confluence と Synchrony で利用可能な設定」をご確認ください。
Synchrony が実行されているかどうかを Confluence の WEB UI の外部で確認する方法
Synchrony ノードが応答していて Confluence とご利用の web ブラウザで到達できることを確認するには、複数の項目を確認する必要があります。
ハートビートの確認 - Synchrony ノードへの適切なトラフィック ルーティングを確認
web ブラウザで次のエンドポイントを確認し、Synchrony が応答していることを確認します。
<confluence-base-url-without-context-path>/synchrony/heartbeat
これは Confluence のアプリケーション サーバーでの curl でも確認できます。Confluence がロード バランサ経由で Synchrony クラスタ (または単一ノード) に到達できるのを確認するには、次の手順を実行します。
$ curl <confluence-base-url-without-context-path>/synchrony/heartbeat
期待される応答
OK
OK は、リバース プロキシと他のインフラストラクチャがトラフィックを Synchrony に適切に転送していることを意味します。
その他の応答
404 や 500 などの他の応答や、似た HTTP エラー コードを受け取った場合、共同編集は適切に動作しません。
上述の URL が "ページが見つかりませんでした" の Confluence ページに転送される場合、リバース プロキシに設定ミスがあり、/synchrony/*
トラフィックを Synchrony サーバーの代わりに Confluence の web サーバーに転送しています。
Synchrony プラグインの状態の確認
ここでは、Synchrony Interop Bootstrap Plugin が有効化するかどうかと、Confluence アプリケーションの共同編集機能の状態を確認します。
- まず、ブラウザで次のようにナビゲートします。 > [一般設定]
- websudo 用に管理パスワードを入力する必要があります。これは次のステップで必要です。
次に、アドレス バーを利用し、ブラウザで次の URL に移動します。
<confluence-base-url>/rest/synchrony-interop/status
この REST エンドポイントに curl を送信するには、websudo を一時的に無効化 (非推奨) する必要があります。 > [Confluence管理] > [セキュリティ設定] > [セキュアな管理者セッション] の選択を解除
これは、Confluence 側で共同編集が有効化されているかどうかを確認するために行います。機能が実際に動作しているかや、Synchrony が実行されているかどうかは確認しません。これは次のように JSON 形式の結果を返します。
結果の例
{
"synchronyEnabled": true,
"sharedDraftsEnabled": true
}
True は、Synchrony のプラグインが有効化されていて、Confluence で共同編集機能が有効化していることを意味します。
False は、共同編集機能が無効化されていることを意味します。
ここでは、Synchrony のリモート ノード/プロセスは確認されません。
ここで 404 Page Not Found が返された場合、Synchrony Interop Bootstrap Plugin が無効化されているか、適切に動作していません。「無効化されたシステム プラグインにより、Confluence でページを編集したり共同編集を有効化したりすることができない」
Synchrony サービスの接続性の確認
この確認は、Confluence のプロセスがリモート (またはローカルの) Synchrony プロセスと通信できるかどうかを確認します。
- まず、ブラウザで次のようにナビゲートします。 > [一般設定]
- websudo 用に管理パスワードを入力する必要があります。これは次のステップで必要です。
次に、アドレス バーを利用し、ブラウザで次の URL に移動します。
<confluence-base-url>/rest/synchrony-interop/synchrony-status
この REST エンドポイントに curl を送信するには、websudo を一時的に無効化 (非推奨) する必要があります。 > [Confluence管理] > [セキュリティ設定] > [セキュアな管理者セッション] の選択を解除
結果
このチェックは次の例のように、"running" または "stopped" の状態を返します。
{"status": "stopped"}
{"status":"running"}
Running は、Synchrony が Confluence ノードから到達可能で応答していることを意味します。つまり、Confluence ノードそのものが Synchrony ノードとやり取りできます。
Stopped は問題があることを示します。Synchrony が実行されていないか、Confluence が Synchrony ノードに到達できません。
ここで 404 Page Not Found が返された場合、Synchrony Interop Bootstrap Plugin が無効化されているか、適切に動作していません。「無効化されたシステム プラグインにより、Confluence でページを編集したり共同編集を有効化したりすることができない」
Synchrony の websocket の確認
ユーザーのブラウザから Synchrony に直接接続するために Websocket が必要であり (XHR フォールバックが有効化されている場合を除く)、これによってデータがサーバーからブラウザに "プッシュ" されます。
このテストでは、Synchrony サービスに Websocket コネクションを確立できるかどうかを確認します。
- Synchrony が実行されているノードに SSH 経由で接続します。
- 次のコマンドを実行して、Synchrony プロセス内で Websocket が動作しているかどうかをテストします。
Confluence 6.0 - 6.4:
$ curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Key: 33xyqDvzAXTYgsjjbaYD5A==" --header "Sec-WebSocket-Version: 13" http://SYNCHRONY_SERVER_IP_ADDRESS:8091/synchrony/sockjs/v1/018/u4q4rohu/websocket
Confluence 6.5+:
$ curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Key: 33xyqDvzAXTYgsjjbaYD5A==" --header "Sec-WebSocket-Version: 13" http://SYNCHRONY_SERVER_IP_ADDRESS:8091/synchrony/v1/bayeux-sync1
上記は HTTP である必要があり、 Synchrony DCとしての SYNCHRONY SERVER IP ADDRESS (localhost とは異なる) は Synchrony サーバーの IP アドレスを明示的にバインドする必要があります。
- ここで正常な応答が返された場合、リモートの場所 (ラップトップなど) から同じテストを行い、Synchrony サーバーの IP アドレスの代わりにベース URL を使います。例:
Confluence 6.0 - 6.4:
OS で curl を利用できる場合$ curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Key: 33xyqDvzAXTYgsjjbaYD5A==" --header "Sec-WebSocket-Version: 13" http://<confluence-base-url-without-context-path>/synchrony/sockjs/v1/018/u4q4rohu/websocket
Windows には curl がないため、Windows Powershell で次の一連のコマンドを実行$headers = @{} $headers.Add("Connection","Upgrade") $headers.Add("Upgrade","websocket") $headers.Add("Sec-WebSocket-Key","33xyqDvzAXTYgsjjbaYD5A==") $headers.Add("Sec-WebSocket-Version","13") Invoke-WebRequest -Uri "http://<confluence-base-url-without-context-path>/synchrony/sockjs/v1/018/u4q4rohu/websocket" -UseBasicParsing -Headers $headers
Confluence 6.5+:
OS で curl を利用できる場合$ curl -i -N -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Key: 33xyqDvzAXTYgsjjbaYD5A==" --header "Sec-WebSocket-Version: 13" "http://<confluence-base-url-without-context-path>/synchrony/v1/bayeux-sync1"
Windows には curl がないため、Windows Powershell で次の一連のコマンドを実行$headers = @{} $headers.Add("Connection","Upgrade") $headers.Add("Upgrade","websocket") $headers.Add("Sec-WebSocket-Key","33xyqDvzAXTYgsjjbaYD5A==") $headers.Add("Sec-WebSocket-Version","13") Invoke-WebRequest -Uri "http://<confluence-base-url-without-context-path>/synchrony/v1/bayeux-sync1" -UseBasicParsing -Headers $headers
このステップでは、上記のベース URL を HTTP から HTTPS にします (ロード バランサで HTTPS が使われている場合)
正常な応答
応答で「1.1 101 Switching Protocols」および「Sec-Websocket-Accept」を探します。正常な応答の例です。
HTTP/1.1 101 Switching Protocols
Server: Apache-Coyote/1.1
Upgrade: websocket
Connection: upgrade
Sec-WebSocket-Accept: RV68WHXjNM0H+IFE5/W1ioLmMHI=
?o?a["[39,1,256,20000]"]
StatusCode : 101
StatusDescription : Switching Protocols
Content : {}
RawContent : HTTP/1.1 101 Switching Protocols
Upgrade: websocket
Connection: upgrade
Sec-WebSocket-Accept: RV68WHXjNM0H+IFE5/W1ioLmMHI=
Date: Mon, 20 Nov 2017 20:12:46 GMT
Server: Apache-Coyote/1.1
Headers : {[Upgrade, websocket], [Connection, upgrade], [Sec-WebSocket-Accept, RV68WHXjNM0H+IFE5/W1ioLmMHI=], [Date, Mon, 20 Nov 2017 20:12:46 GMT]...}
RawContentLength : 0
その他の応答
上記のような正常な応答を得られない場合、ユーザーのブラウザから Synchrony への Websocket が動作していない可能性があります。
共同編集は、 Websocket 接続で最適に動作します。 タイムアウトや、Websocket 接続を許可しないプロキシ サーバーまたはファイアウォールによって接続が確立できない場合、エディタは XML HTTP リクエスト (XHR) 経由での接続を試みます。
また、http://websocket.org/echo.html を使用して、エコー サーバーに対する簡易的な HTML 5 WebSocket テストを実行することもできます。