Установка и настройка zoneminder на ubuntu server

Обновлено: 05.07.2024

ZoneMinder программа для видеонаблюдения под Ubuntu (Linux), скачать, мануал

Программа для видеонаблюдения ZoneMinder работает под операционной системой Linux. Проект существует благодаря добровольным пожертвованиям, поэтому софт предоставляется бесплатно.

Возможности ZoneMinder ограничиваются только мощностью сервера или ПК, который обрабатывает и сохраняет видеопотоки. Поэтому нет ограничений по количеству камер, размеров архива или пользователей.

Система поддерживает аналоговые камеры, IP-, USB-камеры самых разных производителей, есть детектор движения с автоматическим запуском режима записи и уведомления по SMS или электронной почте.

ZoneMinder как свободная платформа позволяет интеграцию программных продуктов других производителей. Данная программа используется не только частными клиентами, небольшими компаниями, но и крупными организациями.

Ubuntu — это операционная система, основанная на Debian GNU/Linux. Основным разработчиком и спонсором является компания Canonical. В настоящее время проект активно развивается и поддерживается свободным сообществом.

Установку системы производим в минимальной конфигурации: без дополнительных сервисов (кроме ssh сервера), графической оболочки и др. дополнительных пакетов. Языковые настройки можно выбрать русские (страна Россия, язык русский и пр.).

После установки системы обновим репозитарий системы:

После этого приступим к установке Zoneminder:

$ sudo apt-get install zoneminder
$ sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
$ sudo /etc/init.d/apache2 force-reload (перезапускаем Apache)
$ sudo mysql -u root -p < /usr/share/zoneminder/db/zm_create.sql

mysql -u root -p (это позволит войти в командную строку mysql), затем вводим:

Сохраняем файл и перегружаем систему. После перезагрузки можем войти в веб-интерфейс системы наблюдения:

После запуска интерфейса программы имеет смысл посетить раздел настроек Zoneminder (“Options” в правом углу). Интерес может представлять включение аутентификации, русификации интерфейса, включение поддержки поворотных камер и пр. Каждая настройка снабжена небольшим описанием, что позволяет оценить ее ценность лично для вас. Для примера включим поддержку поворотных камер:

После предварительной настройки сервиса приступим к добавлению камер. Нажимаем “Add new monitor” и прописываем следующие параметры:

Если камера является поворотной (функция PTZ), например Apexis APM-J011-WS, то функциями поворота можно управлять через Zoneminder, посредством скрипта, отправляющего команды на камеру.

В различных ОС путь к файлу может быть иным. Для поиска нужного места ищем по имени файла: PanasonicIP.pm После процесса копирования скрипта требуется его подключить к камере через веб-интерфейс Zoneminder. На вкладке “Control” выбираем ссылку “Edit”:

Далее выбираем “Add New Control”:

В поле “Name” указываем произвольное название для скрипта управления. В качестве “Type” указываем “Remote”, а вот в поле “Protocol” нужно указать точное название скрипта, который мы сохранили без указания расширения. Следующие вкладки заполняем следующим образом:

  • Can Move: Yes
  • Can Move Diagonally: Yes
  • Can Move Mapped: No
  • Can Move Absolute: No
  • Can Move Relative: No
  • Can Move Continuous: Yes
  • Can Pan: Yes
  • Min Pan Range: 0
  • Max Pan Range: 0
  • Min Pan Step: 0
  • Max Pan Step: 0
  • Has Pan Speed: No
  • Min Pan Speed: 0
  • Max Pan Speed: 0
  • Has Turbo Pan: No
  • Turbo Pan Speed: No
  • Can Tilt: Yes
  • Min Tilt Range: 0
  • Max Tilt Range: 0
  • Min Tilt Step: 0
  • Max Tilt Step: 0
  • Has Tilt Speed: No
  • Min Tilt Speed: 0
  • Max Tilt Speed: 0
  • Has Tilt Pan: No
  • Turbo Tilt Speed: No
  • Has Presets: Yes
  • Num Presets: 5
  • Has Home Preset: Yes
  • Can Set Presets: Yes

После заполнения всех полей сохраняем полученную настройку и выбираем ее в качестве основной на вкладке “Control” у настраиваемой камеры.

После сохранения настроек камеры можем полюбоваться на результаты:

Рассмотрим теперь режимы работы камеры в Zoneminder.

  • Monitor – только просмотр изображений с камеры, без какого-либо анализа.
  • Modect (от Motion Detection) — данный режим производит анализ кадров и при возникновении движения ведет запись.
  • Record – постоянная запись с камер.
  • Mocord (гибрид Modect и Record) — ведется постоянная запись с камер, в случае возникновения движения — с подсветкой областей детекции.
  • Nodect – специализированный режим, использующийся вместе с внешними триггерами.

Для просмотра записанных событий, будь то детекция движения или непрерывная запись, используем ссылку с именем камеры в первой колонке Zoneminder – “Name”. Должны увидеть нечто подобное:

По умолчанию зоной детекции движения является вся область, отображаемая камерой. В этот порядок вещей можно вмешаться и создать несколько зон детекции движения или ограничить зону необходимой областью. Настраиваются зоны в разделе “Zones”:

После перехода по ссылке нужной зоны имеем следующее изображение:

Далее нажимаем “Add New Zone”:

В заключение напомним еще раз, как производить просмотр записанного материала. Самый простой путь – обратиться по ссылке с именем требуемой камеры в столбце “Name”, либо по столбцу “Events” напротив нужной камеры. После этого выбираем событие и наблюдаем видеозапись.


Сегодня я продолжу эту тему, и мы организуем полноценную систему видеонаблюдения на базе zoneminder установленном на Ubuntu Server 16.04, и подключенной к нему камерой из телефона.

Сперва покажу все команды для установки, ниже они будут с описанием действий:

Кому лень читать, есть видео:

Для начала обновим нашу систему:

Установим lamp (linux apache mysql php):

Во время установки запросят пароль для MySQL.

Посмотрим какой часовой пояс установлен в системе:

Если он не наш, установим правильный часовой пояс системы:

Далее нужно установить часовой пояс для php :

находим в этом файле строку ;date.timezone = в секции date , раскоментируем ее и впишем нужную часовую зону, должно получиться что то вроде:

Сохраняем файл ( ctrl + x -> y )

Теперь установим виновника торжества – zoneminder :

Импортируем базу данных в MySQL и добавим пользователя:

Если вы зададите не стандартный пароль, тогда нужно будет его изменить в файле конфигурации / et c/zm/zm.conf, строка - ZM_DB_PASS=zmpass

Добавим конфигурацию в Apache:

Сделаем пользователя, от которого работает Apache , владельцем конфигурации zoneminder :

Укажем ядру Linux сколько памяти выделять zoneminder ’у

Включим сервис zoneminder , что бы он стартовал при старте системы:

Еще нужно добавить строчку в конфиг MySQL , в файл /etc/mysql/mysql.conf.d/mysqld.cnf нужно добавить строку - sql_mode = NO_ENGINE_SUBSTITUTION, иначе могут возникнуть ошибки при добавлении камеры в zoneminder , например такая:

Перезагружаем наш сервер

Установка завершена, теперь произведем базовую настройка zoneminder, добавим камеру, и сделаем что бы шла запись по движению.

Переходим во вкладку users, и жмем по пользователю admin.


Задаем ему пароль и жмем save.

В этой же вкладке можно добавить еще пользователей с ограниченными правами.

Переходим во вкладку system и ставим галку напротив Authenticate user logins to ZoneMinder, что бы нельзя было заходить на сайт без пароля.


Если вы хотите использовать отдельный диск под записи, тогда перейдите во вкладку path. И здесь можете изменить стандартные пути. Здесь наиболее интересные пути, которые стоит изменить — events, images и sounds. Вводите абсолютные пути, не забудьте предварительно создать папку и дать полный доступ, либо сделать владельцем этой папки пользователя www-data (chmod либо chown вам в помощь).



Закрываем окно, на этом основные настройки завершены. Что бы они применились нужно перезапустить zoneminder, это можно сделать из веб интерфейса, либо из терминала.

В перовом случае нажминте на Running (Console — Running)


В появившемся окне выберете restart в выпадающем списке и нажмите apply


Во втором — наберите команду

Теперь добавим камеру.

В основном окне жмем Add New Monitor.

В открывшемся окне, во вкладке General выбираем Source Type — Remote, Function — Modect (Здесь функции — monitor — только просмотр, modect — запись при срабатывании события, mocord — постоянная запись, с подсветкой сработанных событий на движение, nodect — отключение встроенной функции обнаружения движения, для использования сторонних модулей)

Remote Host Name — IP адрес устройства (он написан на экране, IPWebCam запущена)

Port должен быть — 8080 (если вы его не меняли в настройках программы на телефоне).

Remote Host Path должен быть - /video

Разрешение задавайте в зависимости от настроек/возможностей вашей камеры. Жмем save.


Должен появиться новый монитор, source должен быть зеленым, если все прошло нормально.

Если вы хотите ограничить зону детектора движения камеры, нажмите на zones, можно отредактировать стандартную зону, либо добавить новую, так же можно добавлять несколько зон. Для этого нужно либо нажать на название существующей зоны, либо добавить новую зону. Зона задается простым перетягиванием точек на углах зоны. Здесь же можно задать чувствительность детектора движения.



Вот и все, теперь на сервер будет записываться видео (если быть точнее, то последовательность изображений, zoneminder пишет именно так), при обнаружении движения.

Для того что бы посмотреть на изображение камеры нужно нажать на название монитора, что бы посмотерть события нужно нажать на число событий. И выбрать нужное.

Если вы хотите наладить видеонаблюдение и вам для этого необходим сервер, или программное обеспечение, которое способно работать с видеокамерами, то вам стоит обратить внимание на ZoneMinder. Это свободное программное обеспечение способно работать с локальными, сетевыми, цифровыми (в том числе и с USB камерами) и с аналоговыми видеокамерами. Имеет богатый арсенал настроек, а так же веб-интерфейс, через который можно осуществлять настройки, так же возможно получить доступ ко многим функциям с мобильного телефона. Конечно, это не все на что способен данный продукт, имеется оповещение через SMS и на электронную почту, с прикрепленным скриншотом или даже видео. Имеется возможность загружать на внешние FTP для архивации и безопасности видео с камер. И многое другое, описывать все достоинства ZoneMinder не стану, кому надо, сможет найти больше информации на официальном сайте.

Установка ZoneMinder в Debian 10

И так, переходим от слов к делу, и начнем с установки на дистрибутив Debian, и первым делом необходимо установить Apache2, хотя, можно поднять сервер и на NGNIX, но, на Apache2 немного проще, по этому Apache2. Для установки дополнительных зависимостей для ZoneMinder переходим в терминал и вводим команду:

Когда установка всех пакетов завершиться, необходимо настроить Mariadb, вводим команду:

ZoneMinder в Linux 1

ZoneMinder в Linux 2

ZoneMinder в Linux 3

Для установки ZoneMinder в Debian 10 необходимо добавить репозиторий, для этого возвращаемся в терминал и воспользуемся текстовым редактором Nano, о котором вы можете прочесть в этой статье:

В открывшемся окне спускаемся в низ и вписываем репозиторий ZoneMinder:

ZoneMinder в Linux 4

ZoneMinder в Linux 5

Обновляем списки пакетов и устанавливаем ZoneMinder:

ZoneMinder в Linux 6

Осталось лишь включить сервис ZoneMinder, вводим соответствующие команды:

Так же, необходимо включить некоторые модули в Apache2, а затем перезапустить его, выполним команды:

ZoneMinder в Linux 7

Установка ZoneMinder в Ubuntu 20.04

Переходим к установке ZoneMinder в дистрибутиве Ubuntu 20.04, для данного дистрибутива существует PPA репозиторий от самих разработчиков ZoneMinder, его то мы и подключим. Для подключения PPA репозитория переходим в терминал и вводим команду:

ZoneMinder в Linux 9

Теперь необходимо настроить права для пользователя www-data, вводим команды:

Разрешаем доступ к каталогу с файлами:

Затем включим модули в Apache2, которые необходимы для работы ZoneMinder:

ZoneMinder в Linux 10

Теперь активируем и запускаем сам ZoneMinder, введя команды:

Теперь осталось лишь перезапустить Apache2 и можно будет проверить работу ZoneMinder введя в браузере ваш IP адрес и указать после него /zm:

ZoneMinder в Linux 11

Настройка ZoneMinder

ZoneMinder в Linux 12

ZoneMinder в Linux 13

ZoneMinder в Linux 14

ZoneMinder в Linux 15

ZoneMinder в Linux 16

В функции Function на данный момент мы выбрали режим просмотра, но, там же можно включить и запись с камер:

ZoneMinder в Linux 17

Заключение

Имеются конечно и другие достойные кандидаты, например Motion, о них может быть напишу в следующий раз. Что же касается ZoneMinder, это действительно не плохой продукт, конечно, имеются некоторые недостатки. Но, они есть в каждом продукте и на некоторые из них можно закрыть глаза. ZoneMinder не требователен к ресурсам и способен так же завестись и спокойно работать на том же Raspberry pi, у меня так он на нем и крутился некоторое время. Но, стоит учесть, что нужен внешний диск для хранения записей с видеонаблюдения подключенный к Raspberry pi, так как записывать все на флешку, это не вариант, сами понимаете. Но, про установку видеонаблюдения на Raspberry pi читайте в следующих статьях. Так же хотелось бы отметить, что вы можете установить ZoneMinder на сервер без графического интерфейса, по протоколу SSH, а что бы защитить SSH можно сгенерировать ключи, и отключить доступ по паролю, подробней об этом написано в этой статье.

А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X

С истема видеонаблюдения, которую я собираюсь описать, используется в моем жилище более 6 лет. За это время мы успели сменить квартиру, родить 2 сыновей и вырастить Ubuntu 8.04 до 14.04
Три принципиально разные камеры мониторят входную дверь, оповещают маму на кухне о проснувшемся ребенке и позволяют заглянуть, все ли в порядке дома, из любой точки мира.

Статья писалась для Ubuntu 10.04 и ZoneMinder 1.24.4 Последняя правка Xubuntu 14.04 и ZoneMinder 1.26.5.


Настоятельно рекомендую устанавливать ZoneMinder сразу после установки системы прежде чем вы накатите все ваши любимые проги, кодеки, примочки! ZM это не одна программа, это взаимосвязанный комплекс, один шаг в сторону и вы получите интерфейс"одного окна" с неработающими кнопками и непрерывными ошибками.

apt-get update
apt-get upgrade
apt-get dist-upgrade

apt-get install zoneminder

Он потянет за собой все необходимые пакеты. В процессе, вас попросят ввести пароль администратора MySQL. Не забудьте его записать, на случай, если потом захочется порулить. После установки пакета ничего не происходит. Это нормально . Аппачу не указали настройки zoneminder-а. Создаем директорию и символические ссылки.Активируем поддержку скриптов.

mkdir /etc/apache2/conf.d
ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
ln -s /etc/zm/apache.conf /etc/apache2/conf-enabled/zoneminder.conf
a2enmod cgi

Заставим MySQL грузиться раньше Zoneminder открываем в редакторе инициирующий файл

и добавляем строчку sleep 15 как на примере

start() sleep 15
echo -n "Starting $prog: "

У меня zoneminder вещает по порту 8010 поэтому мы должны отметить этот порт в файле ports.conf

Создаем технического пользователя

adduser www-data video

sudo /etc/init.d/apache2 force-reload

Для работы в браузерах, отличных от Firefox, нам понадобится JAVA скрипт Cambozola

До кучи, настроим синхронизацию системного времени:

chmod 755 /etc/cron.daily/ntpdate

Теперь можно открывать Firefox и запускать линк:


Правда, строчек с камерами у вас еще не будет. Их надо создать.
Если вы являетесь счастливым обладателем IP камеры, то смело нажимайте на кнопку "Add New Monitor"




Обратите внимание на параметр "Remote Host Name" строчка этого параметра означает "логин":"пароль"@адрес камеры. Соответственно, в web-интерфейсе камеры надо завести пользователя с этим логином и паролем. Особенности подключения Вашей камеры лучше уточнить на оффсайте .

Локальные USB веб-камеры сейчас подключаются без особых проблем ( Logitech Webcam Pro 9000 ). В предыдущих версиях я использовал mjpg-streamer . Создаем кнопки запуска и остановки сервиса:


для остановки вещания:

Проверяем в браузере

и прописываем в настройках:


Осталось настроить Опции, Фильтры и Зоны.

Если в Опциях поставить галочку "Authenticate user logins to ZoneMinder"
то при следующем обращении программа спросит логин и пароль (по умолчанию admin:admin), а в Опциях появится закладка Users.


1. Options - Images - OPT_CAMBOZOLA
2. Options - Images - OPT_FFMPEG

строка PATH_FFMPEG Path to (optional) ffmpeg mpeg encoder
проверяем наличие ссылки на кодек /usr/bin/ffmpeg

В Ubuntu 14.04 FFmpeg заменен libav это гарантирует нам ошибку при генерации видео. Будем ставить из репозитория:

Настраиваем фильтры. Фильтр на объем диска стоит по умолчанию. Я к нему добавил еще фильтр по возрасту событий старше 30 дней


Работает? Приятного просмотра :о)




1. Если в логах сыпятся ошибки типа:

zmwatch 1862 ERR Shared data size conflict in shared_data for monitor

надо в файле /usr/share/perl5/ZoneMinder/Memory.pm заменить строчку

2. Если сразу после установки на чистую систему все работало, а после накатывания кучи полезностей и нужностей пропало видео и при просмотре сыпет ошибками: socket_sendto( /tmp/zm/zms- . failed: No such file or directory Скорее всего вылетел кодек x264. Остальное ставим "до кучи"

sudo apt-get install x264 libexpect-perl mysql-client

На системах до 13.04, проверить наличие файла zm по пути /etc/apache2/sites-enabled/

6. Если после апгрейда Ubuntu нет картинки и в логах: Unable to authenticate user , уберите шифрование: Options - System - AUTH_RELAY


P.S. Прежде чем писать вопросы.

Дорогой читатель. Я не занимаюсь поддержкой пользователей. Более того, все описанное делаю дома, в свободное время, ради собственного удовольствия и пользы домашним. Я уже помог вам - написал эту статью. Дальше придется изучать и думать самостоятельно. Удачи.

Читайте также: