Jitsi meet をオンプレサーバにインストールしWeb会議用サーバーを構築する
概要
- 社内のオンプレサーバーにJitsi meet をインストールしクローズドなWeb会議用サーバーを構築しました。以前はhidden in を使えるようにしたのですが、画面共有もできるようにということでjitsi meet に白羽の屋が立ちました。
要件
- 社内ネットワーク内に立てたい
- iOS やAndrdoid 端末 からも使いたい
環境
- OS:ubuntu 16.04
- 関連するミドルウェア- Webサーバー:NginX
- DNSサーバー:dnsmasq
 
やったこと(概要)
- ホスト名を決定する & SSL証明書の準備
- jitsi-meet インストール & 起動
- DNSの設定- 固定IP設定する
- dnsmasqの設定
- 関係端末のプライマリDNSをこのサーバーに変更する
 
- クライアント端末のCPU負荷を下げるためのあれこれ
やったこと(詳細)
ホスト名を決定する & SSL証明書の準備
- IPアドレスを指定しての接続はできませんでした。ブラウザでトップ画面の選択はできるのですが、アプリ起動後に「あなたは切断されました。」のメッセージが表示され通話は始まりません。(おそらくSSL証明書にオレオレ証明書を使っているからだと思います。)
- オレオレ証明書を各端末にインストールすればいいんでしょうけど、端末数が多いと死にます。証明書インストールの手間を省くため今回は証明書を別途準備しました。準備したSSL証明書は任意の場所に置きます。
jitsi-meet インストール & 起動
下記ページを参考にしました。 hostname とSSL証明書のパスは自分の環境に合わせて変更します。 オープンソースなWeb会議システム Jitsi Meet Server インストール
この時点でIPアドレス指定でPC(Windows/Chrome) から接続できました。 ただしSSL証明書の記載内容とURLが一致しないため証明書エラーは残っています。そのためiPadなどからは利用できません。
DNSの設定
- SSL証明書の記載内容でアクセスできるようにDNSサーバーを構築します。
 (今回は同じサーバーインスタンスに構築)
- はじめBINDで構築しようとしたのですが、やりたいことにはオーバースペック過ぎたのでDnsmasq を使いました。- hosts ファイルに記入するだけで名前解決できるようになるそうです。お手軽。
 
固定IPを指定
基本はこちらを参考にしつつも最終的には /etc/network/interfacesを下記内容に変更しました。
# IPを固定&対象のIPアドレスを指定 iface enp0s3 inet static address 192.168.11.88 netmask 255.255.255.0 # DNSサーバーに自分自身を指定 nameserver 192.168.11.88 8.8.8.8
書き換えたあとは network を再起動
/etc/init.d/network restart # 自分の環境だけかもしれませんが、networkの再起動だけでは反映されなかったのでOSを再起動しました。。 reboot # 変更されたことを確認 ifconfig # 192.168.11.88 が設定されていればOK
dnsmasqの設定
sudo apt install -y dnsmasq # dnsmasq の設定 vim /etc/dnsmasq.conf # ドメイン&IPの設定 vim /etc/hosts # 53番ポートを開放 ufw allow 53 # FWを再起動 systemctl restart ufw # dnsmasq を再起動 systemctl restart dnsmasq # 設定を確認 dig 【対象のドメイン】
/etc/dnsmasq.conf の編集内容
下記2行を末尾に追記
domain-needed bogus-priv
あとは関係端末のDNSサーバーにこのサーバー(192.168.88.33)を指定すればおしまいです。 iPadから ドメイン名指定でJitsi-meet サーバにアクセスし、Web会議ができることを確認しました。
クライアント端末のCPU負荷を下げるためのあれこれ
完了と思いきや、「CPU使用率が高いのでどうにかしてほしい」とのこと。。
下記を試しました。
jitsi-meet の設定変更
下記を参考に設定を変更しました
- High CPU utilization on client end
- [jitsi-dev] How to change resolution and frame rate (FPS) of Jitsi?
vim /usr/share/jitsi-meet/interface_config.js
+ DISABLE_VIDEO_BACKGROUND: true,
vim /etc/jitsi/meet/【設定したホスト名】.js 
# 数字は行数
 76     // Disable measuring of audio levels.
 77     // audioLevelsInterval: 200,
 78     // disableAudioLevels: false,
 79    disableAudioLevels: true,
109     // Sets the preferred resolution (height) for local video. Defaults to 720.
110     resolution: 180,
111 
112     // w3c spec-compliant video constraints to use for video capture. Currently
113     // used by browsers that return true from lib-jitsi-meet's
114     // util#browser#usesNewGumFlow. The constraints are independent from
115     // this config's resolution value. Defaults to requesting an ideal
116     // resolution of 120p.
117     constraints: {
118         video: {
119             height: {
120                ideal: 180,
121                 max: 180,
122                 min: 45
123             }
124         }
125      },
126 
133     // enableLayerSuspension: false,
134     enableLayerSuspension: true,
# サービス再起動
systemctl restart  jitsi-videobridge2クライアント側の変更
クライアント側はChromeを使う&下記設定を行うことで、CPU負荷を下げることができました。 Google Chromeが重くなったら起動プロセス数の制限でメモリの使用量を削減!

 
 
0 件のコメント :
コメントを投稿