RaspberryPi mint NVR megoldás
Nemrég az egyik közeli rokonom biztonsági tervet akart telepíteni a házába CCTV megoldással (zárt láncú televízió, más néven videó megfigyelés). Kaptunk néhány árajánlatot, amelyek egyértelműen meghaladták a költségvetésünket (a legalacsonyabb ár 1300€ volt, beleértve 4 kamerát, egy NVR dobozt és a telepítést).
A kihívásom az volt, hogy legalább 2-vel csökkentsem az árat, beleértve a hardvert, a szoftvert és a telepítést. A mögöttes haszon is a felfedezés és a tanulás.
Azzal szeretem kezdeni, hogy először a take aways, így tovább olvashatod a részleteket, ha érdekel.
- Ne használj távoli szervert NVR hardveres megoldásként. Használjon helyette egy helyi hardvert, például a málnaPI-t.
- Így egy könnyű operációs rendszerrel (Raspbian Stretch Lite) ellátott málnaPI-t használnak NVR (hálózati videofelvétel) hardveres megoldásként, mivel a málna rendelkezik H264 hardveres kódolási/dekódolási képességekkel.
- A Shinobi egy nyílt forráskódú CCTV megoldás, amely telepíthető erre a málna PI eszközre, és NVR szoftveres megoldásként használható.
- Vásárolja meg a kamerákat, amelyeknek 2 kötelező követelménye van : IP kompatibilisnek kell lenniük, és meg kell felelniük az ONVIF szabványoknak. A kamerák konfigurálása a CCTV megoldáson belül egy másik blogbejegyzésben lesz tárgyalva.
Szoftver : Nyílt forráskódú Shinobi
A nyílt forráskód nem feltétlenül jelenti azt, hogy ingyenes, de a forráskód megnyitása előnye. És mint szoftverfejlesztő, inkább fizetek egy olyan szoftverért, amibe beleáshatom magam és módosíthatom, mint egy zártért.
Nyomozás után van egy shinobi nevű nyílt forráskódú CCTV megoldás, amit használni fogunk. Ezt nodeJs (javascript szerveroldalon) segítségével fejlesztik. A projekt elég aktív, és 2 verzió van belőle : Community Edition, amely ingyenes és a GPLv3 alatt áll, és egy Pro verzió, amely havi előfizetéses és egy speciális EULA (végfelhasználói licencszerződés) alatt áll. A Pro verzió azonban személyes használatra is használható, ez az én esetem.
Hardver : Kamerák
Van egy csomó kamera, különböző képességekkel és különböző árakkal ! Melyiket vegyük meg és telepítsük ?!!!
Ebben a cikkben nem fogok ajánlani egy adott kamerát, mert ez nem csak a költségvetéstől függ, hanem az igényektől is (éjjellátás, érzékelés, hang, lencse minősége…). De egy dolgot mindenképpen figyelembe kell vennie, amikor megvásárolja a sajátját : a kamerának IP-készüléknek kell lennie, és ONVIF-kompatibilisnek kell lennie.
Az ONVIF egy nyílt ipari fórum, amely szabványosított interfészeket biztosít és támogat az IP-alapú fizikai biztonsági termékek hatékony interoperabilitásához.
Ez azt jelenti, hogy függetlenül a gyártótól, ha a kamera ONVIF-kompatibilis, akkor a nyílt ipari szabványokat valósítja meg. Ez lehetővé teszi, hogy sok eszközt összekapcsoljon egymással, és ami számunkra a legfontosabb, hogy a nyílt forráskódú Shinobi NVR-ünket használhassuk a kameráink felfedezésére és a velük való kommunikációra.
Majd készítek egy másik bejegyzést, amelyben bemutatom, hogyan kell a kamerákat konfigurálni és a Shinobihoz csatlakoztatni. De először is futtassuk a Shinobit, ami ennek a cikknek a célja.
Távoli szerver, mint NVR hardver : rossz megoldás
Kísérletem során először megpróbáltam telepíteni a Shinobit egy távoli szerverre, amely egy Atom N2800 1,86GHz, 4GB RAM, amit NVR hardverként használnék. De ahhoz, hogy csatlakoztassam a kameráimat erre a távoli szerverre, be kellett állítanom a helyi routeremet, hogy a valós idejű streamet a kamerából, de az ONVIF protokoll portját is elcserélje. Emellett hatalmas késleltetés volt a kamera streameléséből a távoli NVR-kiszolgálóra (az internetes feltöltési sávszélességem által korlátozott).
Ezért úgy döntöttem, hogy telepítek egy NVR hardvert, amely a kamerákkal azonos helyi hálózaton van. Az előnyök többszörösek :
- nem nyitja meg a streamet kifelé (ami biztonsági rés lehet).
- zárt hurok a kamerák és a helyi hálózaton lévő NVR hardver között
Lokális szerver mint NVR hardver : jobb megoldás
Távoli NVR szerver: nagyon rossz megoldás. Így esett a választásom egy raspberryPI használatára. Az ára valóban megfizethető a mi felhasználási esetünkhöz (nagyjából 35€) és a hardver képességei több mint elégségesek. A legfontosabb tulajdonsága a H264 hardveres kódolási/dekódolási képessége.
Volt otthon egy raspberryPI-m, ami a 2014-es 1B+ modell. Teszi a dolgát, de ha nincs felszerelve, akkor ajánlom az eddigi legújabb modell (3 B+ modell) beszerzését.
A Shinobi telepítése a málnára
Mielőtt bármilyen szoftvert telepítenénk a málnánkra, telepítenünk kell az operációs rendszert. Esetünkben egy nagyon könnyű Raspbian verziót fogunk használni GUI nélkül
Telepítsük a Raspbiant a PI-re
- Letöltjük a Raspbian Stretch Lite-ot (GUI csomagok nélkül) a számítógépünkre a https://www.raspberrypi.org/downloads/raspbian/
- Ellenőrizzük, hogy a frissen letöltött zip nem sérült
$ shasum -a 256 2018–11–13-raspbian-stretch-lite.zip
- Telepítsük a Raspbian Image-t az SDCard-ra. A kényelem érdekében használhatod az Etcher nevű drag&drop grafikus eszközt : https://www.raspberrypi.org/documentation/installation/installing-images/README.md
- Tedd be az SD kártyát a málna PI-be, dugj be egy billentyűzetet, a HDMI-t & kapcsold be a málnádat.
Logolj be a PI-be
- Login a málnádba. Az alapértelmezett bejelentkezés pi, a jelszó málna.
- Először is változtasd meg a ‘pi’ felhasználó jelszavát biztonsági okokból. Ehhez :
$ passwd
- frissítse a csomagokat a PI-jén, ha szükséges, hogy bármelyiknek a legújabb verziója legyen
$ sudo apt-get update && sudo apt-get upgrade
Enable SSH on your raspberry
Először is ellenőrizze a málnáján, hogy az SSH szolgáltatás fut-e
$ sudo service ssh status
(tipp : az összes szolgáltatást ellenőrizheti az eszközén a következő parancs futtatásával :
$ sudo service --status-all
Ha az ssh aktív, hagyja ki ezt a lépést, ellenkező esetben futtassa a szolgáltatást
$ sudo service ssh start
# A jövőbeni bootoláshoz aktiválnia kell az ssh-t a bootoláskor
* 1. megoldás
$ sudo update-rc.d ssh defaults
$ sudo update-rc.d ssh enable
- 2. megoldás
vagy, A málnát a dedikált eszközzel is beállíthatja :
$ sudo raspi-config
>> Interface Settings
>> SSH
>> ENABLE
Elérni a málnát ssh-vel
Az eszköz helyi hálózatról történő eléréséhez ismernie kell annak helyi IP-címét. Ezt a címet azonban a routered osztja ki, és idővel változhat.
- Ezért vagy statikus IP-t állítasz be a málnaPI-hez a routeur konfigurálásával (statikus helyi IP-t társítva a málnaPI MAC-címéhez).
- Vagy, az itt preferált megoldás : ellenőrizd a málna hostnevét a parancs végrehajtásával
$ hostname
Az én esetemben az eszköz hostneve a raspberrypi. Ezután az ip címének ismerete nélkül is könnyedén ssh-zhatok a pi-re a következő paranccsal :
$ ssh [email protected]
Install Shinobi
Most, hogy az operációs rendszerünk megfelelően be van állítva és ssh-n keresztül hozzáférhetünk az eszközünkhöz, telepítsük a Shinobi-t. A legegyszerűbb, ha a következő parancsot futtatjuk a PI-n (a dokumentációban meghatározottak szerint) :
$ sudo su
$ sh <(curl -s https://gitlab.com/Shinobi-Systems/Shinobi-Installer/raw/master/shinobi-install.sh)
A telepítés interaktív lesz, a következők szerint :
# install location
Install Location for Shinobi
*Note : Default install location is "/home"
Do you want to install a custom location for Shinobi?
(y)es or (N)o? Default : No# shinobi version
Install Shinobi CE or Shinobi Pro?
— — — — — — — — — — — — — — — — — — — — — — -
*Note : Shinobi Pro is free for personal use.
*Learn more at http://shinobi.video/pro
— — — — — — — — — — — — — — — — — — — — — — -
©E or (P)ro? Default : Pro# install branch (master in stable)
Install the Development branch?
(y)es or (N)o? Default : No
N# OS selection
The installer will say that the OS is not detected. Select ubuntu instead.
Shinobi Installer
========
Select your OS
If your OS is not on the list please refer to the docs.
========
1. Ubuntu
2. CentOS
3. MacOS
4. FreeBSD
5. OpenSUSE
========
1# DB : choose MariaDB as RDBMS and choose a root password
Shinobi — Do you want to Install MariaDB? Choose No if you already have it.
(y)es or (N)o
y# install shinobi database
Shinobi — Database Installation
(y)es or (N)o
y# configure Shinobi to start on boot
Shinobi — Start Shinobi and set to start on boot?
(y)es or (N)o
y
# telepítési méret
A teljes raspbian + shinobi (az összes függőséggel együtt) csak kevesebb, mint 2GB helyet foglalt el.
$ df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/root 7.3G 1.8G 5.2G 26% /
Most a telepítés befejeződött !!!
Shinobi backoffice
A telepítés azt mondja, hogy nyisd meg a böngésződet a következő linkkel :
|| Open http://192.168.0.10:8080/super in your web browser.
||===================================
|| Default Superuser : [email protected]
|| Default Password : admin
Mégis jobb, ha a hostnevet használod, hogy megszabadulj a készüléked IP címének bizonytalanságától (ami az újraindítás során változhat)
http://raspberrypi.local:8080/super
# change super user login/pwd
Mihelyt bejelentkeztél a http://raspberrypi.local:8080/super-be, biztonsági okokból változtasd meg a login/pwd-t a ‘Preferences’ fülön.
# add a new user
A super user mellett hozzá kell adnod egy felhasználót a shinobihoz (ez a felhasználó rendelkezhet ugyanazzal az email címmel).
Ez a felhasználó képes lesz bejelentkezni a műszerfalra közvetlenül ezen a linken keresztül a helyi hálózaton
http://raspberrypi.local:8080/
Készen állsz arra, hogy a málnaPi-t a Shinobival helyi NVR megoldásként használd.
Készen állsz arra, hogy a málnaPi-t a Shinobival helyi NVR megoldásként használd.