閉域ネットワークでのWEB会議システム構築!【Ubuntu18.04 Server】で【ApacheOpenMeetings6.2.0】を立てて動かしてみる方法!2021年版

スポンサーリンク
037-PCスマホ等

昨年ですが・・・

コロナ禍でWEB会議等が加速し・・・

インターネット環境が無い職場で、なんとかWEB会議システムをオンプレミスで導入するために・・・

【Ubuntu18.04-Server】+【OpenMeetings-5.0.0】でWEB会議サーバーを立てた訳でありますが・・・

年度が変わり、もしサーバーが壊れた場合に、同様の環境で構築できるのかを再度検証してみました。

Ubuntu20.04.3 Serverでは無理だった

まず、どうせなら・・・

最新のUbuntu Serverで立てようと試みたのですが・・・

必要となるソストウエア【Kurent Media Server】が・・・

【Ubuntu20.04.3】には未対応の様で、インストール時点でコケました。

ということで、従来通り【Ubntu 18.04】でイスントールを検証してみました。

Ubuntu18.04 Serverを立てる

まずは、Ubuntuサーバーを立てる必要がありあす。

これは、ISOイメージがダウンロードできますので、インストールしましょう。

サーバーマシンがベストですが、無ければ、ある程度高性能な(ゲーミングマシン程度)デスクトップPCでもOKだと思います。

管理人の役所には、それすらも余っていませんでしたので、ノートPCで立てました。

スペックは、つぎのとおりです。

  • CPU:Corei7
  • メモリ:8G
  • ストレージ:512GBSSD

最新のUbuntu Serverのダウンロードはこちらから

Ubuntu18.04Serverのダウンロードはこちらから

ダウンロードしたISOイメージをDVDに焼くかブータブルUSBを使ってインストールします。

ブータブルUSBを作るには

ブータルブUSBを作るには【rufus】が便利だと思います。

【rufus】のダウンロードはこちらから

使い方は、非常に簡単です。

赤枠の部分、USBドライブとISOファイルを選択してスタートをクリックすれば、ブータブルUSBが作成されます。

サーバーが立ったらSSHで接続できることを確認する

Ubuntu-Serverが立ったらまずは、SSHで接続できることを確認する。

OpenMeetingsのインストールは、基本的に【CUI】となります。

Windowsの様に【GUI】とはいきませんので、リモートで【SSH】で接続できることが必須となります。

Ubuntu-Serverが立ったらまずは、インストール時に設定したサーバーの【IP-Address】を確認しましょう。

コマンドで次のとおりに入力します。

ip address show

IP-Addressが確認できますので、【SSH】で接続できるか確認します。

管理人は、【ttermpro】を使っています。

まずは最新にアップーデート

【ttermpro】で接続し最新状態にアップデートし再起動します。

sudo apt update

sudo apt -y dist-upgrade

sudo apt -y autoremove

sudo reboot

OpenJava17のインストール

※【OpenJava】については・・・

sudo apt search openjdk-\(\.\)\+-jre$

で最新Ver確認すると・・・

【 openjdk-17-jdk 】まである様ですので・・・

最新バージョンを入れてみます。

sudo apt install openjdk-17-jdk openjdk-17-jdk-headless

バージョンを確認する

sudo java -version
openjdk version "17" 2021-09-14
OpenJDK Runtime Environment (build 17+35-Ubuntu-118.04)
OpenJDK 64-Bit Server VM (build 17+35-Ubuntu-118.04, mixed mode, sharing)

が表示されればOK

他のバージョンのOpenJavaが入っているなら17を選択する。

sudo update-alternatives –config java

LibreOfficeのインストール

sudo apt install libreoffice

ImageMagic・sox,ffmpegと関連ライブラリ等のインストー

sudo apt install -y imagemagick libjpeg62 zlib1g-dev sox ffmpeg vlc

設定ファイルの変更

ここで、次のコマンドで設定ファイルの変更です。



sudo vi /etc/ImageMagick-6/policy.xml

【i】をおして挿入モードにして

下の様に一部をコメントアウトします。

【ESC】ボタンでコマンドモードに戻り

【:wq】で保存して閉じる事ができます。

【:q!】だと、保存せずに閉じます。

<!– disable ghostscript format types –>
<!– <policy domain=”coder” rights=”none” pattern=”PS” /> –>
<policy domain=”coder” rights=”none” pattern=”PS2″ />
<policy domain=”coder” rights=”none” pattern=”PS3″ />
<policy domain=”coder” rights=”none” pattern=”EPS” />
<!– <policy domain=”coder” rights=”none” pattern=”PDF” /> –>
<policy domain=”coder” rights=”none” pattern=”XPS” />
</policymap>

黄色の部分をコメントアウトします。

MariaDBのインストール

sudo apt install mariadb-server

sudo mysql
MariaDB [(none)]>
create database openmeetings default character set 'utf8';

MariaDB [(none)]>
grant all privileges on openmeetings.* to 'openmeetings'@'localhost' identified by 'om_password' with grant option;

MariaDB [(none)]>
quit

※他の方の設定を参考にして
データベース :openmeetings
ユーザー: openmeetings
パスワードはom_password
しました。

Kurento Media Serverのインストール

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 5AFA7A83

次のコマンドを入力してソースファイルを新規作成します。

sudo vi /etc/apt/sources.list.d/kurento-dev.list


【tera term】なら、編集モードに変更後に、コピペができます。

deb [arch=amd64] http://ubuntu.openvidu.io/6.13.0 bionic kms6
deb [arch=amd64] http://mirror.yandex.ru/ubuntu/ bionic main restricted
deb [arch=amd64] http://mirror.yandex.ru/ubuntu/ bionic universe

Kurento Media Serverのインストール

<!-- 不要と思われる**ここから**
sudo apt update
sudo apt-get install kms-pointerdetector
sudo apt-get install kms-chroma
sudo apt-get install kms-crowddetector
sudo apt-get install kms-platedetector
**ここまで** -->
sudo apt update

sudo apt install -y kurento-media-server

次のコマンドで設定ファイルを変更します。


sudo vi /etc/default/kurento-media-server

…
# Service script settings
# =======================

START_DAEMON="true"    # If not "true", the daemon will refuse to load
DAEMON_ARGS=""         # Passed directly to the kurento-media-server executable
#DAEMON_USER="kurento"  # User as whom Kurento Media Server will run
DAEMON_USER="nobody"
DAEMON_LOG_DIR="/var/log/kurento-media-server"  # Where to store daemon logs

サービスの再起動と自動機能を設定します。

sudo systemctl start kurento-media-server

sudo /lib/systemd/systemd-sysv-install enable kurento-media-server
スポンサーリンク

OpenMeetingsのインストール

カレントディレクトリは、最上位のルートディレクトリに移動しておきます。

OpenMeetingsをダウンロードします。

このサイトで最新版を確認できます。

管理人が確認した時点では・・・

【6.2.0】が最新でしたので、この【6.2.0】を入れてみました。

wget https://archive.apache.org/dist/openmeetings/6.2.0/bin/apache-openmeetings-6.2.0.tar.gz

展開して配置する。

tar xzvf apache-openmeetings-6.2.0.tar.gz

mv apache-openmeetings-6.2.0 openmeetings

mkdir -p openmeetings/webapps/openmeetings/data/streams/{1,2,3,4,5,6,7,8,9,10,11,12,13,14}

mkdir -p openmeetings/webapps/openmeetings/data/streams/hibernate

sudo chmod -R 750 openmeetings/webapps/openmeetings/data/streams

sudo chown -R nobody:root openmeetings/

sudo mv openmeetings/ /usr/share/

mysql-connectorをダウンロードして配置する。

wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.20.tar.gz

tar xzvf mysql-connector-java-8.0.20.tar.gz

sudo chown nobody:root mysql-connector-java-8.0.20/mysql-connector-java-8.0.20.jar

sudo mv mysql-connector-java-8.0.20/mysql-connector-java-8.0.20.jar /usr/share/openmeetings/webapps/openmeetings/WEB-INF/lib/

OpenMeetingsの自動起動スクリプトを配置

次のファイルを作成する

/etc/init.d/openmeetings

#!/bin/sh
### BEGIN INIT INFO
# Provides:          Openmeetings
# Required-Start:    mysql apache2 kurento-media-server
# Required-Stop:
# Should-Start:
# Should-Stop:
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Apache Openmeetings Service
# Description:       Openmeetings provides video conferencing, instant messaging,
#                    white board, collaborative document editing and other groupware
#                    tools using API functions of the Red5 Streaming Server for
#                    Remoting and Streaming.
### END INIT INFO

# set the environment
# JAVA_OPTS=""
# CATALINA_OPTS=""
CATALINA_HOME=/usr/share/openmeetings
RUN_USER=nobody

# set TIME OUT values
# TIMELIMIT=10
# SLEEPTIME=40

# Function to wait until all Tomcat processes are killed
waitForTomcatToDie()
{
    PROCESSES=`ps auxwww | grep $HOME | grep 'java' | grep 'tomcat' | grep -v 'grep'`
    while [ ! -z "$PROCESSES" ] && [ $SECONDS -lt $TIMELIMIT ] && [ $TIMELIMIT -ne 0 ]; do
        echo -n "."
        sleep $SLEEPTIME
        PROCESSES=`ps auxwww | grep $USER | grep 'java' | grep 'tomcat' | grep -v 'grep'`
    done
    echo ""
    if [ ! -z "$PROCESSES" ]; then
        PROCESS_ID=`echo $PROCESSES | awk '{ print $2 }'`
        echo "Killing process: $PROCESS_ID"
        kill -9 $PROCESS_ID
    fi
}

# See how we were called.
case "$1" in
    start)
        $CATALINA_HOME/bin/startup.sh -u $RUN_USER -Dcatalina.base$CATALINA_BASE
    ;;
    # debug)
        # DEBUG_PORT=10001
        ## export JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address{DEBUG_PORT},server=y,suspend=n"
        # $CATALINA_HOME/bin/startup.sh -Dcatalina.base{CATALINA_BASE}
        # ;;
    stop)
        # $CATALINA_HOME/bin/shutdown.sh
        $CATALINA_HOME/bin/shutdown.sh
        waitForTomcatToDie
        echo "...Tomcat stopped."
        ;;
    restart)
        $0 stop
        echo "...Restarting..."
        sleep 8
        $0 start
        ;;
    status)
        status $PROG -p $PIDFILE
        RETVAL=$?
        ;;
    *)
        echo $"Usage: $0 {start|stop|restart|status}"
        RETVAL=1
esac

exit $RETVAL

ファイルを有効化する

sudo chmod 755 /etc/init.d/openmeetings

sudo systemctl daemon-reload

sudo /lib/systemd/systemd-sysv-install enable openmeetings

sudo systemctl start openmeetings

タイムアウトの設定

タイムアウトの設定をしておく120分程度が妥当か?

次のファイルを編集しておく

/usr/share/openmeetings/webapps/openmeetings/WEB-INF/web.xml

…
                </web-resource-collection>
                <auth-constraint/>
        </security-constraint>
        <!-- 設定 ここから 120分=2時間-->
        <session-config>
                <session-timeout>
                        120
                </session-timeout>
        </session-config>
        <!-- 設定ここまで -->
</web-app>

OpenMeetingsの初期設定

ブラウザでアクセスしてみる。

https://サーバーのIPアドレス:5443

セキュリティ関連のエラーが表示されますが無視して先に進みます。

初期設定は、下図を参考に進めます。
メールを送信する機能がありますので、利用できるメールサーバーを設定しましょう。

日本語環境にするには

スポンサーリンク

さて、このソフトウエア・・・

設定画面は日本語ですが・・・

あらためてログインすると英語です。

ということで、日本語環境に変更する必要があります。

まず、作成した管理者ユーザーでログインするわけですが・・・

ここからいきなり英語ですので、まず管理者ユーザーの環境を日本語にします。

やり方は、簡単で・・・ユーザー設定の【language】を【japanese】に変更します。

次に、デフォルトの言語設定ですが・・・

コンフィグファイルの【default.lang.id】の値を【15】に変更します。

ここは、イマイチ分かりにくいですので、気を付けたい部分です。

UbuntuServerのIPアドレスの変更方法

ブログランキングにご協力ください!
ブログランキング・にほんブログ村へ

まず、デフォルとの設定ファイルをリネームします。

cd /etc/netplan/

sudo mv 50-cloud-init.yaml 50-cloud-init.yaml.disabled

新たにネットワーク設定ファイルを次のファイル名で作成する

99-network-config.yaml

設定例は次を参考にしてください。


設定にあたっては、スペースの位置が重要のようです。
1行目のネットワークの最後の文字からエンターを押して改行された部分から次の行を順に入力すると良い様です。
改行により自動的にインデントされますが、そのまま入力していってください。
管理人の環境では、インデント位置を変更すると、ネットワークの設定変更で何故かエラーがでました。

network:
  version: 2
  renderer: networkd
  ethernets:
    ens50:
    dhcp4: false
    dhcp6: false
    addresses: [NNN.NNN.NNN.NNN/24]
    gateway4: NNN.NNN.NNN.NNN
    nameservers:
      addresses: [NNN.NNN.NNN.NNN,[NNN.NNN.NNN.NNN]

ネットワーク設定を反映させます。

sudo netplan apply

IPアドレスの変更は【jitsi meet】よりも【open meetings】の方が楽

インストール環境と運う環境が異なり、IPアドレスの変更を必要とする場合は・・・

【jitsi meet】よりも【open meetings】の方が楽ですね。

サーバーのIPアドレスを変更するだけで、そのまま使えます。

また、職場で実際にこのシステムを1年以上運用していますが・・・

結構便利です。

例えば・・・

参加者がカメラとマイクを使えないルームを作って、講義形式で配信するのであれば、100人くらいユーザーが繋がっても問題無く使用できます。

サーバーとネットワーク環境がショボイでの双方向でカメラとマイクを使用できるようにすると・・・

30接続くらいで、サーバーが固まります。

これは、管理人の構築環境が、古いノートPCをサーバーとして再利用していること・・・

職場のNW環境が古く、通信速度が出ていないことが原因と思われます。

あと・・・

ビデオキャプチャーをカメラ代わりに使えば・・・

ZOOMを使ったインターネット上の研修も、インターネット環境の内職場内で【open meetings】を使って視聴することができます。

所要時間

Ubuntu Serverの構築から・・・

open meetingsのインストールから立ち上げ確認までで・・・

今回は時間を計りながらやったのですが・・・

概ね、1時間半くらいでできました。

ただし、【open meetings】は、ユーザーの作成などが別途必要となりますので・・・

そこまで入れると、作成するユーザー数等によって、掛かる時間が変わってきます。

コンフィグファイルばバックアップととれるようですが・・・

サーバーを立て直すと、なぜか上手く持って行けませんでした。

ユーザー数が多くなってくると、再構築がかなり面倒かもしれません。

管理人の職場では・・・

管理者ユーザーを1つ

視聴用ユーザーを何個か

作って、視聴用ユーザーは、共用させています。

ユーザーは、多重ログインでも問題なく使用できる様です。

まとめ

OpenMeetingsはチャット機能・ファイル共有・ホワイトボード機能・画面共有等便利機能が多い。

インストールは少し難しい

管理人が立てたサーバーのスペックの問題かログインするまでに時間が掛かる

ブログ開設に必要なドメイン取得、サーバーレンタル、ASPの登録等は、こちらのサイトから!

コメント

タイトルとURLをコピーしました