Jitsi Meetサーバ運用のポイントメモ1

Jitsi Meetサーバ運用のポイントメモ1
Page content

本記事は、先日の オープンソースなビデオ会議システム「Jitsi Meet」の導入方法 [2020-05-31版] の続編です。Jitsi Meetサーバを実際に数日運用し、行った設定や改善のメモです。

会議室作成者の限定

自前サーバに前回導入ができたビデオ会議システムJitsi Meetでは、個人サーバ管理者として一応、会議室の作成者を限定したいと考えていた。この設定を案内しているページは次の通り。

これらの案内のとおりに設定すると、会議室作成者の限定が行えた。実際には次のような認証画面が設定される。

  1. 好きな名前の会議室 (ミーティングのURL) へ最初にアクセスしたとき、次の「ホストを待っています…」画面が出てくる。[私はホストです] を押す。
  2. 次にIDとパスワードを尋ねる「パスワード required」画面になるので、prosodyctl register で作成したユーザのID・パスワードを入力する。

参加直後のハウリング防止

会議室に参加者が入るとき、音が突如ハウリングする事故がどうしても起こりがちだ。せっかくの自前サーバなので、会議室参加時の初期状態を一律で「音声ミュート」に変更しておき、皆の耳が痛くなるこの種の事故を減らすことにしよう。

Jitsi Meetの会議室に関する設定は、次の設定ファイルmeet.example.com-config.jsに書かれており、サーバから参加者へはURL「https://meet.example.com/config.js」で配信される仕組みだ。「音声ミュート」についてはstartWithAudioMutedtrueへ変更すれば良い。

$ cat /etc/jitsi/meet/meet.example.com-config.js | grep startWithAudioMuted
	startWithAudioMuted: true,

ただし試してみた限りでは、上記の音声ミュート設定が効くのはPCブラウザでの参加者に対してのみで、iOS/AndroidのJitsi Meetアプリでの参加者に対しては、どうも効かないようだった。

メモリ逼迫の対策

定期的なサービス再起動

今回構築したJitsi Meetを、4,5人の間で1日8時間以上繋ぎっぱなしにするビデオ会議に、4日間ほど実際に使ってみたところ、ある時に接続が切れる現象が発生した。

サーバの状態を調べたところ、Jitsi Videobridge (jvb) のJavaプロセスのメモリ利用量が肥大していて、メモリ1GBのサーバの、2GBのSwap領域はほぼ残りがないぐらいだったから、きっとメモリ逼迫だったのでしょう。

このメモリ逼迫への安直な対処として、jitsi-videobridge2サービスを定期的に再起動することにした。次のようなコマンドを、会議室を使っていることがない早朝の時間帯にcronで仕込めば良いと思う。

$ sudo systemctl restart jitsi-videobridge2.service

Swap使用率等の監視

ついでにこの機会に、当該サーバのSwapやメモリの使用率をグラフ化して監視を始めることにした。データ可視化・監視サービスとしては、最近存在を知ったIIJの Machinist を、「フリープラン」で試す。

MachinistへのSwap使用率のデータ送信を、無理矢理にcron内の1行で行うとすると、次のようになる。

MACHINIST_API_KEY=XXXXXXXXXXXXXXXX

*/5 * * * * MACHINIST_VALUE=$(free | sed -n 3p | awk ‘{print $3/$2 * 100}’); MACHINIST_JSON="{"agent": "$(hostname -s)","metrics": [{"name": "Swap Used (Percent)","namespace": "$(uname -s)","data_point": {"value": ${MACHINIST_VALUE}}}]}"; curl -s -X POST -H “Content-Type: application/json” -H “Authorization: Bearer ${MACHINIST_API_KEY}” https://gw.machinist.iij.jp/endpoint -d “${MACHINIST_JSON}”

実際のSwap使用率グラフは次の画像のようになる。通知は、Swap使用率が50%を超えたら来るように設定した。Machinistは、フリープランでも「直近1ヶ月分のデータを保存」とのことでありがたい。比較的長期間のデータが眺められそうだ。