Przygotowanie maszyny wirtualnej Proxmox
Podstawą ZoneMinder jest maszyna wirtualna z zainstalowanym systemem Ubuntu 22.04 z 4 vCPU / 8 GB RAM / 2 x 16 GB HDD. Konfiguracja jest skrojona pod 4 kamery Hikvision i ciągły zapis z kodowaniem do H.264 przez ZoneMinder. Pierwszy dysk jest zamontowany jako / (EXT4) a drugi jako /var (EXT4) i przeznaczony głównie na logi oraz swapa. W trakcie instalacji ustawiono statyczny adres ip maszyny oraz wybrano instalację z dodatkowego oprogramowania tylko serwer SSH.
Instalacja Ubuntu 22.04 w maszynie wirtualnej Proxmox VE
Proces instalacji Ubuntu 22.04 w maszynie wirtualnej Proxmox VE został opisany na stronie Instalacja Ubuntu 22.04 w maszynie wirtualnej Proxmox VE – IT Admin (vblog.ovh)
Wstępna konfiguracja systemu Ubuntu
Proces przygotowania systemu Ubuntu do pracy pomiędzy zakończeniem pracy instalatora Ubuntu a instalacją właściwego oprogramowania np. ZoneMinder opisany jest na stronie Konfiguracja i konserwacja systemu Linux Ubuntu – IT Admin (vblog.ovh)
Instalacja ZoneMinder z konsoli systemu Ubuntu 22.04
# instalujemy LAMP-a sudo apt install apache2 mysql-server php sudo systemctl enable --now apache2 mysql sudo systemctl status apache2 mysql --no-pager -l # instalujemy ZoneMinder sudo add-apt-repository ppa:iconnor/zoneminder-1.36 sudo apt update && sudo apt upgrade sudo apt install zoneminder # nadajemy odpowiednie uprawnienia sudo chmod 740 /etc/zm/zm.conf sudo chown root:www-data /etc/zm/zm.conf sudo chown -R www-data:www-data /usr/share/zoneminder/ # włączamy odpowiednie moduły apache sudo a2enmod cgi rewrite expires headers # włączamy konfigurację zoneminder dla apache (/etc/apache2/conf-available/zoneminder.conf) sudo a2enconf zoneminder # poprawiamy konfigurację PHP 8.1 sudo nano /etc/php/*/apache2/php.ini date.timezone = Europe/Warsaw
Przygotowujemy konfigurację MySQL dodając na końcu pliku /etc/mysql/my.cnf: sql_mode = NO_ENGINE_SUBSTITUTION
sudo nano /etc/mysql/my.cnf [mysqld] user = mysql # pid-file = /var/run/mysqld/mysqld.pid # socket = /var/run/mysqld/mysqld.sock # port = 3306 # datadir = /var/lib/mysql bind-address = 127.0.0.1 mysqlx-bind-address = 127.0.0.1 key_buffer_size = 16M myisam-recover-options = BACKUP log_error = /var/log/mysql/error.log max_binlog_size = 100M sql_mode = NO_ENGINE_SUBSTITUTION
Restartujemy usługi mysql, apache oraz włączamy i uruchamiamy usługę zoneminder
systemctl restart mysql sudo systemctl reload apache2 sudo systemctl enable zoneminder && sudo systemctl start zoneminder
Logujemy się do interfejsu www ZoneMinder http://adres_ip/zm/, login: admin, hasło: admin
Konfiguracja ZoneMinder w webowym GUI
Moja obecna konfiguracja ZoneMinder jest przedstawiona na zrzutach ekranu i można porównać ją z domyślna konfiguracją ZoneMinder u siebie. Ustawiona jest pod ciągłe nagrywanie w plikach mp4 jak najdłuższego czasowo okna.
Przykładowe ustawienia kamery Hikvision DS-2CD1043G0-I w ZoneMinder
Ustawienia strumienia kamery Hikvision DS-2CD1043G0-I
Włączenie trybu Internet Explorer w Edge
Jeśli nie możemy wejść na stronę konfiguracji kamery Hikvision z poziomu Chrome / Firefox / Edge to należy w przeglądarce Edge wpisać w pasku adresu edge://settings/defaultbrowser i dodać stronę kamery do pozycji Strony trybu Internet Explorer.
Automatyczne usuwanie starszych nagrań
Wchodzimy w menu Filters i dodajemy nowy filtr z odpowiednimi opcjami jak poniżej. Więcej informacji o filtrach zoneminder można znaleźć na tej stronie https://wiki.zoneminder.com/Filters oraz https://zoneminder.readthedocs.io/en/stable/userguide/filterevents.html
Uruchomienie filtra zoneminder w celach testowych z linii komend
sudo zmfilter.pl --filter=3
06/17/2023 07:11:30.866986 zmfilter[18365].INF [main:181] [Scanning for events using filter '3']
06/17/2023 07:11:30.868336 zmfilter[18365].WAR [main:276] [No filter found for SELECT * FROM `Filters` WHERE `Name` = ? AND( `AutoArchive` = 1
or `AutoUnarchive` = 1
or `AutoVideo` = 1
or `AutoUpload` = 1
or `AutoEmail` = 1
or `AutoMessage` = 1
or `AutoExecute` = 1
or `AutoDelete` = 1
or `UpdateDiskSpace` = 1
or `AutoMove` = 1
or `AutoCopy` = 1
) ORDER BY `Name` with values(3)]





























