{"id":4423,"date":"2019-06-16T14:23:17","date_gmt":"2019-06-16T12:23:17","guid":{"rendered":"http:\/\/speefak.spdns.de\/oss_lifestyle\/?p=4423"},"modified":"2026-02-23T15:32:58","modified_gmt":"2026-02-23T14:32:58","slug":"zoneminder-leistungsstarke-opensource-videoueberwachung","status":"publish","type":"post","link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/zoneminder-leistungsstarke-opensource-videoueberwachung\/","title":{"rendered":"Zoneminder: Leistungsstarke Opensource Video\u00fcberwachung"},"content":{"rendered":"<p><a href=\"http:\/\/www.zoneminder.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Zoneminder<\/a> ist eine auf Linux basierende Open Source Video\u00fcberwachungssoftware, mit der diverse Videoquellen wie IP Kameras, USB Kameras, TV Kameras, LAN\/WLAN Kameras uvm. Genutzt werden k\u00f6nnen und auch professionellen Anspr\u00fcchen gen\u00fcgt. Die Bedienung der Zoneminder Software erfolgt \u00fcber eine kommerzielle Android-App oder ein Webinterface und funktioniert, im Falle des Webinterfaces, daher mit allen g\u00e4ngigen Browsern und Endger\u00e4ten (Linux, Windows, Mac, Android). Zoneminder verf\u00fcgt \u00fcber viele verschiedene Zusatzfunktion wie beispielsweise den automatischen Mail- oder SMS-Versand, softwarebasierten Bewegungsmeldern uvm.<a id=\"overview\"><\/a><\/p>\n<ul>\n<li><a href=\"#Konfiguration-Webinterface\">Konfiguration &#8211; Webinterface<\/a><\/li>\n<li><a href=\"#Konfiguration-Kameras\">Konfiguration &#8211; Kameras<\/a><\/li>\n<li><a href=\"#Konfiguration-Datenspeicher\">Konfiguration &#8211; Datenspeicher<\/a><\/li>\n<li><a href=\"#Konfiguration-Alarmzonen\">Konfiguration &#8211; Alarmzonen<\/a> ( Bewegungssensoren )<\/li>\n<li><a href=\"#Tipps-und-Tricks\">Tipps und Tricks<\/a><\/li>\n<li><a href=\"http:\/\/pendelcam.kip.uni-heidelberg.de\/mjpg\/video.mjpg\" target=\"_blank\" rel=\"noopener\">Teststream URL<\/a><\/li>\n<\/ul>\n<hr \/>\n<h2 id=\"Software-Installation\">Software &#8211; Installation<\/h2>\n<p>Bei der Zoneminder Software handelt es sich um eine stark modularisierte Applikation. Neben Video4Linux f\u00fcr die Unterst\u00fctzung der Kameras und TV-Karten, einem Apache-Webserver sowie MySQL, PHP und Perl m\u00fcssen auf dem Rechner f\u00fcr die Aufnahme von Stand- und Bewegtbildern die ffmpeg- und Libjpeg-Pakete installiert sein. Erfreulicherweise findet sich Zoneminder inzwischen in den Repositories aller g\u00e4ngigen Linux-Distributionen und deren Derivaten, sodass das Programm ohne aufwendiges manuelles Kompilieren installiert werden kann. Im Zoneminder eigenen Wiki werden die <a href=\"http:\/\/www.zoneminder.com\/downloads\/\" target=\"_blank\" rel=\"noopener noreferrer\">Installationen<\/a> f\u00fcr versch. Linux Distributionen beschrieben.<\/p>\n<p data-start=\"90\" data-end=\"204\">Die bisherige Methode zum Importieren des Zoneminder-Repository-Schl\u00fcssels ist veraltet. Die neue Syntax lautet:<\/p>\n<pre class=\"lang:default decode:true \">wget -O- https:\/\/zmrepo.zoneminder.com\/debian\/archive-keyring.gpg | sudo gpg --dearmour -o \/etc\/apt\/trusted.gpg.d\/zoneminder.gpg\r\n<\/pre>\n<div class=\"contain-inline-size rounded-md border-[0.5px] border-token-border-medium relative bg-token-sidebar-surface-primary dark:bg-gray-950\"><\/div>\n<p><a href=\"https:\/\/zoneminder.readthedocs.io\/en\/latest\/installationguide\/debian.html\" target=\"_blank\" rel=\"noopener\">Debian 12<\/a> (Wenn der Fehler &#8220;ERR [Error reconnecting to db: errstr:Access denied for user &#8216;www-data&#8217;@&#8217;localhost&#8217; error val:]&#8221; auftritt sind die Berechtigungen f\u00fcr die Konfigurationsdatei falsch gesetzt =&gt; chgrp -c www-data \/etc\/zm\/zm.conf )<\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<p style=\"text-align: center;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/p>\n<hr \/>\n<h2 id=\"Konfiguration-Webinterface\">Konfiguration &#8211; Webinterface<\/h2>\n<p>Als erstes empfiehlt es sich ein Passwort f\u00fcr den Admin Nutzer zu setzen:<\/p>\n<ul>\n<li>Optionen =&gt; System: OPT_USE_AUTH aktivieren<\/li>\n<li>Optionen =&gt; Benutzer: Admin ausw\u00e4hlen und Passwort vergeben<\/li>\n<\/ul>\n<p>Das\u00a0 Zoneminder Webinterface unterst\u00fctzt verschiedene Sprachen, die in den Optionen ausgew\u00e4hlt werden k\u00f6nnen:<\/p>\n<ul>\n<li>Optionen =&gt; System =&gt; LANG_DEFAULT<\/li>\n<\/ul>\n<hr \/>\n<p style=\"text-align: center;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/p>\n<hr \/>\n<h2 id=\"Konfiguration-Kameras\">Konfiguration &#8211; Kameras<\/h2>\n<p>Kameras werden durch Klicken auf die &#8220;Neuer Monitor&#8221; Schaltfl\u00e4che in Zoneminder eingebunden. Es gibt zwei grundlegende M\u00f6glichkeiten dies zu realisieren:<\/p>\n<ul>\n<li>Direkt am Host angeschlossenen Kameras =&gt; Allgemeines =&gt; Quellentyp =&gt; Lokal<\/li>\n<li>\u00dcber das Netzwerk erreichbare Kameras =&gt; Allgemeines =&gt; Quellentyp =&gt; Remote<\/li>\n<\/ul>\n<p>Die Konfiguration der Netzwerkadresse, Bildgr\u00f6\u00dfe, Farbeinstellungen,\u00a0 Zugangsdaten und Pfade etc erfolgt unter dem Men\u00fcpunkt Quelle:<\/p>\n<ul>\n<li>Zugriffsart auf Bildquelle ( http oder Stream ) =&gt; Remote Protokol =&gt; &lt;HTTP|RTSP&gt;<\/li>\n<li>Netzwerkadresse der Kamera =&gt; Remote Hostname =&gt; &lt;IP|URL&gt;<\/li>\n<li>Port der Netzwerkkamera =&gt; Remote Hostport =&gt; &lt;Port&gt;<\/li>\n<li>Pfad der Video-, Bildquelle =&gt; &lt;Remote Hostpfad&gt;<\/li>\n<li>Benutzte Bildgr\u00f6\u00dfe ( Breite ) =&gt; Erfassungsbreite =&gt; &lt;Pixelanzahl&gt;<\/li>\n<li>Benutzte Bildgr\u00f6\u00dfe ( H\u00f6he ) =&gt; Erfassungsbreite =&gt; &lt;Pixelanzahl&gt;<\/li>\n<li>Lagenanpassung des Kamerabildes ( Drehen, Spiegeln etc. &#8211; 180\u00b0 Drehung : Invertiert ) =&gt; Ausrichtung =&gt; &lt;Wert&gt;<\/li>\n<\/ul>\n<p>F\u00fcr Lokale am Host angeschlossene Kameras werden andere Angaben ben\u00f6tigt:<\/p>\n<ul>\n<li>Anschlusspfad bzw. Ger\u00e4tedatei der Kamera =&gt; Ger\u00e4tepfad =&gt; &lt;\/dev\/video1-x&gt;<\/li>\n<li>Verwendetes Linux Videosystem =&gt; Erfassungsmethode =&gt; VFL2 ( f\u00fcr \u00e4ltere Systeme VFL1 )<\/li>\n<li>F\u00fcr Quellen mit mehreren Kameraausgaben verwendeter Kanal =&gt; Ger\u00e4tekanal =&gt; 0-X ( TV Karten f\u00fcr den Anschluss analoger Kameras )<\/li>\n<li>Verwendetes Bild\u00fcbertragungsformat =&gt; Ger\u00e4teformat =&gt; &lt;PAL|NTSC&gt; ( TV Kartenformat f\u00fcr den Anschluss analoger Kameras )<\/li>\n<li>Verwendeter \u00dcbertragungsmodus der Kamera =&gt; Erfassungsfarbpalette =&gt; MJPEG ( komprimierte Bild\u00fcbertragung, muss von Kamera unterst\u00fctzt werden )<\/li>\n<li>Verwendete Farbtiefe =&gt; Zielfarbbereich =&gt; &lt;24|32Bit&gt; ( 24 Bit sind in der Regel ausreichend und reduzieren den ben\u00f6tigten Speicher )<\/li>\n<li>Benutzte Bildgr\u00f6\u00dfe ( Breite ) =&gt; Erfassungsbreite =&gt; &lt;Pixelanzahl&gt;<\/li>\n<li>Benutzte Bildgr\u00f6\u00dfe ( H\u00f6he ) =&gt; Erfassungsbreite =&gt; &lt;Pixelanzahl&gt;<\/li>\n<li>Lagenanpassung des Kamerabildes ( Drehen, Spiegeln etc. &#8211; 180\u00b0 Drehung : Invertiert ) =&gt; Ausrichtung =&gt; &lt;Wert&gt;<\/li>\n<\/ul>\n<p>Zoneminderspezifische Aufzeichnungsoptionen der jeweiligen Kamera werden unter dem Men\u00fcpunkt Puffer konfiguriert. Die verschiedenen Optionen bieten Konfigurationsm\u00f6glichkeiten f\u00fcr Vor- und Nachlaufbilder von Aufzeichnungen oder\u00a0 div. Puffereinstellungen. Weitere Konfigurationsm\u00f6glichkeiten sind gr\u00f6\u00dftenteils selbsterkl\u00e4rend.<\/p>\n<p>Um Optionen bereits konfigurierter Kameras zu \u00e4ndern, gen\u00fcgt ein Klick auf den Link in der Quellenspalte der Zoneminder\u00fcbersicht f\u00fcr die entsprechende Kamera.<\/p>\n<hr \/>\n<p style=\"text-align: center;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/p>\n<hr \/>\n<h2 id=\"Konfiguration-Datenspeicher\">Konfiguration &#8211; Datenspeicher<\/h2>\n<p>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\u00f6nnen entweder \u00fcber Symlinks des Hostsystems oder direkt in der Zoneminderkonfiguration\u00a0 (Optionen =&gt; Pfade) ge\u00e4ndert werden. Dabei ist zu beachten, dass der Zoneminder Benutzer Vollzugriff auf das entsprechende Verzeichnis ben\u00f6tigt (www-data.www-data). Bei der Nutzung von Netzlaufwerken sollte aufgrund von technisch bedingten Instabilit\u00e4ten von WLAN Anbindungen sowie Cloudspeichern verzichtet werden. Kabel basierte NAS Systeme haben sich bew\u00e4hrt und bieten bei r\u00e4umlicher Trennung und korrekter Konfiguration keine M\u00f6glichkeit des Zugriffs auf den Datenspeicher, um diesen zu zerst\u00f6ren oder zu manipulieren.<\/p>\n<p id=\"Netzlaufwerke\">Netzlaufwerke<\/p>\n<p>Die Datenspeicherung auf Netzlaufwerken via sshfs erfordert einige spezielle Parameter. Das Remoteverzeichniss muss als www-data user incl der www-data Gruppe eingeh\u00e4ngt werden. Die Ids (i.d.R ID 33) k\u00f6nnen aus der \/etc\/passwd und der \/etc\/groups ausgelesen werden (grep www \/etc\/passwd \/etc\/group). Die Option &lt;follow-symlinks&gt; darf nicht gesetzt werden, da Zoneminder selbst mit Symlinks arbeitet. Daraus ergibt sich folgendes Beispiel zum Einh\u00e4ngen eines Remoteverzeichnisses auf den Zoneminderhost:<\/p>\n<pre class=\"lang:sh decode:true\">sshfs &lt;user&gt;@&lt;host&gt;:&lt;storage_dir&gt; &lt;mount_point&gt; -o gid=33,uid=33,IdentityFile=\/home\/&lt;user&gt;\/.ssh\/id_rsa,allow_other<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<p style=\"text-align: center;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/p>\n<hr \/>\n<h2 id=\"Konfiguration-Alarmzonen\">Konfiguration &#8211; Alarmzonen (Bewegungssensoren)<\/h2>\n<p>Zur Reduzierung des ben\u00f6tigten Datenspeichers ist eine Aufzeichnung, die nur Bewegungen oder Ereignisse in den \u00fcberwachten Bereichen aufzeichnet, sinnvoll. Der dabei benutzte softwareseitige &#8220;Bewegungsmelder&#8221; funktioniert durch den Vergleich zweier oder mehr Bilder anhand von verschiedenen Filtern und Faktoren, die zum Ausl\u00f6sen des Bewegungsalarms und damit zur Aufzeichnung der Kamerabilder f\u00fchren. Die Konfiguration der Filter bietet eine Vielzahl an Kombinationen, um nur wirklich relevante Ereignisse aufzuzeichnen und Fehlalarme wie z.B. wankende B\u00e4ume oder Baumschatten zu unterbinden.<\/p>\n<p>Zeitabh\u00e4ngige Betriebsmodi<\/p>\n<p>Die Erstellung eines Zeitplans, um einzelne Modi, wie z.B. Monitor oder Aufnahme zu aktiveren, erfordert einen Zeitplan f\u00fcr den jeweiligen Betriebszustand. Dabei werden Konfigurationsvorlagen erstellt und diese mittels cronjobs aktiviert bzw. deaktiviert.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/i1.wp.com\/piprojects.net\/wp-content\/uploads\/2016\/05\/cam3.png?ssl=1\" width=\"619\" height=\"146\" \/><\/p>\n<div class=\"EnlighterJSWrapper enlighterEnlighterJSWrapper\">\n<ol class=\"hoverEnabled enlighterEnlighterJS EnlighterJS\">\n<li class=\" odd\"><span class=\"\">crontab -e<\/span><\/li>\n<li class=\" even\"><span class=\"\">0 7 * * 1-5 \/usr\/bin\/zmpkg.pl day<\/span><\/li>\n<li class=\" odd\"><span class=\"\">0 18 * * 1-5 \/usr\/bin\/zmpkg.pl night<\/span><\/li>\n<li class=\" even\"><span class=\"\">* * * * 0,6 \/usr\/bin\/zmpkg.pl night<\/span><\/li>\n<\/ol>\n<\/div>\n<p>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\u00e4ndert wird. F\u00fcr Samstag und Sonntag ist die ganze Zeit die Aufnahme aktiv.<\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<p style=\"text-align: center;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/p>\n<hr \/>\n<h2 id=\"Tipps-und-Tricks\">Tipps und Tricks<\/h2>\n<p><span style=\"text-decoration: underline;\">Konfiguration zur\u00fccksetzen<\/span><\/p>\n<p>Um die Zoneminder Konfigurationen zur\u00fcckzusetzen, wird alte Datenbank gel\u00f6scht und die default Datenbank erneut importiert:<\/p>\n<pre class=\"lang:default decode:true\"># delete old database\r\nmysql -uroot zm -e \"DROP DATABASE zm\"\r\n# restore install database\r\nmysql -u zm -p&lt;password&gt; zm &lt; \/usr\/share\/zoneminder\/db\/zm_create.sql<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\">Datenbank Logspeicher manuell leeren:<\/span><\/p>\n<p>Zoneminder speichert Logeintr\u00e4ge in der Datenbank und Syslog. Folgender Befehl l\u00f6scht s\u00e4mtliche Logeintr\u00e4ge in der Datenbank:<\/p>\n<pre class=\"lang:default decode:true \">mysql -uroot zm -e \"truncate table Logs\"<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\"><a href=\"https:\/\/wiki.zoneminder.com\/Reolink\" target=\"_blank\" rel=\"noopener\">ReoLink IP Kameras konfigurieren<\/a><\/span><\/p>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Main Stream: rtsp:\/\/USER:PASSWORD@IPADDRESS:554\/h264Preview_01_main<\/li>\n<li>Sub Stream: rtsp:\/\/USER:PASSWORD@IPADDRESS:554\/h264Preview_01_sub<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<ul>\n<li style=\"list-style-type: none;\">\n<ul>\n<li>Main Stream: rtmp:\/\/IPADDRESS\/bcs\/channel0_main.bcs?channel=0&amp;stream=0&amp;user=USER&amp;password=PASSWORD<\/li>\n<li>Sub Stream: rtmp:\/\/IPADDRESS\/bcs\/channel0_sub.bcs?channel=0&amp;stream=1&amp;user=USER&amp;password=PASSWORD<\/li>\n<li>Ext Stream: rtmp:\/\/IPADDRESS\/bcs\/channel0_ext.bcs?channel=0&amp;stream=2&amp;user=USER&amp;password=PASSWORD<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>URL Beispiele Reolink IP Kameras ( https:\/\/camlytics.com\/camera\/reolink ):<\/p>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><span id=\"change_storage_path\" style=\"text-decoration: underline;\">Storage Pfade \u00e4ndern<\/span><\/p>\n<p>Der voreingestellte Speicherpfad (\/var\/cache\/zoneminder) ist in meisten F\u00e4llen auf der gleichen Partition wie das Wurzelverzeichnis (WZV). Um das WZV nicht voll laufen zu lassen, empfiehlt es sich den Speicherpfad zu \u00e4ndern. 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\u00f6sung, da Zoneminder Updates den Symlinks wieder durch ein Verzeichnis ersetzen (D10\/ZM1.36.33). Folgendes Script pr\u00fcft auf Symlink oder Verzeichnis und ersetzt das Verzeichnis wieder durch den Symlink. Das Pr\u00fcfinterval wird via Cronjob festgelegt.<\/p>\n<pre class=\"height-set:true height:200 lang:default decode:true\">#!\/bin\/bash\r\n# name          : zm-storage_check_storage_symlink\r\n# desciption    : replace the default zoneminder storage in \/var\/cache\/zoneminder by a symlink\r\n# autor         : speefak\r\n# licence       : (CC) BY-NC-SA\r\n  VERSION=0.0.5\r\n\r\n#------------------------------------------------------------------------------------------------------------\r\n############################################################################################################\r\n#######################################   define global variables   ########################################\r\n############################################################################################################\r\n#------------------------------------------------------------------------------------------------------------\r\n\r\n SourceDir=\"\/var\/cache\/zoneminder\"\r\n StorageDir=\"\/mnt\/fstab_UUID_System_storage\/zoneminder\/\"\r\n\r\n#------------------------------------------------------------------------------------------------------------\r\n############################################################################################################\r\n###########################################   define functions  ############################################\r\n############################################################################################################\r\n#------------------------------------------------------------------------------------------------------------\r\n\r\n \t# check for root permission\r\n\tif [ \"$(whoami)\" = \"root\" ]; then printf \"\";else printf \"\\n\\nAre You Root ?\\n\\n\";exit 1;fi\r\n\r\n#------------------------------------------------------------------------------------------------------------\r\n############################################################################################################\r\n#############################################   start script   #############################################\r\n############################################################################################################\r\n#------------------------------------------------------------------------------------------------------------\r\n\r\n\r\n\tif   [[ -d $SourceDir ]]; then\r\n\t\tif   [[ -n $(ls -l \"$SourceDir\" 2&gt;\/dev\/null | grep \"^l\") ]]; then\r\n\t\t\tprintf \" existing symlink detected: \/$(ls -l \"$SourceDir\" | cut -d \"\/\" -f2-50) \\n\"\r\n\r\n\t\telif [[ -z $(ls -d \"$SourceDir\" 2&gt;\/dev\/null | grep \"^l\") ]]; then\r\n\t\t\tprintf \" existing directory detected: $(ls -d \"$SourceDir\")\\n\"\r\n\t\t\tprintf \" backup existing directory: $SourceDir ${SourceDir}_$(date +%s)\\n\\n\"\r\n\t\t\tmv $SourceDir ${SourceDir}_$(date +%s) \r\n\t\t\tStatus=modified\r\n\t\tfi\r\n\telse\r\n\t\tprintf \" no symlink or directory detected\\n\"\r\n\t\tStatus=modified\r\n\tfi\r\n\r\n\r\n\t# apply changes\r\n\tif [[ $Status == modified ]]; then\r\n\t\tprintf \" create symlink: \\n\"\r\n\t\tprintf \" $StorageDir -&gt; $SourceDir\\n\"\r\n\t\tln -s $StorageDir $SourceDir\r\n\r\n\t\t# set storage dir permissions\r\n\t\tprintf \" set storage directory permissions: www-data.www-data ($StorageDir) \\n\"\r\n\t\tchown -R www-data.www-data $StorageDir\r\n\r\n\t\t# restart zoneminder\r\n\t\tprintf \" restarting zoneminder ...\\n\"\r\n\t\tsystemctl restart zoneminder\r\n\r\n\t\tprintf \"\\n\\n\"\r\n\tfi\r\n\r\n#------------------------------------------------------------------------------------------------------------\r\n\r\nexit 0<\/pre>\n<p>Cronjobeintrag, Intervall eine Minute:<\/p>\n<pre class=\"lang:default decode:true \"> *\/1  *    *    *   *    \/usr\/local\/bin\/.\/zm-storage_check_storage_symlink       &gt;  \/dev\/null<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\">Manuelle SQL Datenbank Konfiguration f\u00fcr Zoneminder:<br \/>\n<\/span><\/p>\n<p>Der Benutzer (zmuser) sowie die Datenbank (zm) muss unter Umst\u00e4nden 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\u00f6rigen Datenbank (zm) wird wie folgt angelegt:<\/p>\n<pre class=\"lang:default decode:true\">mysql -u zm -p&lt;password&gt; zm &lt; \/usr\/share\/zoneminder\/db\/zm_create.sql<\/pre>\n<p>oder<\/p>\n<pre class=\"lang:default decode:true \">mysql -u zm -p zm &lt; \/usr\/share\/zoneminder\/db\/zm_create.sql<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\">Datenbank manuell anlegen:<\/span><\/p>\n<p>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\u00f6tigt. Der Datenbankname (Vorgabe: zm) kann <strong>vor<\/strong> dem Import in der o.g. Datenbankdatei (zm_create.sql) ge\u00e4ndert werden. Der Datenbankname des SQL Servers muss mit dem in der zm_create.sql Datenbank \u00fcbereinstimmen.<\/p>\n<ol>\n<li>Datenbank und Benutzer anlegen (Benutzer: zmuser Passwort: zmpass \/ Datenbankname: zm_database):<\/li>\n<\/ol>\n<ol>\n<li>\n<pre class=\"terminal\">sudo mysql -e \"CREATE USER 'zmuser'@'localhost' IDENTIFIED BY 'zmpass';\"\r\nsudo mysql -e \"CREATE DATABASE zm;\"\r\nsudo mysql -e \"GRANT ALL PRIVILEGES ON zm.* TO 'zmuser'@'localhost';\"<\/pre>\n<\/li>\n<li>Datenbank vorbereiten ( nicht n\u00f6tig wenn der Datenbankname &#8220;zm&#8221; genutzt wird ):\n<pre class=\"terminal\">sudo cp \/usr\/share\/zoneminder\/db\/zm_create.sql .\r\nsudo sed 's\/`zm`\/`'zm_database'`\/g' -i zm_create.sql\r\n<\/pre>\n<\/li>\n<li>Datenbank in SQL Server laden:\n<pre class=\"lang:default decode:true terminal\">sudo mysql -uzmuser -pzmpass zm &lt; \/usr\/share\/zoneminder\/db\/zm_create.sql\r\n<\/pre>\n<\/li>\n<li>Zoneminder Konfiguration anpassen:\n<pre class=\"terminal\">sudo sed 's\/ZM_DB_USER=.*\/ZM_DB_USER='zmuser'\/g' -i \/etc\/zm\/zm.conf\r\nsudo sed 's\/ZM_DB_PASS=.*\/ZM_DB_PASS='zmpass'\/g' -i \/etc\/zm\/zm.conf\r\nsudo sed 's\/ZM_DB_NAME=.*\/ZM_DB_NAME='zm'\/g' -i \/etc\/zm\/zm.conf<\/pre>\n<\/li>\n<\/ol>\n<p>Oben genannte Schritte als Script:<\/p>\n<pre class=\"height-set:true height:200 lang:default decode:true terminal \">#!\/bin\/bash\r\n\r\n# set default vars\r\nzm_user=\"zm_user\"\r\nzm_pass=\"zm_pass\"\r\nzm_database=\"zm_db\"\r\n\r\n# read user input\r\nread -e -p \" Enter database username: \" -i \"$zm_user\"           zm_user\r\nread -e -p \" Enter database password: \" -i \"$zm_pass\"           zm_pass\r\nread -e -p \" Enter database name:     \" -i \"$zm_database\"       zm_database\r\n\r\n# check user input\r\necho \"\"\r\necho \" Create SQL database containig following values :\"\r\necho \"\"\r\necho \" User:     $zm_user\"\r\necho \" Pass:     $zm_pass\"\r\necho \" Database: $zm_database\"\r\necho \"\"\r\n\r\n request_loop () {\r\n        Request=\r\n        read -n1 -e -p \" Create database (y\/N)? \" Request\r\n        if   [[ \"$Request\" == [yY] ]]; then\r\n                printf \" creating database ... \"\r\n        elif [[ \"$Request\" == [nN]  ]]; then\r\n                printf \" creation canceled ... exit\\n\"\r\n                exit 1\r\n        else\r\n                request_loop\r\n        fi\r\n        printf \"\"\r\n }\r\n request_loop\r\n\r\n# write database\r\nsudo mysql -e \"CREATE USER '$zm_user'@'localhost' IDENTIFIED BY '$zm_pass';\"\r\nsudo mysql -e \"CREATE DATABASE $zm_database;\"\r\nsudo mysql -e \"GRANT ALL PRIVILEGES ON $zm_database.* TO '$zm_user'@'localhost';\"\r\n\r\nsudo cp \/usr\/share\/zoneminder\/db\/zm_create.sql .\r\nsudo sed 's\/`zm`\/`'$zm_database'`\/g' -i zm_create.sql\r\n\r\nsudo mysql -u$zm_user -p$zm_pass $zm_database &lt; zm_create.sql\r\n\r\nsudo sed 's\/ZM_DB_USER=.*\/ZM_DB_USER='$zm_user'\/g'      -i \/etc\/zm\/zm.conf\r\nsudo sed 's\/ZM_DB_PASS=.*\/ZM_DB_PASS='$zm_pass'\/g'      -i \/etc\/zm\/zm.conf\r\nsudo sed 's\/ZM_DB_NAME=.*\/ZM_DB_NAME='$zm_database'\/g'  -i \/etc\/zm\/zm.conf\r\n\r\n# check config file permission\r\nchgrp -c www-data \/etc\/zm\/zm.conf\r\n\r\n# restart zoneminder\r\nsudo service zoneminder restart<\/pre>\n<p>&nbsp;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n<p><span style=\"text-decoration: underline;\">Alle Aufzeichnungen l\u00f6schen<\/span><\/p>\n<p>Um Aufzeichnungen, im Falle von Dateninkosistenzen ( Daten auf Festplatte oder Datenbank stimmen nicht mehr \u00fcberein ) aus der Datenbank sowie von der Festplatte manuell zu l\u00f6schen, kann mittels Zoneminder Webinterface fehlschlagen. In diesem Fall werden Datenbank-, und Pfadoperationen direkt \u00fcber das Host OS verarbeitet:<\/p>\n<p><a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/zoneminder-manuelle-bereinigung-von-ereignissen\/\" target=\"_blank\" rel=\"noopener\">Zoneminder &#8211; Manuelle Bereinigung von Ereignissen<\/a><\/p>\n<hr \/>\n<p><span style=\"text-decoration: underline;\">Zoneminder Kamera neu starten<\/span><\/p>\n<pre class=\"lang:default decode:true \"># Restart Monitor 6\r\nsudo zmdc.pl stop zmc -m 6\r\nsleep 5\r\nsudo zmdc.pl start zmc -m 6\r\n<\/pre>\n<hr \/>\n<p style=\"text-align: center;\"><strong><em><a href=\"#overview\">Zur\u00fcck zur \u00dcbersicht<\/a><\/em><\/strong><\/p>\n<hr \/>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2821 alignleft\" src=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-content\/uploads\/2014\/08\/CC_BY_NC_SA.png\" alt=\"CC_BY_NC_SA\" width=\"65\" height=\"23\" \/><span style=\"font-size: 10pt;\">Speefak | <a href=\"https:\/\/github.com\/ZoneMinder\/zoneminder\/issues\/3665\" target=\"_blank\" rel=\"noopener\">github.com<\/a> | <a href=\"https:\/\/wiki.zoneminder.com\/Debian_10_Buster_with_Zoneminder_1.36.x_from_ZM_Repo\" target=\"_blank\" rel=\"noopener\">wiki.zoneminder.com<\/a> | <a href=\"https:\/\/www.claudiokuenzler.com\/blog\/814\/how-to-manually-clean-up-delete-zoneminder-events\" target=\"_blank\" rel=\"noopener\">www.claudiokuenzler.com<\/a><br \/>\n<\/span><\/p>\n<hr \/>\n","protected":false},"excerpt":{"rendered":"<p>Zoneminder ist eine auf Linux basierende Open Source Video\u00fcberwachungssoftware, mit der diverse Videoquellen wie IP Kameras, USB Kameras, TV Kameras, LAN\/WLAN Kameras uvm. Genutzt werden k\u00f6nnen und auch professionellen Anspr\u00fcchen gen\u00fcgt. Die Bedienung der Zoneminder Software erfolgt \u00fcber eine kommerzielle Android-App oder ein Webinterface und funktioniert, im Falle des Webinterfaces, daher mit allen g\u00e4ngigen Browsern [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,40,43,96,112],"tags":[],"class_list":["post-4423","post","type-post","status-publish","format-standard","hentry","category-anleitungen","category-server","category-sicherheit","category-video-ueberwachung","category-zoneminder"],"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"speefak","author_link":"https:\/\/speefak.spdns.de\/oss_lifestyle\/author\/speefak_oss\/"},"rttpg_comment":1,"rttpg_category":"<a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/anleitungen\/\" rel=\"category tag\">Anleitungen<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/server\/\" rel=\"category tag\">Server<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/sicherheit\/\" rel=\"category tag\">Sicherheit<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/video-ueberwachung\/\" rel=\"category tag\">Video \u00dcberwachung<\/a> <a href=\"https:\/\/speefak.spdns.de\/oss_lifestyle\/category\/zoneminder\/\" rel=\"category tag\">Zoneminder<\/a>","rttpg_excerpt":"Zoneminder ist eine auf Linux basierende Open Source Video\u00fcberwachungssoftware, mit der diverse Videoquellen wie IP Kameras, USB Kameras, TV Kameras, LAN\/WLAN Kameras uvm. Genutzt werden k\u00f6nnen und auch professionellen Anspr\u00fcchen gen\u00fcgt. Die Bedienung der Zoneminder Software erfolgt \u00fcber eine kommerzielle Android-App oder ein Webinterface und funktioniert, im Falle des Webinterfaces, daher mit allen g\u00e4ngigen Browsern&hellip;","_links":{"self":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/4423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/comments?post=4423"}],"version-history":[{"count":0,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/posts\/4423\/revisions"}],"wp:attachment":[{"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/media?parent=4423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/categories?post=4423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/speefak.spdns.de\/oss_lifestyle\/wp-json\/wp\/v2\/tags?post=4423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}