Меню Рубрики

Установка и запуск zoneminder

Домашнее видеонаблюдение. Реализация с помощью Zoneminder и Debian 8

Введение

Имея в наличии домашний NAS, который работает под управлением Debian 8 (ранее я использовал Ubuntu Server 12.04 и 14.04), возникла идея возложить на него, помимо прочего, роль сервера видеонаблюдения. В качестве серверной части был выбран Zoneminder. Алгоритм работы видеонаблюдения должен быть такой: круглосуточная запись не нужна, но требуется в случае необходимости возможность включения записи по наступлению события — срабатывание на движение, с последующей отправкой уведомления на электронную почту со скриншотами с места события. Это нужно чтобы обеспечить контроль за квартирой в момент отсутствия кого-либо дома. Ну и, конечно, нужна возможность удалённо подключиться и проверить — всё ли в порядке.

На сайте разработчика я нашёл подробнейшую Wiki, посвященную именно установке на Debian 8 64-bit. Соответственно, инструкцию по установке я возьму оттуда, пояснив некоторые моменты своими комментариями.

Установка Zoneminder

Итак, у нас есть сервер с установленным в минимальной конфигурации Debian 8 64-bit (я использовал netinstall). Сначала нужно отредактировать sources.list, добавив в него Jessie backports:

Либо раскомментируем эту строку, если она там уже есть, то есть удалим # в начале строки. Обновляем индекс пакетов:

Теперь всё готово для установки Zoneminder, что мы и сделаем:

В процессе установки будут также автоматически установлены Apache, MySQL, PHP.
После завершения установки, создаём базу MySQL:

В процессе создания базы, будет предложено выбрать пароль root базы. Далее выполняем последовательно следующие команды (через sudo), вводя пароль в случае запроса:

Включаем автозапуск Zoneminder:

Добавляем пользователя www-data в группу sudo, это нужно для доступа к локальным видеокамерам:

Проверяем, что Zoneminder запущен:

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

Добавляем свой часовой пояс в PHP:

Ищем секцию [Date] и меняем date.timezone на нужный:

Сохраняем — Ctrl+O, выходим — Ctrl+X.
Перезапускаем Apache:

Чтобы была возможность управлять Zoneminder через Internet Explorer, нужно установить Cambozola:

На этом установка Zoneminder завершена. Теперь нужно настроить почтовый транспорт для того, чтобы Zoneminder мог уведомлять о событиях по электронной почте.

Настройка почтового транспорта

Для отправки уведомлений, Zoneminder умеет использовать ssmtp, его и установим:

Заодно установим mailutils, если этот пакет ещё не установлен:

Теперь настроим параметры почты, от имени которой будут идти уведомления. Предположим, что ящик находится на gmail.com. Открываем ssmtp.conf:

и приводим к такому виду, указав, соответственно, ваши данные:

И проверяем корректность настроек, отправив тестовое письмо:

Если тест прошёл успешно, переходим к следующему шагу — установка MIME::Lite и Net::SMTP. Проверим, установлены ли эти компоненты:

Устанавливаем, зайдя в оболочку perl:

Сейчас нужно внести очень важные изменения, без которых почтовый транспорт от Zoneminder работать не будет. Обратите внимание, что эти изменения нужно вносить только в том случае, если версия установленного Zoneminder — 1.29 или ниже. Начиная с версии 1.30, эти действия производить не нужно.

Откроем в редакторе файл zmfilter.pl:

Перейдя на строку 1179, мы видим следующее:

Закомментируем строки и
и добавим под ними строку

В итоге, начиная со строки 1179 (в моём случае, но не обязательно именно этот номер строки), код должен выглядеть так:

Сохраняем, выходим. На этом работа с терминалом завершена.

Веб-интерфейс Zoneminder

Управление доступно по адресу ip.adress.servera/zm, заходим. Первое, что нужно сделать, это зайти в Options -> Users, и задать пароль пользователю admin:

Затем зайти в Options -> System, и поставить галочку напротив OPT_USE_AUTH:

Если этого не сделать, то Zoneminder позволяет зайти в веб-интерфейс или подключиться через клиентское приложение без запроса логина\пароля, что, естественно, небезопасно. Странно, что эта очень нужная галочка не отмечена по умолчанию.

Теперь настроим отправку электронной почты. Заходим в Optons -> Email и настраиваем по аналогии:

В поле EMAIL_BODY можно настроить формат уведомлений так, как нужно именно вам. Например, если в поле добавить %EI1%, то к сообщению будет прикреплен первый скриншот с момента срабатывания датчика движения. Полный список опций для уведомлений доступен здесь.

Добавление камер

Zoneminder умеет работать как с usb, так и с IP-камерами. На данный момент, мои камеры ещё в пути, поэтому в качестве тестово-настроечно-временного варианта камеры, я использую мой старый Android-смартфон Alcatel Pop C2, на котором установлено приложение IP Webcam, превращающее смартфон в Wi-Fi IP-камеру. После установки и запуска приложения (предварительно рекомендую выставить разрешение видеопотока в настройках приложения, я выставил 800х480), на дисплее смартфона отображается IP и порт, по которому можно зайти в веб-интерфейс и посмотреть, что здесь есть интересного:

Читайте также:  Установка зеркала на приору se на 2110

Настроек, в общем, довольно много, но нас интересует адрес, по которому отдается видеопоток. И мы видим, что есть информация для настройки Zoneminder, что не может не радовать. А именно, указан Remote host path, путь, который нужно будет прописать в настройках Zoneminder — после IP камеры нужно добавить /video:

Возвращаемся в веб-интерфейс Zoneminder, чтобы добавить камеру, выбираем Add New Monitor:

В поле Name пишем желаемое имя, Source type -> Remote:

Во вкладке Source заполняем поля: Remote Host Name -> IP смартфона, Remote Host Port -> порт, на котором работает IP Webcam, Remote Host Path -> путь, который мы подсмотрели в настройках IP Webcam, а также указываем разрешение видеопотока, которое должно совпадать с выбранным нами ранее в настройках IP Webcam:

Сохраняем настройки -> Save, и в главном меню Zoneminder видим добавленную нами камеру:

При нажатии на название которой, мы видим изображение:

Камеры могут работать в нескольких режимах, который определяется параметром Function в главном меню:

Режим, в котором запись ведется только при наличии движения в кадре, называется Modect, его и выберем. Теперь система не будет записывать видеопоток постоянно, а только при наличии веских на то причин. Но нам ведь ещё нужно уведомление о движении в кадре. Для это нужно настроить фильтр. Открываем Filters в главном меню Zoneminder, настраиваем согласно скриншоту, сохраняем под любым именем:

И не забываем поставить галочку напротив Run filter in background:

Таким образом, если в кадре будет обнаружено движение, система запишет видео и отправит на почту уведомление.

Клиентские приложения

Если есть постоянный IP, ничто не мешает пробросить порты в маршрутизаторе и подключаться со смартфона извне через веб-интерфейс, тем более, что в настройках Zoneminder можно выбрать мобильную версию интерфейса, но, помимо этого, я решил поискать какое-нибудь мобильное приложение для этой цели. Поискав в Google Play по ключевому слову «zoneminder», я остановился на zmNinja, т.к. рейтинг достаточно высокий и скриншоты понравились. Приложение платное, триальной версии для предварительной оценки, увы, нет. Функционал более чем достаточный — просмотр видеопотока в реальном времени, просмотр архива, записанных событий, переключение режимов камер и т.д.

Также есть десктопные версии zmNinja для Linux, Windows, Mac OS X — они распространяются бесплатно. Так выглядит версия для Linux, запущенная на моём Mint 18:

В общем, для всех систем интерфейс единообразен.

источник

Установка и настройка zoneminder на Ubuntu Linux. Делаем систему видеонаблюдения.

Приветствую, некоторое время назад я показывал как можно сделать камеру из телефона с android .

Сегодня я продолжу эту тему, и мы организуем полноценную систему видеонаблюдения на базе 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 , например такая:

SQL-ERR ‘SQLSTATE[HY000]: General error: 1366 Incorrect integer value: » for column ‘Server

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

Переходим на страницу http://ваш-ip/zm и зайдем в настройки (options).

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

Читайте также:  Установка xposed без рекавери

Задаем ему пароль и жмем 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 — отключение встроенной функции обнаружения движения, для использования сторонних модулей)

Во вкладке source для подключения нашего телефона нужно выбрать Remote Protocol — HTTP

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

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

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

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

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

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

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

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

источник

Установка, настройка системы и управления для камер

Итак, приступим, будем использовать:

  • Систему: Ubuntu Server 12.04;
  • Видеорегистратор: Zoneminder;
  • Камеры: аналоговые и айпишные dlink;
  • Плата видеозахвата: PCI bridge: Hint Corp HiNT HB4 PCI-PCI Bridge (PCI6150)
  • Основное требование: поднять сервер видеонаблюдения для производства

Айпишники, которые будут использоваться в нашем how-to:
192.168.110.151 – адрес нашего самого видеорегистратора;
192.168.107.103 – адрес айпишной камеры.

1) Подробнейшая инструкция по установке Ubuntu 12.04 сервера. Пошаговые скриншоты прилагаются.

Для установки Ubuntu 12.04 Server качаем iso образ на странице, записываем на CD и загружаемся с него. Первое окно, выбираем язык установки, в нашем случае я выбираю Русский:

Запускаем установку Ubuntu 12.04:

Не соглашаемся с автоматическим определением клавиатуры:

Выбираем способ переключения клавиатуры, я предпочитаю Ctrl + Shift, в Вашем случае может быть иначе:

Будет происходить настройка сети по dhcp:

Нас это не устраивает, поэтому, нажимаем кнопочку «Вернуться»

Выбираем «Настройка сети вручную»

Далее в предложенных, окнах, пишем настройки нашей сети, шлюз и днс. Следующее окно предложит написать имя компьютера в моем случае, это tester. Пишем имя пользователя:

Вводим пароль, предварительно записав его в блокнот:

Далее идет автоматическая настройка часового пояса и спросит, является ли это правильным часовым поясом:

Сегодня я выберу автоматическую разметку диска:

Далее последует сам процесс установки Ubuntu 12.04 Server:

В процессе установки, если вы используете прокси, необходимо указать адрес прокси-сервера:

Отключаем обновления, т.к. они могу вызвать нестабильность системы:

Что же, мы уже почти завершили установку Ubuntu 12.04 Server и дошли до этапа выбора предназначения нашей системы. От выбора пунктов этого шага зависит то, какую роль будет выполнять ваш новый Ubuntu-сервер — это может быть и сервер баз данных и почтовый сервер и т.д. В нашем случае надо обязательно выбрать lamp и openssh server.

Вводим пароля root для mysql:

На последнем этапе установщик предложит установить системный загрузчик в главную загрузочную запись:

Читайте также:  Установка косилки на т16

Несколько секунд и вы можете изъять диск с Ubuntu 12.04 Server из дисковода и нажать на «Продолжить»:

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

2) Установка, настройка видеорегистратора Zoneminder

Zoneminder 1.25.0 на Ubuntu 12.04
Для успешной работы нам необходимо установит OpenSSH Server, и LAMP Server, что мы сделали в предыдущем пункте.

2. Устанавливаем обновления и перезагружаемся:

3. Нам необходим: Статический айпишник

7. Переходим непосредственно к установке zoneminder:

8. Редактируем сам скрипт Zoneminder, т.к. он не запускается автоматом при загрузке:

Вставляем в документе перед строкой «zmfix -a», вот такую — sleep 15.

10. Делаем символьную ссылочку:

11. Перезагружаем веб-сервер:

12. Добавляем пользователя от которого будут происходить манипуляции с видео:

13. Устанавливаем cambozola для поддержки воспроизведения видеопотока:

14. Добавляем сертификаты для веб-сервера:

16. Активируем дефолтный ssl-виртуальный хост:

17. Перезапускаем веб-сервер:

18. Доя успешного использования https проделываем следующее:

19. Вставляем эти две строчки:

22. Редактируем файл sysctl.conf для того, что бы дать понять ядру сколько памяти будем использовать под zoneminder (в противном случаем будет черный экран):

23. Вставляем в самый низ документа следующие две строки:

24. Передаем эти значения в ядро:

27. В консоли жмем кнопку “Options”
LANG_DEFAULT Default language used by web interface, выставляем значение “ru_ru”
Возможность видеть русский интерфейс.

29. И заполняем две графы опциями.

30. При просмотре монитора мы скорее всего увидим черный экран, поигравшись с опциями, возможно увидеть изображение, но с большими помехами.

31. Как решить данную проблему я расскажу в следующем пункте настройке камер.

32. С айпишними камерами все немного проще, заходим в консоль управления нашей айпи камерой, нам нужно, три параметра: 1) имя пользователя и пароль на доступ к камере через http, 2) путь к камере, 3) ее разрешение.

33. Заходим в консоль управления камерой через браузер:

34. Добавляем нового пользователя (например test с паролем test):

36. Смотрим теперь путь к камере>

37. Жмём в Zoneminder, “Добавить монитор”. Вписываем следующие опции на вкладках “Общие” и “Источник”:

3) Настройка аналоговых камер на плате видеозахвата PCI bridge: Hint Corp HiNT HB4 PCI-PCI Bridge (PCI6150).

1. Устанавливаем следующие пакеты:

2. Смотрим, определились ли вообще наши видеоустройства:

Значит наши аналоговые устройства вывода видео определены в системе.

3. Смотрим, информацию о нашем устройстве (все аналоговые видеоустройства хранятся в виде /dev/video):

Вот, что было причиной того, почему наше устройство не корректно отображалось в Zoneminder. Это не есть хорошо, т.к. ядру не переданы параметры драйвера нашего устройства, смотрим дальше.

4. Нам необходимо выгрузить модуль:

5. На что получаем неутвердительный ответ:

Я просидел над пересборками ядра и прочей ерундной очень много времени, ответ оказался простым. Наше аналоговое устройство использовалось, а использовалось оно видеорегистратором, так, что делаем так.

6. Останавливаем zoneminder:

7. Пробуем выгрузить модуль:

8. Как видим команду он проглотил нормально, поэтому пробуем передать параметры ядру вручную:

9. Смотрим, информацию о нашем устройстве (все аналоговые видеоустройства хранятся в виде /dev/video):

А теперь уже получаем такой вывод:

Что означает, что все вышло отлично и драйвера, применились.

10. Даем на всякий случай права на камеры:

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

14. Вставляем в него следующее содержимое:

16. Любуемся полученным результатом:

4) Возможные проблемы, с которыми прийдется столкнуться при выполнении моего HOW-TO.

1. Русский шрифт в консоли:

• в любом текстовом редакторе с правами рута нужно в файл /etc/initramfs-tools/initramfs.conf добавить строчку FRAMEBUFFER=Y. Это также можно сделать выполнив следующие команды:

• Обновить образ рамдиска периода инициализации ядра (initrd):

• Поле этих манипуляций настройки сделанные командой:

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

2. Ubuntu не видит монитор.

Не все виды мониторов видят Ubuntu после установки, чаще всего вы увидите «Неоптимальный режим 1024×768. Оптимальный режим 1240 x 860»:

• Заходим /etc/default/grub
• Снимаем комментарий с строчки

источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *