監視カメラシステムを構築するOSS「Shinobi」を試した

監視カメラシステムを構築するOSS「Shinobi」を試した
Page content

クラウド型またはオンプレ型の監視カメラシステムを構築する、すなわち、RTSP (Real Time Streaming Protocol) に対応した複数のネットワークカメラの映像をウェブブラウザで確認したり録画を行うためのサーバを構築するオープンソースソフトウェアを試しました。名前は「Shinobi」です (どうしても「忍」を連想します🥷)。Shinobiの公式サイトは次の通り。

以下、何らかのネットワークカメラ (IPカメラ) が1台ある前提で、Shinobi CE (Community Edition) を利用するまでの流れとネットワークカメラの接続方法を簡単にご紹介です。

Shinobi CE (Community Edition) 利用手順

Step-1. サーバ準備とShinobi導入

  1. Shinobi用サーバとしてマシンを1台用意し、OSをインストールして最小限の初期設定を行います。今回は次の環境としました
    • マシン: Proxmox VE上の仮想マシン (CPU: 4core, Memory 8GB, Storage: 64GB)
    • OS: Ubuntu Server 22.04 (Ubuntu以外でも可能です)
    • Ubuntuインストール後にコンソールで次のようにパッケージを更新しておきます
sudo apt update; sudo apt upgrade; sudo apt full-upgrade; sudo apt autoremove
sudo apt install qemu-guest-agent ssh
sudo reboot
  1. 公式ドキュメントに沿って、お手軽な「The Ninja Way」でShinobiをインストールします。いくつか質問が表示されるので回答していくと、5分程度でインストールは完了します。すばらしく簡単です
sudo su
bash <(curl -s https://gitlab.com/Shinobi-Systems/Shinobi-Installer/raw/master/shinobi-install.sh)

Step-2. Shinobiの最初の設定

SuperUserのパスワードを変更

Shinobiでのアカウントの考え方は、1) スーパーユーザ (SuperUser) がグループやグループに所属するアカウントを管理し、2) 各グループにはネットワークカメラや管理者やサブアカウントが属している、という2層の階層構造で成り立っているように思います。ここはまず、SuperUserに関する初期設定を行います。

  1. インストール終了時にURLが表示されていたShinobiのSuperUser用管理画面 http://192.168.1.175:8080/super (IPアドレス部分はご自身の環境に合わせてください) へアクセスし、次の初期アカウント情報を用いてログインします

    項目内容
    EMAILadmin@shinobi.video
    PASSWORDadmin
    (function)SUPERUSER
    (alternateLogin)DEFAULT
  2. メニューの [Preferences] を押し、SuperUserのEmailとPasswordを好みの内容に変更して [Save] を押します

    項目内容
    EMAILsuperadmin (任意のメールアドレスか文字列でも良いようです)
    PASSWORD(任意の文字列)
  3. SuperUserの認証情報はShinobiサーバ上では次のファイルに保存されます

# cat /home/Shinobi/super.json
[
   {
      "mail": "superadmin",
      "pass": "(パスワードのハッシュ文字列)"
   }
]

管理者とグループを追加

  1. ShinobiのSuperUser用管理画面にて [Accounts] を押し、最初の管理者を追加するために [+Add] を押します
  2. 「Add New」の画面に次の内容を入力して [Save] を押します
    項目内容
    Emailanonymous@example.com (実際には自分のメールアドレス)
    Group Key(空欄)
    Password(任意の文字列)
    Password Again(Passwordの文字列)
  1. 画面右側に追加した管理者が表示されます。メールアドレス右側のランダム文字列は自動生成された「Group Key」です

Step-3. ネットワークカメラを接続

  1. URLにsuperを含まない http://192.168.1.175:8080/ に、先程追加した管理者のEmail (例: anonymous@example.com) とPasswordを使ってログインします
  2. ログイン後、ネットワークカメラが未だ追加されていない画面になります。ここで画面上部の [+] を押します
  1. ネットワークカメラのモニターを追加する「Add Monitor」画面が現れます
  2. 「CONNECTION」枠の [Full URL Path] に、ネットワークカメラがRTSP通信するURL (※例: rtsp://192.168.1.196:8554/unicast) を入力し、[Probe] を押します
  3. ネットワークカメラの情報が取得できたことを確認し、[Import] を押します
  1. 「Add Monitor」画面の「IDENTITY」枠の [Mode] を Watch-Only から Record へ変更し、同じく「IDENTITY」枠の [Name] を任意の名前に変更して [Save] を押します
  1. ShinobiからネットワークカメラへのRTSP接続が問題なく確立できると、Shinobiの画面左側にカメラ映像の四角いサムネイルが現れます。そのサムネイルを押すとカメラのモニターが画面右側に追加されます

Step-4. ネットワークカメラの録画状況を確認

Shinobiへ上記手順 (Mode: Record) で接続したネットワークカメラの映像は、デフォルトでは15分ごとに分割された動画としてShinobiサーバに録画保存されます。保存された動画の確認は、たとえばモニター画面にマウスカーソルを載せると下部に表示される9x9の模様のアイコン「Video Grid」を押すか、フィルムのアイコン「Videos List」を押すことで、次のように確認できます。

また、上記のネットワークカメラの動画は、Shinobiサーバのファイルシステム上の /home/Shinobi/videos/[GROUP KEY]/[MONITOR ID]/ に保存されます。

mah@shinobi-test:/home/Shinobi/videos/zHyMd7P3dw$ ls -alh ./zyDPJkFavv/ | head
total 3.3G
drwxr-xr-x 2 root root 4.0K May 23 15:30 .
drwxr-xr-x 3 root root 4.0K May 23 15:33 ..
-rwxrwxrwx 1 root root  47M May 23 07:30 2022-05-23T07-23-10.mp4
-rwxrwxrwx 1 root root 104M May 23 07:45 2022-05-23T07-30-00.mp4
-rwxrwxrwx 1 root root 104M May 23 08:00 2022-05-23T07-45-00.mp4
-rwxrwxrwx 1 root root 104M May 23 08:15 2022-05-23T08-00-00.mp4
-rwxrwxrwx 1 root root 104M May 23 08:30 2022-05-23T08-15-00.mp4
-rwxrwxrwx 1 root root 104M May 23 08:45 2022-05-23T08-30-00.mp4
-rwxrwxrwx 1 root root 104M May 23 09:00 2022-05-23T08-45-00.mp4

Step-5. Shinobiの更新手順

Shinobiの更新は、公式ドキュメントに掲載されている手順を次のようにroot権限で実行すると可能でした。

sudo su
cd /home/Shinobi
sh UPDATE.sh
pm2 flush
pm2 restart camera
pm2 restart cron

まとめ: 導入は簡単かつ一級品の感触

Shinobiの導入はとても簡単で驚くほど。しかも複数グループ対応・複数ネットワークカメラ対応で、どうやらAPIが使えたり動体検知もできるようで超多機能です。監視カメラシステムを構築するソフトウェアとして即活用できる一級品だと実感しました。Shinobiの詳細を知って評価するためには、実際にサーバを構築し、ONVIF対応業務用ネットワークカメラもできれば用意して、公式ドキュメントConfigureObject Detectionなどを参照しながら色々試していくのがよいと思います。なお、本番環境での利用は状況によって下記のShinobi Proのサブスクリプションが必要になります。

また、Shinobiを実際に“クラウド型監視カメラシステム”とするためには、クラウドに設置したShinobiと各拠点の監視カメラを通信させる必要が出てきます。これは一般的なVPNやたとえばTailscaleを活用すれば可能です。クラウドサービスへの課金の面では、Shinobiが使用するストレージ領域や映像転送に必要なネットワーク帯域をあらかじめ見積もっておいたほうが安心です。

最後にShinobiの機能紹介用画像の余りを貼っておきます。管理者としてログインしているときのメニューの一部と、そこから呼び出せる機能の1つ「ONVIF Scanner」の画面キャプチャです。

参考リンク