BigBlueButton Greenlightダッシュボードの500内部サーバーエラーを修正する

A は500 Internal Server Errorサーバー側のリクエストが失敗したことを意味しますが、どのコンポーネントが失敗したかは特定されません。BigBlueButton Greenlight ダッシュボードの場合は、まず Greenlight アプリケーションログで失敗したリクエストを探してください。BigBlueButton のトラブルシューティングガイドによると、500 は Greenlight エラーである可能性が最も高いとのことです。例外は役立ちます。ローカルネットワーク上の一部のコンピューターのみがそれを認識しており、ログに「安全でないホスト エラー」が報告されている場合は、ブラウザーのプロキシ設定が関係している可能性があります。

Greenlight v3 は、現在公式に文書化されているリリースであり、以前の v2 とは異なるデプロイメント構成を採用しています。このガイドでは、バージョンを特定し、適切な証拠を収集し、一般的な原因を安全な順序で確認する方法を説明します。Docker ベースの Greenlight デプロイメントを前提としています。サーバー管理者としてコマンドを使用し、インストール環境が異なる場合はコンテナ名とパスを調整してください。

どのコンポーネントが500エラーを返しているかを理解する

Greenlightは、サインイン、会議室の管理、BigBlueButtonミーティングの開始に使用されるWebアプリケーションです。Nginxなどのリバースプロキシがブラウザからのリクエストを受信し、Greenlightに転送します。Greenlightはその後、BigBlueButtonのAPIと通信し、PostgreSQLやRedisなどのサービスを利用します。500エラーは、Greenlight、プロキシ、または依存関係のいずれかで発生する可能性があります。BigBlueButtonメディアサービスを再起動しても、データベースまたはアプリケーションの例外は解決されません。

まず、ダッシュボードを開く、サインインする、会議室リストを読み込む、会議を開始するなど、エラーが発生する操作を記録してください。URLパス、おおよその時刻、すべてのユーザーが影響を受けているかどうか、アップグレード、DNS編集、プロキシ変更、認証情報ローテーションなどの最近の変更点も記録してください。ホームページは読み込まれるものの、いずれかの操作で500エラーが返される場合は、調査対象を絞り込むことができます。

変更を加える前に準備する

  • イメージがbigbluebutton/greenlight:v3v3、v2イメージ、またはカスタムビルドのいずれであるかを確認してください。v3にv2の手順を適用しないでください。
  • 関連するDocker Composeファイルと環境ファイルを編集する前に、安全な場所にコピーを保存してください。これらのファイルには認証情報が含まれています。
  • エラー発生時のタイムスタンプを記録し、その前後の短い期間のログのみを確認してください。ログを共有する前に、パスワード、アクセストークン、APIシークレット、メールアドレス、およびプライベート会議のリンクは削除してください。
  • ダッシュボードを「リセット」するために、データベースボリュームを実行したり、削除したり、Greenlightストレージを削除したりしないでくださいdocker compose down -v。これらの操作を行うと、アカウント、設定、またはアップロードされたアセットが破損する可能性があります。

ステップ1:実行中のコンテナを確認し、例外をキャプチャします。

Dockerホスト上で、Greenlight関連のコンテナとそのイメージおよびステータスを一覧表示します。

sudo docker ps -a --filter name=greenlight \
  --format 'table {{.Names}}\t{{.Image}}\t{{.Status}}'

標準の Greenlight v3 インストールでは、アプリケーションコンテナの名前は通常 ですgreenlight-v3。障害発生時の直前の出力を確認してください。

sudo docker logs --since=15m --tail=200 greenlight-v3

Compose を使用するインストールの場合、Compose ファイルを含むディレクトリからdocker compose psと を実行してください。BigBlueButton のインストールでは、v3 ファイルが の下に保持される場合があります。スタンドアロン インストールでは異なる場合があります。ホストから報告される実際の場所とコンテナ名を使用してください。古い v2 インストールの場合は、マウントされている Rails ログ (通常はGreenlight インストール ディレクトリ内) を確認するか、マウントされていない場合はコンテナ内で を調べてください。docker compose logs --since=15m --tail=200~/greenlight-v3log/production.log/usr/src/app/log/production.log

失敗したリクエストの時点で発生した最初の例外を探してください。最終的な 500 レスポンスだけではありません。データベース接続エラー、Redis エラー、API リクエストの失敗、証明書の検証エラー、Rails 例外は、それぞれ異なる修正方法を示しています。コンテナが終了した場合でも、ログは引き続き利用できる可能性がありますdocker logs。

ステップ2:GreenlightとBigBlueButtonの接続を確認する

ダッシュボードがルームの読み込み中またはミーティングの開始中にエラーを起こした場合は、Greenlight で使用されている BigBlueButton URL と共有シークレットを確認してください。v3 の場合、環境ファイルにはBIGBLUEBUTTON_ENDPOINTとが含まれますBIGBLUEBUTTON_SECRET。エンドポイントは、推測されたホストやブラウザ専用のミーティング URL ではなく、デプロイメントの API URL である必要があります。Scalelite などのロードバランサーを使用している場合は、その設定用に提供されているエンドポイントと認証情報を使用してください。

BigBlueButtonサーバー上で、sudo bbb-conf --secret設定済みのURLとシークレットが表示されます。これらをGreenlightの値と非公開で比較してください。シークレットをチケット、シェルトランスクリプト、または公開チャットに貼り付けないでください。再インストールまたは認証情報の更新後に古いシークレットを使用すると、ダッシュボードコンテナが正常な状態でもAPI呼び出しが失敗する可能性があります。

BigBlueButton ホスト上でも実行してくださいsudo bbb-conf --check。このコマンドは BigBlueButton サービスと一般的な構成上の問題をチェックしますが、Greenlight ログの検査に代わるものではありません。Greenlight が別のスタンドアロン ホスト上にある場合は、このコマンドは BigBlueButton がインストールされている BBB サーバー上で実行してくださいbbb-conf。

ステップ3:データベース、Redis、および最近のアップグレードを確認する

Greenlight v3 のサンプル環境では、データベースとキャッシュの接続が と で定義されていますDATABASE_URL。PostgreSQLREDIS_URLおよび Redis コンテナが実行されていること、およびアプリケーション環境の値が Compose サービス名、ポート、データベース名、認証情報と一致していることを確認してください。正常に動作しているように見える Greenlight コンテナでも、これらの依存関係のいずれかに接続できない場合は 500 エラーが返されることがあります。

エラーがアップグレード後に発生した場合は、デプロイされたイメージタグ、Composeファイル、および環境ファイルを、実行したリリース手順と比較してください。本番環境の診断中は、任意のイメージをプルしたり、データベーススキーマを手動で変更したりしないでください。まずデータベースをバックアップしてから、インストール環境のドキュメントに記載されているGreenlightアップグレードプロセスを使用してください。ディスク容量も確認してください。ボリュームがいっぱいになると、PostgreSQLへの書き込み、ログへの書き込み、またはアセットストレージの更新が妨げられる可能性があります。

ステップ4:プロキシ、ホスト名、およびサブパスの設定を確認する

エラーがパブリックホスト名経由でのみ発生する場合は、ブラウザからリバースプロキシを経由して Greenlight に至るパスを確認してください。プロキシが正しい内部ポートに転送され、期待されるホストおよびプロトコル ヘッダーが保持されていることを確認してください。Nginx を再起動する前にプロキシ設定をテストしsudo nginx -t、対応するタイムスタンプのプロキシ エラー ログを確認してください。

Greenlight v3 は、デフォルトではルート パスで実行されることを想定しています。 などのパスで公開されている場合/gl、そのルールRELATIVE_URL_ROOTとリバース プロキシ ルールが一致している必要があります。公式のインストール ガイドによると、相対 URL ルートの変更にはインストール 手順によるアップグレード/再構成が必要であり、シェル変数を設定するだけでは既存のデプロイメントの不一致は修正されません。不一致はリダイレクトやアセットの破損を引き起こすことが多いですが、プロキシ リクエストの失敗はアプリケーション エラーとして現れる可能性があります。

BigBlueButton では、特定の LAN ケースについて説明しています。プロキシの背後にある一部のコンピュータのみが 500 エラーを受け取り、Greenlight ログにエラーメッセージが含まれている場合はError::Unsafe Host Error、Windows がローカル アドレスまたはイントラネット アドレスに対してプロキシをバイパスするように設定されていることを確認してください。これはクライアントのネットワーク パスの問題であり、ホスト検証をグローバルに無効にする理由にはなりません。

ステップ5:認証情報とメールアドレスの変更点を確認する

サインイン中に 500 エラーが発生した場合は、OpenID Connect の設定、コールバック URL、または ID プロバイダーの最近の変更を確認してください。Greenlight v3 では、外部認証が構成されている場合OPENID_CONNECT_ISSUER、 、OPENID_CONNECT_CLIENT_ID、などの値が使用されますOPENID_CONNECT_REDIRECT。リダイレクト URL が、構成されているサブパスを含めて、公開 Greenlight URL と一致していることを確認し、Greenlight と ID プロバイダーの両方のログでタイムスタンプが同じであることを確認してください。

Greenlightのv3ドキュメントによると、基本的なプラットフォーム機能にはメールが必要です。招待、サインアップ、パスワードリセット、またはその他のメール操作中にダッシュボードが失敗した場合は、SMTP接続と認証情報、TLS設定、およびアプリケーションログを確認してください。SMTPシークレットは非公開にしてください。メール関連の操作のみでエラーが発生する場合は、BigBlueButton APIの認証情報を変更する前に、メール設定を調査する必要があります。

原因を特定してから再起動してください

環境またはプロキシの問題が修正されたら、そのインストール用のComposeファイルを使用して、影響を受けたGreenlightサービスを再起動します。たとえば、v3のインストールディレクトリから次のようにします。

cd ~/greenlight-v3
sudo docker compose ps
sudo docker compose restart greenlight-v3

Compose サービス名はコンテナ名と異なる場合があります。再起動コマンドでサービスが不明と表示される場合は、docker compose config --servicesリストされている Greenlight サービスを調べて再起動するか、デプロイメントのドキュメントに記載されている更新コマンドを使用してください。ログに依存関係の問題が示され、復旧計画がある場合を除き、PostgreSQL の再起動やボリュームの削除は避けてください。

修正内容を確認し、エスカレーションすべきタイミングを把握する

以前失敗した操作をそのまま繰り返し、新しいタイムスタンプでブラウザとGreenlightログの応答を確認してください。ユーザーがダッシュボードを読み込めることを確認し、元の失敗が会議に関連していた場合は、テスト会議を開始してください。テスト会議がbbb-conf --check成功してもアプリケーションが依然として500エラーを返す場合は、Greenlight、その依存関係、またはプロキシに問題がある可能性があります。

問題が解決しない場合は、Greenlightのバージョンまたはイメージタグ、デプロイメントタイプ、影響を受けるURLパス、障害発生時刻、関連する編集済み例外、コンテナステータス、および最近の変更点を提供してください。環境ファイル全体、APIシークレット、データベースパスワード、ユーザーセッションCookie、または編集されていないログは共有しないでください。

500 エラーの公式な解釈についてはBigBlueButton のトラブルシューティング ガイドを、現在の v3 デプロイメント モデルについてはGreenlight v3 のインストールおよび構成に関するドキュメントを参照してください。プロジェクトのGreenlight v3 サンプル環境ファイルには、サポートされている環境変数の一覧が記載されています。Greenlight v2 と v3 は異なるため、デプロイしたバージョンに合ったドキュメントを使用してください。

コメントを残す

Nextcloudの「データベースに一部のインデックスが欠落しています」という警告を修正する

Nextcloudの「データベースに一部のインデックスが欠落しています」という警告を修正する

Nextcloudのデータベースインデックス不足警告を、公式のoccコマンドでクリアします。まずバックアップを作成し、変更内容をプレビューしてから修復を実行し、結果を確認してください。

Element WebでKeycloakを使用してシングルサインオン(SSO)を設定する方法

Element WebでKeycloakを使用してシングルサインオン(SSO)を設定する方法

Element Web 用の Keycloak SSO を設定するには、OIDC を Synapse に接続し、正確なコールバック URL を設定し、ユーザー クレームをマッピングし、ログアウトをテストします。

Zimbraの「LDAPサーバーが応答しません」起動エラーを修正する:実践的な復旧ガイド

Zimbraの「LDAPサーバーが応答しません」起動エラーを修正する:実践的な復旧ガイド

応答しないLDAPサーバーが原因で発生するZimbraの起動失敗を診断および修正する方法を学びましょう。これには、サービスチェック、DNS、ポート、証明書、LDAP URL、および復旧検証が含まれます。

ownCloud Infinite Scale 用の S3 オブジェクトストレージの設定方法

ownCloud Infinite Scale 用の S3 オブジェクトストレージの設定方法

ownCloud Infinite Scale向けに、s3ngドライバ、POSIXメタデータ、バケットポリシー、検証、および安全な本番環境チェックを使用して、S3互換のオブジェクトストレージを設定します。

Zimbraメールキューのバックログを修正する:Postfixを安全にフラッシュし、配信を確認する

Zimbraメールキューのバックログを修正する:Postfixを安全にフラッシュし、配信を確認する

Zimbra Postfixのバックログを検査する方法、延期されたメールと保留されたメールを識別する方法、安全なキューフラッシュを実行する方法、メッセージを削除せずに進捗状況を確認する方法を学びましょう。

Kopano Z-PushをActiveSyncモバイル同期用に設定する方法

Kopano Z-PushをActiveSyncモバイル同期用に設定する方法

Z-PushをKopanoと連携させて、ActiveSyncによるメール、連絡先、カレンダー、タスクの安全な同期を設定しましょう。バックエンドと展開方法を比較検討し、モバイル端末の設定を確認してください。

Jitsi Meetで「接続が切断されました」というエラーメッセージが表示される問題を修正する

Jitsi Meetで「接続が切断されました」というエラーメッセージが表示される問題を修正する

Jitsi Meetの接続切断に関するトラブルシューティングを、ブラウザ、モバイルデバイス、不安定なネットワーク、ファイアウォール、およびセルフホスト型サーバー向けの実用的なチェックリストで解説します。

Nextcloud Talkのビデオ通話品質とTURNサーバー接続を修正する

Nextcloud Talkのビデオ通話品質とTURNサーバー接続を修正する

Nextcloud Talkの通話品質のトラブルシューティング、coturnの設定、適切なポートの開放、ICE候補のテスト、TURNまたはHPBのどちらが適切な解決策であるかの判断を行います。

Nginxでカスタム要素Webクライアントをホストする方法

Nginxでカスタム要素Webクライアントをホストする方法

カスタムホームサーバー、HTTPS、キャッシュ、セキュリティヘッダーに加え、一般的なセットアップ上の問題に対する簡単なチェック機能を備えたElement WebをNginxにデプロイします。

BigBlueButtonプレゼンテーションアップロードエラー「サポートされていないファイルタイプ」を修正する

BigBlueButtonプレゼンテーションアップロードエラー「サポートされていないファイルタイプ」を修正する

BigBlueButtonの「サポートされていないファイル形式」表示エラーを修正するには、ファイル拡張子を確認し、実際のP​​DFをエクスポートし、別のファイルをテストし、管理者に連絡すべきタイミングを特定してください。