Строим систему видеонаблюдения и охраны на основе ZoneMinder::Журнал СА 11.2007
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6124
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6832
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4117
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2969
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3773
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3780
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6269
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3126
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3426
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7240
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10609
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12330
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13961
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9093
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7047
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5354
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4585
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3396
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3121
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3376
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 2996
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Строим систему видеонаблюдения и охраны на основе ZoneMinder

Архив номеров / 2007 / Выпуск №11 (60) / Строим систему видеонаблюдения и охраны на основе ZoneMinder

Рубрика: БИТ. Бизнес & Информационные технологии /  Продукты и решения

Виталий Банковский

Строим систему видеонаблюдения и охраны на основе ZoneMinder

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

Немного фактов из моей жизни, которые подвинули меня на создание системы видеонаблюдения. Я живу в съемной квартире, поэтому ни запретить хозяину квартиры приходить в мое отсутствие, ни установить охранную сигнализацию у меня нет возможности. К тому же я, как и многие автолюбители, несколько раз находил вмятину размером с чей-то бампер на двери своего автомобиля. Ну а отловить тех «супостатов», которые оставляют на капоте и дверях остатки своего интеллекта с помощью гвоздика, – заветная мечта каждого автовладельца. Поэтому было выбрано единственное возможное решение – установить систему видеонаблюдения, которая бы записывала события, а также сигнализировала о непрошеных гостях.

Задачи системы и выбор камер слежения

В моем случае потребовалось установить две камеры дома, одну – на парковке, и еще одну я поставил в здание, где расположены наши серверы. Из-за больших расстояний, а также из-за территориально разнесенных объектов наблюдения камеры с USB-интерфейсом были сразу отметены (хотя программное обеспечение, использованное в данном решении, позволяет комбинировать источники).

Также после посещения страниц с обзорами камер (источники указаны в конце статьи) стало понятно, что удел камер с USB-интерфейсом – охват близлежащих объектов (т.е. любительские телеконференции) и что цены на камеры с удовлетворительным качеством начинаются от $250 US. Исходя из этого был определен минимальный ценовой диапазон $250-$500 US и куплены камеры трех разных производителей, сравнительные характеристики которых приведены в таблице 1.

Таблица 1. Сравнительные характеристики камер

 

D-Link DCS-3220

AXIS 2100

Panasonic WV-NP244

Разрешение

640x480

640x480

640x480

Минимальная освещенность, люкс

1

3

1.5

Формат передачи данных

MPEG/JPG

MPEG/JPG

MPEG4/JPG

Стоимость

$220

$320

$340 за камеру и $80 за объектив

Оценка по 5-бальной системе

4

4

5

PPPoE

Да

Да

Да

Субъективные выводы. Камера Panasonic WV-NP244 оказалась лидером по качеству. Эта камера обладает сменной оптикой с фиксированными и переменными фокусными расстояниями: 2.8 mm, 4.5 mm, 3.8-8 mm, 5-40 mm, что позволяет выбрать необходимый угол обзора и, как следствие, оптимально охватить охраняемые объекты. Качество изображения, получаемое с Axis 2100 и с D-Link DCS-3220, почти одинаковое, поэтому по соотношению цена/качество лидером является D-Link DCS-3220.

Программное обеспечение

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

  • NetAvis;
  • Elvis;
  • ZoneMinder.

ZoneMinder (далее по тексту – ZM) сразу вышел в фавориты благодаря поддержке всех возможных источников сигнала (устройство захвата видеосигнала, USB-камера, обновляемый локальный файл, видеопоток или файл со встроенного веб-сервера сетевой камеры). Также этот пакет обладает прекрасной документаций и тщательной проработкой всех компонент. Существует версия для FreeBSD.

Требования к системе

ZoneMinder работает на любом дистрибутиве GNU/Linux, в моем случае я устанавливал на дистрибутив Debian GNU/Linux. Пакет требует веб-сервер с поддержкой PHP, MySQL и библиотеку JPEG. Отдельно стоит упомянуть о требованиях к аппаратному обеспечению. Захват сигналов с камер и анализ изображений в режиме детектора движения требует серьезных ресурсов процессора. Мой домашний компьютер c двумя процессорами Xeon 2.8 ГГц был загружен на 40% при работе 4 камер при средней скорости 4-5 кадров в секунду. Позже я уменьшил частоту до одного кадра в секунду, и загрузка упала до 12%.

Установка программного обеспечения

Перед установкой необходимо настроить веб-сервер (в моем случае Apache) и подготовить базу MySQL. Пример конфигурации виртуального сервера Apache:

<VirtualHost 192.168.10.99>

  DocumentRoot /home/webcam/www

  ServerName webcam.example.com

  ScriptAlias /cgi-bin/  /home/webcam/www/cgi-bin/

  <Directory  /home/webcam/www>

    Options ALL +ExecCGI

     AllowOverride ALL

    DirectoryIndex index.php

  </Directory>

</VirtualHost>

Далее создаем базу MySQL, пользователя и назначаем ему полный доступ к этой базе:

mysql -p mysql;

mysql> create database zm;

mysql> grant all on zm.* to zmuser@localhost identified by 'put_password_here';

mysql> flush privileges;

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

adduser -d /home/webcam webcam

Компиляция и настройка ZoneMinder

Получаем исходные коды пакета с домашней страницы проекта http://www.zoneminder.com, раскрываем полученый архив, компилируем и устанавливаем:

tar -xzvf ZoneMinder-1.xx.xx.tar.gz

cd ZoneMinder-1.xx.xx

./configure –with-webdir=/home/webcam \

--with-cgidir=/home/webcam/www/cgi-bin/ \

--with-webuser=webcam –with-webgroup=webcam \

--with-mysql=

make

make install

Создаем символическую ссылку, чтобы при посещении http://webcam.example.com открывалась контрольная панель ZM:

ln -s /home/webcam/www/zm.php /home/webcam/www/index.php

Далее открываем конфигурационный файл /usr/local/etc/zm.conf и настраиваем параметры доступа к базе данных MySQL:

ZM_DB_HOST=localhost

ZM_DB_NAME=zm

ZM_DB_USER=zmuser

ZM_DB_PASS=put_password_here

Иницилизируем базу с помощью файла db/zm_create.sql, содержащего команды SQL для создания таблиц и первоначальных записей:

mysql -p zm < db/zm_create.sql

Если инсталяция прошла успешно и все верно сконфигурировано, то при посещении страницы http://webcam.example.com должна открыться панель управления ZM (см. рис. 1).

Рисунок 1. Главная панель управления ZM

Рисунок 1. Главная панель управления ZM

Конфигурирование основных параметров

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

  • разрешение работы с удаленными камерами;
  • настройка адреса электронной почты для отсылки сообщений о событиях;
  • настройка адреса удаленного сервера FTP, куда ZoneMinder будет копировать кадры событий. Это особенно полезно, если компьютер, где установлен ZM, сам может пострадать от действий злоумышленников.

На главной панели управления ZM находится ссылка «Options», при нажатии на которую открывается конфигурационная панель. На рис. 2-4 будут приведены конфигуации всех трех пунктов, указанных выше.

Рисунок 2. Разрешение работы с удаленными камерами

Рисунок 2. Разрешение работы с удаленными камерами

Рисунок 3. Настройка адреса электронной почты, куда будут отсылаться сообщения о событиях. Здесь же можно поменять шаблоны сообщений

Рисунок 3. Настройка адреса электронной почты, куда будут отсылаться сообщения о событиях. Здесь же можно поменять шаблоны сообщений

Рисунок 4. Указание параметров удаленного сервера FTP

Рисунок 4. Указание параметров удаленного сервера FTP

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

Следующим нашим шагом будет добавление источников сигнала. ZM поддерживает 3 типа источника сигнала:

  1. Камеры с интерфейсом USB или платы захвата видеосигнала, совместимые с V4L (Video for Linux).
  2. Локальный файл. Многие камеры, в частности, Panasonic WV-NP244, могут сами копировать эпизоды видеопотока на сервер FTP (где обычно и устанавливается ZM). Тогда ZM использует локальный файл, который постоянно обновляется камерой по протоколу FTP.
  3. Файл или поток на удаленном веб-сервере (например, веб-камера).

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

Для добавления нового источника сигнала необходимо нажать на ссылку «Add New Monitor» и ввести параметры, описанные в таблице 2 и показанные на рис. 5

Таблица 2. Конфигурация источника сигнала

Параметр

Назначение

Name

Имя источника сигнала. Может быть, как и имя камеры, так и более осмысленное типа «Home», «Parking»

Source type

Тип источника сигнала

Function

Режим работы монитора. Пояснения приведены в таблице «Режимы работы мониторов»

Host name

Доменное имя  или IP-адрес используемой камеры. Если источник требует аутентификацию, то этот параметр может выглядеть, как username:password@ipa_address

Remote Host Path

Часть URL, следующая за доменным именем или IP-адресом

Таблица 3. Режимы работы мониторов

Режим

Пояснения

None

Выключен

Monitor

Доступен только просмотр в реальном времени

Modetect

Режим обнаружения движения. Записываются только фрагменты, на которых обнаружено движение

Record

Режим постоянной записи изображения

Mocord

Режим постоянной записи сигнала, причем в результирующих файлах выделяются области, в которых замечено движение

Рисунок 5. Конфигурация источника сигнала

Рисунок 5. Конфигурация источника сигнала

Замечание: на некоторых дистрибутивах Linux установлено ограничение на объем доступной разделяемой памяти ядра (Shared Memory), которую активно использует ZM. В дистрибутиве Debian значение по умолчанию равно 64 Мб. Создатель программы ZM рекомендует увеличить до 128 Мб:

echo 134217728 > /proc/sys/kernel/shmmax

Далее нужно повторить процесс добавления для всех камер, с которых мы хотим получать изображения. После того как все камеры добавлены, запускаем главную управляющую программу, которая запустит различные демоны, входящие в пакеты ZM, и затем будет контролировать их работу (например, перезапуск в случае «падения»):

zmpkg.pl start

Также необходимо создать скрипт, который бы запускал zmpkg.pl, и добавить его в процесс инициализации при запуске сервера. Для этого создаем файл /etc/init.d/webcam со следующим содержимым:

#! /bin/sh

export PATH="$PATH:/usr/sbin:/sbin: /usr/local/bin: /usr/local/sbin"

case "$1" in

  start)

        echo -n "Starting ZM"

        /usr/local/bin/zmpkg.pl start

        echo "."

        ;;

  stop)

        echo -n "Stopping ZM"

        /usr/local/bin/zmpkg.pl stop

        echo "."

        ;;

  *)

        echo "Usage: /etc/init.d/zm {start|stop}"

        exit 1

esac

exit 0

И добавляем этот скрипт в процесс инициализации операционной системы:

chkconfig webcam on

После запуска скрипта и обновления страницы панели управления ZM с помощью ссылки «Refresh» источники сигнала должны поменять цвет с красного (нет сигнала или данных) на зеленый (функционирует правильно), и вся панель управления может выглядеть следующим образом (см. рис. 6).

Рисунок 6. Главная панель управления ZM

Рисунок 6. Главная панель управления ZM

Из интересных возможностей панели можно отметить следующие:

  • при нажатии на ссылку с именем камеры можно просмотреть события, происходящие перед камерой в реальном времени;
  • при нажатии на ссылки в колонке «Events» можно просмотреть записанные кадры, когда ZM обнаружил движение в поле видения камеры;
  • при нажатии на ссылку «Montage» откроется окно с всеми нашими камерами.

Обработка событий

Событие в концепции ZM – изменение состояния подсистем и детекторов. Например, обнаружение движения анализатором движения, отключение камеры, окончание дискового пространства и т. д.

ZM предоставляет инструменты для фильтрации событий и выполнения определенных операций, если условия фильтра подходят для какого-либо события:

  • сравнение настоящего времени с заданным;
  • имя камеры совпадает с указанным именем;
  • количество кадров при обнаружении движения;
  • окончание дискового пространства.

Все эти условия можно комбинировать по условиям «и/или», что дает возможность создавать обработчики событий практически на все случаи жизни.

Операции, которые могут выполняться при выполнении условий какого-либо фильтра, могут включать в себя:

  • архивацию эпизодов;
  • копирование кадров события на внешний сервер FTP;
  • отправку подробностей события на адрес электронной почты;
  • выполнение внешней программы;
  • удаление записи о событии (например, после копирования на внешний FTP-сервер).

Приведу пример создания типичного фильтра. Для этого необходимо нажать на ссылку «Filters» в главной панели ZM, затем перейти по ссылке «Show filter window», после чего откроется окно, как показано на рис. 7.

Рисунок 7. Создание фильтра

Рисунок 7. Создание фильтра

Данный фильтр будет срабатывать, если количество кадров в каком-то событии больше, чем один, и имя монитора – «Panasonic». После срабатывания этого фильтра ZoneMinder скопирует кадры, на которых было обнаружено движение, в архив и на внешний сервер FTP, отправит предупреждение по электронной почте, выполнит команду «/usr/bin/alarm-911.pl» и удалит запись об этом событии из списка событий на главной панели управления ZM. Для включения/выключения множественных условий нужно использовать символы «+» и «-» на правой стороне страницы.

После этого сохраняем фильтр, не забывая включить его в режим «Run filter in background» (см. рис. 8).

Рисунок 8. Сохранение фильтра

Рисунок 8. Сохранение фильтра

ZM по умолчанию перечитывает фильтры каждые 5 минут и запускает их каждую минуту. Пройдемся перед камерой и подождем 6 минут. Если все фильтры правильно настроены, то в файле /tmp/zmfilter.log можно обнаружить такие строчки:

Checking event 2380

Archiving event 2380

Creating upload file '/tmp/Panasonic-2380.tar.gz'

Uploading to 192.168.10.99

Sleeping for 60 seconds

Reloading filters

Sleeping for 60 seconds

Sleeping for 60 seconds

Sleeping for 60 seconds

Рекомендуется создать фильтр, который бы очищал дисковое пространство, если заполнение достигло определенного уровня. Для этого создадим новый фильтр и укажем, что нужно удалить все записи о событиях, если заполнение диска превысило 60%.

Разграничение прав учетных записей пользователей

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

По умолчанию ZM – однопользовательская система, и перед началом добавления новых учетных записей необходимо включить опцию «Authenticate user logins to ZoneMinder» на конфигурационной панели, в подразделе «System». После этого надо зарегистрироваться в системе как суперпользователь «admin» с паролем по умолчанию «admin», в результате чего в конфигурационной панели появится еще один подраздел «Users» для управления учетными записями. Я не буду заострять внимание на этом стандартном списке, а сразу перейду к описанию свойств учетных записей.

После нажатия на ссылку «Add new user» появится окно (см. рис. 9).

Рисунок 9. Добавление новой учетной записи

Рисунок 9. Добавление новой учетной записи

Каждая учетная запись состоит из стандартных полей вроде имени, пароля и т. д., а также набора привилегий (см. таблицу 4).

Таблица 4. Набор привилегий учетной записи

Привилегия

Пояснения

Возможные уровни доступа

Stream

Разрешает/запрещает просмотр потока с камер

Разрешено

Запрещено

Events

Доступ к просмотру событий

Запрещено

Обзор

Редактирование

Control

Управление камерами (для камер, поддерживающих команды поворотов)

Запрещено

Обзор

Управление

Monitor

Модификация камер (источник сигнала, тип мониторинга и т. д.)

Запрещено

Обзор

Редактирование

System

Модификация системных параметров

Запрещено

Обзор

Редактирование

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

Ограничение области слежения

Бывают ситуации, при которых необходимо наблюдать, что происходит на охраняемом объекте, но при этом ограничить область, анализируемую с помощью детекторов движения. Например, поле обзора камеры захватывает дорогу и саму автомашину, но система должна реагировать, если обнаружено движение только возле охраняемого объекта (машины).

ZoneMinder предоставляет великолепные средства для  задания множественных областей в поле зрения камеры, в которых и происходит анализ движения.

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

По умолчанию существует только одна зона, равная всему полю зрения камеры (которую необходимо удалить, если указаны более специфичные зоны).

После нажатия на ссылку «Add zone» появится удобная панель для задания четырехугольной области (см. рис. 10).

Рисунок 10. Задание контролируемой зоны

Рисунок 10. Задание контролируемой зоны

Принцип работы таков:

С помощью мышки выбирается одна из точек прямоугольной области в поле ввода координат этой точки. Верхние две точки – «1» и «2» слева направо, нижние две – «4» и «3». Да, цифры «4» и «3» местами не перепутаны. После этого мышка наводится на новые предполагаемые точки и нажимается левая кнопка мышки. Таким же образом перемещаются оставшиеся 3 точки.

Контролируемая область автоматически помечается зеленым цветом. На этом примере анализаторы движения работают только по левой стороне кадра. Можно задать несколько зон для каждой камеры, комбинация которых и создаст очень точную область, в которой будут обнаруживаться движения.

Заключение

Данная статья описывает процедуру создания базовой системы слежения. За рамками статьи остались такие интересные возможности, как: взаимодействие с другими компонентами концепта «Электронный дом» по протоколу X10; привязка детекторов движения к определенным областям.

  1. http://cowboyfrank.net/webcams/LightCompairsons.htm.
  2. http://www.ipcamerademos.com/ip_cameras_demos.aspx?cat=1.
  3. http://zoneminder.com.

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


Комментарии отсутствуют

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

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru