BigBlueButtonで自動録画クリーンアップを設定する方法

BigBlueButtonサーバーでは、録画データの保存容量が急速に増加する可能性がありますが、「クリーンアップ」には大きく異なる2つの意味があります。1つは録画公開後に元のデータを削除すること、もう1つは保存期間経過後に公開済みの録画データ自体を削除することです。どちらかを誤ると、ディスク容量を無駄に消費したり、ユーザーが想定するよりも早くコンテンツを削除してしまう可能性があります。

このガイドは、公式ドキュメントで2026年10月時点の最新製品版ブランチとして記載されているBigBlueButton 3.0に焦点を当てています。BigBlueButton 4.0のドキュメントは入手可能ですが、まだ開発中とされています。本番システムでは、bbb-conf --check別のブランチのドキュメントから保持設定をコピーする前に、インストールされているバージョンを確認してください。公式のBigBlueButtonインストールドキュメントを参照してください。

変更を加える前に、クリーンアップポリシーを選択してください。

すべての導入形態に適合する単一の保存期間はありません。大学では学期を通して再生アクセスが必要な場合もあれば、社内研修サーバーでは30日間の録画データのみが必要な場合もあります。重要なのは、生の録画データと公開された再生ファイルとの区別です。

清掃方法の選択節約できるもの主なトレードオフ最適なフィット感
公開後に生データを削除する原料培地および加工材料削除後、元の生データから録音を再構築する能力は失われます。公開再生を維持しつつディスク容量の増加を制御したいサーバー
N日後に録画データをすべて削除する公開された記録データおよび関連する記録データ録音はユーザーが利用できなくなりました30日、60日、90日などの明確なデータ保持ポリシー
アプリケーション制御による削除統合方法によります政策の柔軟性は高まるが、アプリケーションロジックと運用上の複雑さも増す。マルチテナントシステムまたはコースごとの保持ルールを備えたLMSワークフロー

BigBlueButtonの公式カスタマイズガイドによると、処理が失敗した場合に管理者が録画を再構築したり、別の録画フォーマットを追加したり、誤って削除してしまった場合に復旧したりできるように、生データが保持されます。ただし、この利点にはストレージコストがかかります。同じドキュメントには、BigBlueButtonはデフォルトで公開された録画の生データを14日後に削除すると記載されています。詳細は、BigBlueButtonの公式ドキュメントの「サーバーのカスタマイズ」を参照してください。

BigBlueButtonの記録ディスクの使用状況と最近の記録リストを表示するターミナル
保存期間を選択する前に、現在のディスク使用量と最近の録画内容を確認してください。重要な基準は、/var/bigbluebutton の容量がどれくらいの速さで増加しているか、そしてユーザーがまだ必要としている録画内容はどれかということです。

オプション1:公開済みの録音データは残すが、生データは削除する

主な問題がディスク使用量であるものの、ユーザーが再生リンクを必要とする場合は、組み込みの生データ保持設定から始めてください。BigBlueButton の日常メンテナンス スクリプトは にあります/etc/cron.daily/bigbluebutton。ドキュメントに記載されているデフォルト値は次のとおりです。

published_days=14

このスクリプトは、公開された録画データに対して、生の録画データのクリーンアップ機能も呼び出します。この値を大きくするとpublished_days、再構築のための復旧期間が長くなり、小さくすると、ストレージ使用量がより早く削減されます。管理者が録画データの不具合を発見するのに通常時間を要する場合は、30日といった値が妥当でしょう。一方、ストレージ容量が限られており、会議後すぐに公開された出力を確認する場合は、より短い期間の方が適切です。

これは完全なデータ保持ポリシーとは異なります。変更しても、published_days公開された録音データ自体がその日数後に消えるわけではありません。これは、公開後に生データが利用可能な状態を維持する期間を制御するものです。

Nanoエディタで、published_days保持期間を指定したBigBlueButtonのデイリーcronファイルを表示しています。
組み込みの日常メンテナンスファイルには、公開された録音からの生データに使用されるpublished_days設定が含まれています。

オプション2:一定期間より古い録画データをすべて削除する

要件が「録画データは30日後に削除する必要がある」である場合、BigBlueButtonは個別の日次クリーンアップスクリプトを文書化しています。公式の例では/etc/cron.daily/bbb-recording-cleanup、ファイルを作成し、公開されたステータスファイルと生の録画データの経過時間を確認し、bbb-record --delete設定された最大経過時間よりも古い録画データに対してコールバックを実行します。

削除を有効にする前に、候補セットを確認してください。30日間のポリシーの場合、この読み取り専用コマンドを使用すると、どの公開済みプレゼンテーションステータスファイルがしきい値よりも古いかを確認できます。

sudo find /var/bigbluebutton/recording/status/published \
  -type f -name '*-presentation.done' -mtime +30 -print

これはBigBlueButtonのドライランコマンドではなく、単なるファイルシステムの安全性チェックです。自動化されたジョブがデータ削除を開始する前に、ポリシーの誤りを検出するために使用してください。

自動クリーンアップ前の最近のBigBlueButton録画をターミナルに一覧表示
完全保存ポリシーを適用する前に、最近の録音とその日付を確認してください。

クリーンアップスクリプトを作成する

作成します/etc/cron.daily/bbb-recording-cleanup。以下の実装は、BigBlueButtonの公式カスタマイズガイドに記載されているパスと削除方法に従いつつ、保持値とログファイルを簡単に見つけられるようにしています。

#!/bin/bash
set -u

MAXAGE=30
LOGFILE=/var/log/bigbluebutton/bbb-recording-cleanup.log
NOW=$(date +%s)

shopt -s nullglob

for donefile in /var/bigbluebutton/recording/status/published/*-presentation.done; do
    MTIME=$(stat -c %Y "$donefile")
    AGE=$(( (NOW - MTIME) / 86400 ))

    if [ "$AGE" -gt "$MAXAGE" ]; then
        MEETING_ID=$(basename "$donefile")
        MEETING_ID=${MEETING_ID%-presentation.done}
        echo "$(date --rfc-3339=seconds) deleting $MEETING_ID age=${AGE}d" >> "$LOGFILE"
        bbb-record --delete "$MEETING_ID" >> "$LOGFILE" 2>&1
    fi
done

for eventsfile in /var/bigbluebutton/recording/raw/*/events.xml; do
    MTIME=$(stat -c %Y "$eventsfile")
    AGE=$(( (NOW - MTIME) / 86400 ))

    if [ "$AGE" -gt "$MAXAGE" ]; then
        MEETING_ID=${eventsfile%/events.xml}
        MEETING_ID=${MEETING_ID##*/}
        echo "$(date --rfc-3339=seconds) deleting raw $MEETING_ID age=${AGE}d" >> "$LOGFILE"
        bbb-record --delete "$MEETING_ID" >> "$LOGFILE" 2>&1
    fi
done

ポリシーに基づいて設定してくださいMAXAGE。恣意的に低い数値を設定しないでください。たとえば、30日間は90日間よりもストレージ容量は小さくなりますが、復元およびアクセス可能な期間が短くなります。録音データが正式な保存要件の一部である場合は、削除を有効にする前に、データ所有者とポリシーを確認してください。

Nanoエディタに、MAXAGEとbbbレコード削除ロジックを含むBigBlueButtonクリーンアップスクリプトを表示しています。
クリーンアップスクリプトは、公開済みの古い録音を経過時間に基づいて識別し、それらの内部会議IDをbbb-record --deleteに渡すことができます。
Nanoエディタで、BigBlueButtonの毎日の録画クリーンアップスクリプトの別のビューを表示しています。
クリーンアップロジックは、任意のディレクトリを名前で削除するのではなく、BigBlueButtonの記録ステータスと生データのパスに基づいて動作する必要があります。

日々のスクリプトを実行可能にする

sudo chmod +x /etc/cron.daily/bbb-recording-cleanup
sudo ls -l /etc/cron.daily/bbb-recording-cleanup

ファイル名には意図的に拡張子を付けていません。Ubuntuのデイリージョブの仕組みでは、通常 `.` を使用しますがrun-parts、そのファイル名規則によっては、ドットを含むファイル名がスキップされる場合があります。ドキュメントに記載されているファイル名を使用することで、bbb-recording-cleanupこのような不要な混乱を避けることができます。

トレードオフとなる/etc/cron.dailyのは、正確なタイミングよりもシンプルさです。トラフィックの少ない時間帯にクリーンアップを実行する必要がある場合は、ルートのcronエントリまたはsystemdタイマーを使用することで、より厳密なスケジュール設定が可能になりますが、これはBigBlueButtonのドキュメントに記載されているデフォルト設定ではなく、独自のオペレーティングシステムカスタマイズになります。別途追跡およびテストを行ってください。

自動化を信頼する前に、一度手動でクリーンアップを実行してください。

候補ファイルを確認した後、シェルからスクリプトを一度実行してください。

sudo /etc/cron.daily/bbb-recording-cleanup
sudo tail -n 50 /var/log/bigbluebutton/bbb-recording-cleanup.log

BigBlueButtonのドキュメントにbbb-record --delete <internal-meeting-id>は、このコマンドは会議のデータと録画を削除するコマンドとして記載されています。録画に関するドキュメントには、このコマンドが実行中の会議を消去する可能性があることも警告されています。そのため、適切な保持ポリシーでは、アクティブな会議が決して該当しない十分な期間のしきい値を設定し、古い録画アーティファクトから検出されたIDのみを削除します。詳細については、公式の録画および再生に関するドキュメントを参照してください。

ターミナルでBigBlueButtonの毎日の記録クリーンアップスクリプトを実行し、そのログを表示する
自動での日常的な実行に頼る前に、一度手動でクリーンアップジョブを実行し、そのログを確認してください。
クリーンアップログにBigBlueButtonの記録削除が完了したことを示すターミナル
便利なクリーンアップログには、削除された内部会議IDとジョブが完了した日時が記録されます。

クリーンアップが意図したとおりに機能していることを確認してください。

検証は、ユーザーが確認できる録画とディスク使用量の両方を対象とする必要があります。まずは、BigBlueButton独自の録画コマンドから始めましょう。

sudo bbb-record --list-recent
sudo bbb-record --check

bbb-record --list-recent最新の録画10件を表示します。BigBlueButton bbb-record --check2.5以降で録画構成と権限を確認します。どちらのコマンドもストレージ監視に代わるものではないため、録画ツリーも測定してください。

df -h /var/bigbluebutton
sudo du -sh /var/bigbluebutton/recording /var/bigbluebutton/published

再生時に表示されるディスク使用量と全く同じ量だけディスク使用量が減少するとは限りません。生メディア、処理ファイル、公開プレゼンテーションファイル、ログ、一時データはそれぞれ別々に保存されるため、クリーンアップのタイミングはカテゴリによって異なる場合があります。

BigBlueButtonで公開された録画データを表示するbbb-record listコマンドのターミナル画面
クリーンアップ後、bbb-record listingコマンドを使用して、想定どおりの録音データが引き続き利用可能であることを確認してください。

保存期間の選び方

適切なデータ保持期間は、ユーザーの期待、復旧ニーズ、利用可能なストレージ容量という3つの制約によって決まります。保持期間を短くするとストレージへの負荷は軽減されますが、管理者が処理上の不具合を発見したり、録画を再構築したりする時間が短くなります。保持期間を長くすると復旧の柔軟性は高まりますが、より多くのディスク容量が必要となり、データ最小化の要件と矛盾する可能性があります。

  • 再生機能は維持しつつ、生データの保存容量を最小限に抑える:調整を行いpublished_days、公開済みの録音データはそのまま残す。
  • ハード再生期限を強制する:明確に文書化された別の日次クリーンアップスクリプトを使用するMAXAGE。
  • コースごと、または顧客ごとのルールが必要です。録画の保持に関する決定はLMSまたはアプリケーション層に置き、すべての録画にサーバー全体で共通の保持期間を強制するのではなく、BigBlueButtonのAPIを意図的に使用してください。
  • 再構築の柔軟性が必要:生データを最低限よりも長く保持し、バックアップ容量がその選択に見合うようにする。

避けるべきよくある間違い

よくある間違いの1つ目は、published_days公開済みの録画を削除すると想定することです。これは、公開済みの録画に関連付けられた生データのみを管理します。2つ目は、rm -rfBigBlueButtonの録画ディレクトリを主要な保持メカニズムとして使用することです。これは、録画ツールが持つ会議IDの認識を回避し、矛盾した状態を残す可能性があります。

もう一つの間違いは、実際の成長を測定する前に、保持期間を過度に設定してしまうことです。少なくとも数日分のデータduとdfデータをキャプチャし、異常に忙しい週に備えて十分な余裕を持たせた期間を選択してください。BigBlueButtonの運用要件自体が相当量の記録ストレージを必要とすることからもわかるように、クリーンアップはファイルシステムがほぼ満杯になった後の緊急対応ではなく、容量管理として設計されるべきです。

最終チェックリスト

  • インストールされている BigBlueButton のバージョンを で確認してくださいbbb-conf --check。
  • 生データのクリーンアップのみが必要なのか、それとも録画データの有効期限を完全に管理する必要があるのか​​を決定してください。
  • 保存期間を選択する前に、現在のストレージ使用量を測定してください。
  • 削除を有効にする前に、古い録画候補を確認してください。
  • 日々のクリーンアップスクリプトを作成し、実行可能にしてください。
  • 一度手動で実行して、ログを確認してください。
  • bbb-record --list-recent、bbb-record --checkおよびディスク使用量を再確認してください。
  • 再生がどのくらいの期間利用可能かユーザーが把握できるよう、保持ポリシーを文書化してください。

ほとんどのシングルサーバー構成のBigBlueButton 3.0では、メンテナンスの手間を最小限に抑えるには、組み込みのデイリージョブで一定期間後に公開済み録画の生データを削除し、bbb-recording-cleanup公開済み録画の有効期限を設定する必要がある場合のみ、ドキュメントに記載されているデイリースクリプトを追加するのが最善の方法です。これにより、2つの異なるストレージに関する決定事項が分離され、すべての古い録画ファイルを同じように扱うのではなく、トレードオフが明確になります。

コメントを残す

ownCloud oCISでユーザーのストレージクォータを設定する方法

ownCloud oCISでユーザーのストレージクォータを設定する方法

ownCloud Infinite Scaleユーザーの個人スペースのクォータを設定する方法、プロジェクトスペースやグローバル制限と区別する方法、そして役割ごとに新規ユーザーにデフォルト値を割り当てる方法を学びましょう。

BigBlueButton FreeSWITCH SIP登録タイムアウトの修正:実践的な診断ガイド

BigBlueButton FreeSWITCH SIP登録タイムアウトの修正:実践的な診断ガイド

BigBlueButton FreeSWITCHのSIP登録タイムアウトを診断するには、サービスの状態、SIPおよびESLリスナー、NATアドレス、ファイアウォールルール、ログを確認します。

ownCloudモバイルアプリの「接続拒否」エラーを修正する方法

ownCloudモバイルアプリの「接続拒否」エラーを修正する方法

ownCloudモバイルアプリの接続拒否エラーを修正するには、サーバーURL、HTTPSポート、Webサーバー、ファイアウォール、プロキシ、TLS、および信頼済みドメインを確認してください。

自己ホスト型Matrixサーバーでのユーザー登録を制限する方法

自己ホスト型Matrixサーバーでのユーザー登録を制限する方法

Synapse 上で新しい Matrix アカウントを制御する方法を、公開登録の無効化から使用制限付きトークンの発行まで、設定例とチェック項目を含めて比較します。

Fix the ownCloud Blank Page / White Screen of Death: Choose the Right Recovery Path

Fix the ownCloud Blank Page / White Screen of Death: Choose the Right Recovery Path

Fix an ownCloud blank page by separating browser, PHP, app, permissions, upgrade, and proxy failures, then choose the least disruptive recovery path.

Zimbraの「Nginxプロキシサービスが停止しました」エラーを修正する方法

Zimbraの「Nginxプロキシサービスが停止しました」エラーを修正する方法

Zimbraの停止したNGINXプロキシを診断し、適切なログを読み取り、安全に再起動し、設定の欠落、無効なポート、証明書、および上流の障害に対する的を絞った修正を確認します。

メールフローを中断せずにZimbra AmavisがCPUを100%消費する問題を修正する

メールフローを中断せずにZimbra AmavisがCPUを100%消費する問題を修正する

危険な変更を加える前に、キュー、ログ、SpamAssassin、ClamAV、および回復の兆候を確認することで、Zimbra AmavisがCPU使用率100%になっている場合の診断と修復方法を学びましょう。

iPhoneでZimbra ActiveSync接続エラーを修正する

iPhoneでZimbra ActiveSync接続エラーを修正する

アカウントの詳細、認証情報、証明書、ネットワークパス、サーバーポリシーを確認し、安全な代替手段を比較することで、iPhone 上の Zimbra ActiveSync エラーのトラブルシューティングを行います。

ownCloud Infinite ScaleとNextcloud 28の比較:パフォーマンスとRAM使用量について解説

ownCloud Infinite ScaleとNextcloud 28の比較:パフォーマンスとRAM使用量について解説

ownCloud Infinite ScaleとNextcloud 28を、アーキテクチャ、パフォーマンス動作、RAM要件、キャッシング、スケーリング、および実際の導入におけるトレードオフの観点から比較します。

Nextcloudの「トランザクションファイルロックが設定されていません」という問題を修正する

Nextcloudの「トランザクションファイルロックが設定されていません」という問題を修正する

Nextcloudのトランザクションファイルロックに関する警告を修正するには、デプロイメントを確認し、RedisまたはKeyValueCacheを設定し、適切なサービスを再起動し、ファイル操作を検証してください。