次に、Motionとhttpdを稼働・監視するsupervisord.confファイルをホストOS上で作成します。
# pwd /root/supervisord_httpd_motion/ # vi supervisord.conf [supervisord] nodaemon=true [inet_http_server] port = 0.0.0.0:9001 ←クライアントのWebブラウザでSupervisorの管理画面にアクセスする場合に必要 username = admin ←SupervisorのWeb管理画面にログインするためのアカウント password = abcd1234 ←SupervisorのWeb管理用のアカウントのパスワード [program:motion] command=/usr/bin/motion -n ←録画アプリを起動 [program:httpd] command=/usr/sbin/httpd -DFOREGROUND ←Webサーバを起動
Supervisorにおいて、Webブラウザ経由でサービスの監視を行うには、上記の例のように、「[inet_http_server]」の直下にアクセスを許可するネットワークとポート番号(0.0.0.0:9001)、ユーザー名(username =で指定)とパスワード(password =で指定)を記述しています。今回の例ではユーザー名「admin」、パスワード「abcd1234」でHTTPプロトコルを使って、DockerコンテナのIPアドレスに9001番ポートを付与することで、SupervisorのWeb管理画面にアクセスできるようになります。
次に、録画アプリの設定ファイルmotion.confをホストOS上で作成します。設定ファイルは、Motionに付属しているものを入手し、カスタマイズするのがよいでしょう。まずはMotionのRPMパッケージを入手し、ホストOS上に展開します。CentOS 7.xの環境において、RPMパッケージをインストールするのではなく、入手するだけの場合はyumdownloaderコマンドが有用です。yumdownloaderコマンドは、yum-utils RPMパッケージに含まれていますので、インストールされていない場合は、yumコマンドでインストールしておきます。
# yum install -y yum-utils # yum install -y \ http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm # yumdownloader motion # ls Dockerfile motion-3.3.0.trunkREV557-11.el7.nux.x86_64.rpm supervisord.conf
ホストOS上に、「motion-3.3.0.trunkREV557-11.el7.nux.x86_64.rpm」がダウンロードできましたので、rpm2cpioコマンドとcpioコマンドを使えば、RPMパッケージを展開し、中に含まれているファイルを取り出すことができます。以下のように、入手したMotionのRPMパッケージをホストOS上で展開し、RPMパッケージに付属のmotion.confファイルを取り出します。
# pwd /root/supervisord_httpd_motion/ # rpm2cpio motion-3.3.0.trunkREV557-11.el7.nux.x86_64.rpm |cpio -id # cp ./etc/motion/motion.conf .
取り出したmotion.confファイルをカスタマイズします。
# vi motion.conf
設定ファイルmotion.confの中身はDockerと直接関係がありませんので、今回はパラメータの詳しい説明を省きますが、RPMパッケージに付属しているmotion.confファイルにおいて、筆者が変更したパラメータを以下に示しておきます。これ以外のパラメータは、RPMパッケージに付属のmotion.confファイルのものをそのまま使用しました。
パラメータ | 意味 |
---|---|
setup_mode on | onの場合は、Motionが非デーモンモードで起動 |
ffmpeg_timelapse 60 | 60秒ごとに画像フレームを保存した動画を生成 |
sdl_threadnr 0 | SDLウィンドウで表示するMotionのスレッド数(デフォルトは0) |
snapshot_interval 60 | 60秒毎にスナップショットを撮影 |
target_dir /var/www/html/motion | 画像や動画の出力先ディレクトリを/var/www/html/motionに設定 |
stream_quality 100 | 生成されたJPEG画像のクォリティを100%に設定 |
stream_motion on | 動体検出時、stream_maxrateに指定したfps値に変更。通常は1fps |
stream_maxrate 30 | 動体検出時は30fpsに設定 |
stream_localhost off | ストリーム接続をローカルホストのみに制限しない |
webcontrol_localhost off | Web経由によるMotionの設定をローカルホストのみに制限しない |
コンテナが生成する画像・録画データを保管するためのディレクトリ「/var/www/html/motion」をホストOS上に作成しておきます。
# mkdir -p /var/www/html/motion
次回はいよいよ、これまでに用意したDocker環境を使って撮影までのステップを紹介します。
日本ヒューレット・パッカード株式会社 オープンソース・Linuxテクノロジーエバンジェリスト。兵庫県伊丹市出身。1996年頃からオープンソースに携わる。2000年よりUNIXサーバーのSE及びスーパーコンピューターの並列計算プログラミング講師、SIを経験。2006年、米国HPからLinux技術の伝道師として「OpenSource and Linux Ambassador Hall of Fame」を2年連続受賞。プリセールスMVPを4度受賞。現在は日本HPにて、Linux、FreeBSD、Hadoopなどのサーバー基盤のプリセールスSE、文書執筆を担当。Red Hat Certified Virtualization Administrator, Novell Certified Linux Professional, Red Hat Certified System Administrator in Red Hat OpenStack, Cloudera Certified Administrator for Apache Hadoopなどの技術者認定資格を保有。著書に「CentOS 7実践ガイド」「Ubuntu Server実践入門」などがある。趣味はレーシングカートとビリヤード
Copyright © ITmedia, Inc. All Rights Reserved.