Zoneminder – Leistungsstarke Opensource Videoüberwachung

Zoneminder ist eine auf Linux basierende Open Source Videoüberwachungssoftware, mit der diverse Videoquellen wie IP Kameras, USB Kameras, TV Kameras, LAN/WLAN Kameras uvm. Genutzt werden können und auch professionellen Ansprüchen genügt. Die Bedienung der Zoneminder Software erfolgt über eine kommerzielle Android-App oder ein Webinterface und funktioniert, im Falle des Webinterfaces, daher mit allen gängigen Browsern und Endgeräten (Linux, Windows, Mac, Android). Zoneminder verfügt über viele verschiedene Zusatzfunktion wie beispielsweise den automatischen Mail- oder SMS-Versand, softwarebasierten Bewegungsmeldern uvm.


Software – Installation

Bei der Zoneminder Software handelt es sich um eine stark modularisierte Applikation. Neben Video4Linux für die Unterstützung der Kameras und TV-Karten, einem Apache-Webserver sowie MySQL, PHP und Perl müssen auf dem Rechner für die Aufnahme von Stand- und Bewegtbildern die ffmpeg- und Libjpeg-Pakete installiert sein. Erfreulicherweise findet sich Zoneminder inzwischen in den Repositories aller gängigen Linux-Distributionen und deren Derivaten, sodass das Programm ohne aufwendiges manuelles Kompilieren installiert werden kann. Im Zoneminder eigenen Wiki werden die Installationen für versch. Linux Distributionen beschrieben.

Debian 12 (Wenn der Fehler „ERR [Error reconnecting to db: errstr:Access denied for user ‚www-data’@’localhost‘ error val:]“ auftritt sind die Berechtigungen für die Konfigurationsdatei falsch gesetzt => chgrp -c www-data /etc/zm/zm.conf )


Debian 10/11 – Zoneminder 1.36.X aus den Backports

 


Zurück zur Übersicht


Konfiguration – Webinterface

Als erstes empfiehlt es sich ein Passwort für den Admin Nutzer zu setzen:

  • Optionen => System: OPT_USE_AUTH aktivieren
  • Optionen => Benutzer: Admin auswählen und Passwort vergeben

Das  Zoneminder Webinterface unterstützt verschiedene Sprachen, die in den Optionen ausgewählt werden können:

  • Optionen => System => LANG_DEFAULT

Zurück zur Übersicht


Konfiguration – Kameras

Kameras werden durch Klicken auf die „Neuer Monitor“ Schaltfläche in Zoneminder eingebunden. Es gibt zwei grundlegende Möglichkeiten dies zu realisieren:

  • Direkt am Host angeschlossenen Kameras => Allgemeines => Quellentyp => Lokal
  • Über das Netzwerk erreichbare Kameras => Allgemeines => Quellentyp => Remote

Die Konfiguration der Netzwerkadresse, Bildgröße, Farbeinstellungen,  Zugangsdaten und Pfade etc erfolgt unter dem Menüpunkt Quelle:

  • Zugriffsart auf Bildquelle ( http oder Stream ) => Remote Protokol => <HTTP|RTSP>
  • Netzwerkadresse der Kamera => Remote Hostname => <IP|URL>
  • Port der Netzwerkkamera => Remote Hostport => <Port>
  • Pfad der Video-, Bildquelle => <Remote Hostpfad>
  • Benutzte Bildgröße ( Breite ) => Erfassungsbreite => <Pixelanzahl>
  • Benutzte Bildgröße ( Höhe ) => Erfassungsbreite => <Pixelanzahl>
  • Lagenanpassung des Kamerabildes ( Drehen, Spiegeln etc. – 180° Drehung : Invertiert ) => Ausrichtung => <Wert>

Für Lokale am Host angeschlossene Kameras werden andere Angaben benötigt:

  • Anschlusspfad bzw. Gerätedatei der Kamera => Gerätepfad => </dev/video1-x>
  • Verwendetes Linux Videosystem => Erfassungsmethode => VFL2 ( für ältere Systeme VFL1 )
  • Für Quellen mit mehreren Kameraausgaben verwendeter Kanal => Gerätekanal => 0-X ( TV Karten für den Anschluss analoger Kameras )
  • Verwendetes Bildübertragungsformat => Geräteformat => <PAL|NTSC> ( TV Kartenformat für den Anschluss analoger Kameras )
  • Verwendeter Übertragungsmodus der Kamera => Erfassungsfarbpalette => MJPEG ( komprimierte Bildübertragung, muss von Kamera unterstützt werden )
  • Verwendete Farbtiefe => Zielfarbbereich => <24|32Bit> ( 24 Bit sind in der Regel ausreichend und reduzieren den benötigten Speicher )
  • Benutzte Bildgröße ( Breite ) => Erfassungsbreite => <Pixelanzahl>
  • Benutzte Bildgröße ( Höhe ) => Erfassungsbreite => <Pixelanzahl>
  • Lagenanpassung des Kamerabildes ( Drehen, Spiegeln etc. – 180° Drehung : Invertiert ) => Ausrichtung => <Wert>

Zoneminderspezifische Aufzeichnungsoptionen der jeweiligen Kamera werden unter dem Menüpunkt Puffer konfiguriert. Die verschiedenen Optionen bieten Konfigurationsmöglichkeiten für Vor- und Nachlaufbilder von Aufzeichnungen oder  div. Puffereinstellungen. Weitere Konfigurationsmöglichkeiten sind größtenteils selbsterklärend.

Um Optionen bereits konfigurierter Kameras zu ändern, genügt ein Klick auf den Link in der Quellenspalte der Zoneminderübersicht für die entsprechende Kamera.


Zurück zur Übersicht


Konfiguration – Datenspeicher

Die Aufzeichnungen sollten aufgrund des Datenumfangs und der vielen Zugriffe auf das Speichermedium nicht auf chipbasierten Speichermedien, wie SSDs oder Speicherchips erfolgen. Die Speicherpfade können entweder über Symlinks des Hostsystems oder direkt in der Zoneminderkonfiguration  (Optionen => Pfade) geändert werden. Dabei ist zu beachten, dass der Zoneminder Benutzer Vollzugriff auf das entsprechende Verzeichnis benötigt (www-data.www-data). Bei der Nutzung von Netzlaufwerken sollte aufgrund von technisch bedingten Instabilitäten von WLAN Anbindungen sowie Cloudspeichern verzichtet werden. Kabel basierte NAS Systeme haben sich bewährt und bieten bei räumlicher Trennung und korrekter Konfiguration keine Möglichkeit des Zugriffs auf den Datenspeicher, um diesen zu zerstören oder zu manipulieren.

Netzlaufwerke

Die Datenspeicherung auf Netzlaufwerken via sshfs erfordert einige spezielle Parameter. Das Remoteverzeichniss muss als www-data user incl der www-data Gruppe eingehängt werden. Die Ids (i.d.R ID 33) können aus der /etc/passwd und der /etc/groups ausgelesen werden (grep www /etc/passwd /etc/group). Die Option <follow-symlinks> darf nicht gesetzt werden, da Zoneminder selbst mit Symlinks arbeitet. Daraus ergibt sich folgendes Beispiel zum Einhängen eines Remoteverzeichnisses auf den Zoneminderhost:

 


Zurück zur Übersicht


Konfiguration – Alarmzonen (Bewegungssensoren)

Zur Reduzierung des benötigten Datenspeichers ist eine Aufzeichnung, die nur Bewegungen oder Ereignisse in den überwachten Bereichen aufzeichnet, sinnvoll. Der dabei benutzte softwareseitige „Bewegungsmelder“ funktioniert durch den Vergleich zweier oder mehr Bilder anhand von verschiedenen Filtern und Faktoren, die zum Auslösen des Bewegungsalarms und damit zur Aufzeichnung der Kamerabilder führen. Die Konfiguration der Filter bietet eine Vielzahl an Kombinationen, um nur wirklich relevante Ereignisse aufzuzeichnen und Fehlalarme wie z.B. wankende Bäume oder Baumschatten zu unterbinden.

Zeitabhängige Betriebsmodi

Die Erstellung eines Zeitplans, um einzelne Modi, wie z.B. Monitor oder Aufnahme zu aktiveren, erfordert einen Zeitplan für den jeweiligen Betriebszustand. Dabei werden Konfigurationsvorlagen erstellt und diese mittels cronjobs aktiviert bzw. deaktiviert.

  1. crontab -e
  2. 0 7 * * 1-5 /usr/bin/zmpkg.pl day
  3. 0 18 * * 1-5 /usr/bin/zmpkg.pl night
  4. * * * * 0,6 /usr/bin/zmpkg.pl night

Diese Einstellung sagt aus das die Kameras ab Minute 0 Stunde 7 Tag 1-5(Mo-Fr) den Zustand day haben und das ganze ab 18 Uhr auf night geändert wird. Für Samstag und Sonntag ist die ganze Zeit die Aufnahme aktiv.

 


Zurück zur Übersicht


Tipps und Tricks

Konfiguration zurücksetzen

Um die Zoneminder Konfigurationen zurückzusetzen, wird alte Datenbank gelöscht und die default Datenbank erneut importiert:

 


 

Datenbank Logspeicher manuell leeren:

Zoneminder speichert Logeinträge in der Datenbank und Syslog. Folgender Befehl löscht sämtliche Logeinträge in der Datenbank:

 


 

ReoLink IP Kameras konfigurieren

    • Main Stream: rtsp://USER:PASSWORD@IPADDRESS:554/h264Preview_01_main
    • Sub Stream: rtsp://USER:PASSWORD@IPADDRESS:554/h264Preview_01_sub
    • Main Stream: rtmp://IPADDRESS/bcs/channel0_main.bcs?channel=0&stream=0&user=USER&password=PASSWORD
    • Sub Stream: rtmp://IPADDRESS/bcs/channel0_sub.bcs?channel=0&stream=1&user=USER&password=PASSWORD
    • Ext Stream: rtmp://IPADDRESS/bcs/channel0_ext.bcs?channel=0&stream=2&user=USER&password=PASSWORD

URL Beispiele Reolink IP Kameras ( https://camlytics.com/camera/reolink ):

 


 

Storage Pfade ändern

Der voreingestellte Speicherpfad (/var/cache/zoneminder) ist in meisten Fällen auf der gleichen Partition wie das Wurzelverzeichnis (WZV). Um das WZV nicht voll laufen zu lassen, empfiehlt es sich den Speicherpfad zu ändern. In den Zoneminder Einstellungen des Webinterfaces kann zwar ein Pfad hinterlegt werden, jedoch ignoriert Zoneminder alle Eingaben bis auf /var/cache/zoneminder. Remapping mit Hilfe von Symlinks auf ein Alternativverzeichnis ist ohne Weiteres keine dauerhafte Lösung, da Zoneminder Updates den Symlinks wieder durch ein Verzeichnis ersetzen (D10/ZM1.36.33). Folgendes Script prüft auf Symlink oder Verzeichnis und ersetzt das Verzeichnis wieder durch den Symlink. Das Prüfinterval wird via Cronjob festgelegt.

Cronjobeintrag, Intervall eine Minute:

 


 

Manuelle SQL Datenbank Konfiguration für Zoneminder:

Der Benutzer (zmuser) sowie die Datenbank (zm) muss unter Umständen bei der Installation von Zoneminder manuell angelegt werden. Die Grundstruktur der Datenbank muss ebenfalls manuell importiert und in der Datei /etc/zm/zm.conf dementsprechend der Datenbankzugriff konfiguriert werden. Ein MySQL Benutzer (zm) mit der dazugehörigen Datenbank (zm) wird wie folgt angelegt:

oder

 


 

Datenbank manuell anlegen:

Um die Zoneminder Datenbank (/usr/share/zoneminder/db/zm_create.sql) manuell einzurichten, wird ein Zoneminder Benutzer mit entsprechender Datenbank und Zugriffsrechten auf dem SQL Server benötigt. Der Datenbankname (Vorgabe: zm) kann vor dem Import in der o.g. Datenbankdatei (zm_create.sql) geändert werden. Der Datenbankname des SQL Servers muss mit dem in der zm_create.sql Datenbank übereinstimmen.

  1. Datenbank und Benutzer anlegen (Benutzer: zmuser Passwort: zmpass / Datenbankname: zm_database):
  1. Datenbank vorbereiten ( nicht nötig wenn der Datenbankname „zm“ genutzt wird ):
  2. Datenbank in SQL Server laden:
  3. Zoneminder Konfiguration anpassen:

Oben genannte Schritte als Script:

 


 

Alle Aufzeichnungen löschen

Um Aufzeichnungen, im Falle von Dateninkosistenzen ( Daten auf Festplatte oder Datenbank stimmen nicht mehr überein ) aus der Datenbank sowie von der Festplatte manuell zu löschen, kann mittels Zoneminder Webinterface fehlschlagen. In diesem Fall werden Datenbank-, und Pfadoperationen direkt über das Host OS verarbeitet:

Zoneminder – Manuelle Bereinigung von Ereignissen

 


Zurück zur Übersicht


CC_BY_NC_SASpeefak | github.com | wiki.zoneminder.com | www.claudiokuenzler.com


Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Back To Top