ZoneMinderで防犯カメラ

siteadministrator2020/05/30(土) - 17:31 に投稿

Debian 10 Busterでは、それまでパッケージに含まれていたZoneminderが、パッケージリストから外れた。

Zoneminderのサイトのリポジトリからインストールする場合

vi /etc/apt/sources.list.d//zm.list

deb https://zmrepo.zoneminder.com/debian/release-1.34 buster/

パッケージをインストールする。

apt install apt-transport-https gnupg
wget -O - https://zmrepo.zoneminder.com/debian/archive-keyring.gpg | sudo apt-key add -
apt update;apt upgrade-y;apt install zoneminder

Debianであれば、これだけでZoneminderそのものはスクリプトでセットアップされる。

ただし、MySQL(mariaDB)はローカルに作成される等の環境により、構成の変更が必要な場合には、セットアップ後に再構成を行う必要がある。データベースサーバーが既に存在する場合には、リモートDBを使うのも良いが、カメラ画像の保存装置として考えると、DBサーバーの再起動やメンテナンス時に録画が状態が保証できない等の問題があるため、一つの筐体に全てを収めるオールインワンパッケージの方が楽かもしれない。

セットアップスクリプトでは初期値でApache2でセットアップされる。Nginx等の他のWeb Serverを利用したい場合には、可能であるが、オールインワンパッケージの場合には、こだわりは無駄かも。

動作確認済みカメラは、このサイトに記載されている。ネットワークカメラであれば、ONVIF対応のものが無難のようです。

Debian Package ソースからビルド・インストールする場合

ここを参照のこと

セットアップ

Web GUIで起動・終了をコントロールするために、以下のファイルのUserをwww-dataにする。

vi /etc/systemd/system/multi-user.target.wants/zoneminder.service

# ZoneMinder systemd unit file
# This file is intended to work with Debian distributions

[Unit]
Description=ZoneMinder CCTV recording and surveillance system
After=network.target mysql.service
# Remarked out so that it will start ZM on machines that don't have mysql installed
#Requires=mysql.service

[Service]
User=www-data
Type=forking
ExecStart=/usr/bin/zmpkg.pl start
ExecReload=/usr/bin/zmpkg.pl restart
ExecStop=/usr/bin/zmpkg.pl stop
PIDFile=/run/zm/zm.pid
Restart=always
RestartSec=10
Environment=TZ=:/etc/localtime
TimeoutSec=600

[Install]
WantedBy=multi-user.target

Apache2のモジュールを有効化する。

a2enconf zoneminder sudo a2enmod rewrite

ユーザーをグループに追加する。

adduser www-data video

サービスに登録し、起動する。

systemctl enable zoneminder.service
systemctl start zoneminder 

日本語化

パッケージの設定では、文字コードはShift-JISとなっているが、文字化けがひどいため、UTF-8に変更する。

nkf -wW /usr/share/zoneminder/www/lang/ja_jp.php > /tmp/ja_jp.php
mv /tmp/ja_jp.php /usr/share/zoneminder/www/lang/ja_jp.php
vi /usr/share/zoneminder/www/lang/ja_jp.php

header( "Content-Type: text/html; charset=UTF-8" );

コンソールのOptionから日本語に変更する。

キャッシュフォルダの消去

rm -Rf /var/cache/zoneminder/events/* /var/cache/zoneminder/images/* /var/cache/zoneminder/temp/*

カメラ設定

リモートホストには、以下のフォーマットで入力する。

ユーザー名:パスワード@ホスト名

動作確認はVLC(Video Lan Client)を使用するのが便利です。

※仮想環境を含めて、メモリーが少ないと、接続できるカメラ数に制限がかかります。当方の環境では、Debian 10 Busterの環境で1024MBの割り当てだと扱えるカメラは1〜2台、3076MBだと6台でまだ多少の余裕があります。カメラ性能や解像度でも変化します。

RAMディスク(/dev/shm)が100%となると、ダメなので・・・・。このRAMディスクの利用状況を確認しながらの調整となります。

カメラについて

安価なIPカメラは、全てと言っていいほど中華製ですが、中には怪しい通信を行っているものもあります。中身まで詳細に確認した訳ではありませんが、ファームウェアのアップデートはローカルにダウンロードしてから行えるし、カメラが外向きに通信する必要がないのであれば、遮断した方が安心できます。

当方では、SV3C、Genboltのカメラを使用していますが、カメラ専用のサブネットに閉じ込め、外部との通信は全て遮断しています。設定の後に、TCPDumpやWiresharkでカメラからの通信をしばらく監視してから、怪しい通信があれば、ファイアーウォールで遮断しましょう。時刻合わせは、ルータ等をNTPサーバーにすれば同期可能です。