Установка ZoneMinder в Ubuntu
Видеонаблюдение – важная составляющая безопасности. Камеры устанавливаются в квартирах и общих коридорах, на дачах и в гаражах. Руководство компании следит за сотрудниками, охрана – за посетителями. В присмотре нуждаются пожилые родственники и маленькие дети. Простого вывода картинки недостаточно – сидеть перед монитором всё время никто не сможет. Нужна система, которая проанализирует видеопоток, сделает скриншоты и уведомит хозяев о нарушении периметра.
Промышленные модули стоят огромных денег, однако сообщество открытого ПО предлагает собственные бесплатные альтернативы, например, программу ZoneMinder. В этой статье мы рассмотрим как выполняется установка ZoneMinder Ubuntu 18.04.
Как установить ZoneMinder в Ubuntu
Первым делом в свежеустановленной операционке необходимо установить стандартный стек веб-сервера LAMP. Подробно останавливаться на этом процессе мы не будем, на сайте этому посвящена отдельная статья. Для того, чтобы получить самую свежую версию ZoneMinder, следует подключить персональный архив разработчиков PPA с помощью команды:
sudo add-apt-repository ppa:iconnor/zoneminder-1.34
Здесь 1.34 – номер текущей версии программы. Чтобы не вводить команду sudo перед всеми следующими командами, рекомендуем выполнить в консоли команду:
Все последующие инструкции в консоли будут выполняться от имени суперпользователя.
Итак, репозиторий добавлен. Теперь необходимо обновить список пакетов и саму операционную систему:
Затем можно запустить установщик:
apt-get install zoneminder
В свежеустановленной операционной системе потребуется установить почти 200 пакетов, поэтому процесс займёт некоторое время. После установки ZoneMinder требуется настроить для пользователя www-data права для доступа к конфигурации:
chmod 740 /etc/zm/zm.conf
chown root:www-data /etc/zm/zm.conf
Далее следует разрешить доступ к каталогу с файлами ZoneMinder:
chown -R www-data:www-data /usr/share/zoneminder/
Затем настроить Apache, подключить к ядру веб-сервера модули с помощью команды:
a2enmod cgi
a2enmod rewrite
После этого добавить настройки с помощью команды:
Для повышения скорости кэширования рекомендуется также активировать модули expires и headers:
Прежде, чем последовать настойчивым просьбам Apache о перезапуске, надо активировать и запустить ZoneMinder с помощью команд:
systemctl enable zoneminder
systemctl start zoneminder
Команда start отрабатывает без сообщений, поэтому можно проверить состояние сервиса, выполнив команду:
systemctl status zoneminder
На экране появятся строки, говорящие о том, что система видеонаблюдения ZoneMinder активна.
Осталось установить правильную временную зону для php. Открываем нужный нам файл в редакторе Nano с помощью команды:
Затем нажимаем сочетание клавиш Ctrl-W, в белом поле вводим слово Date, нажимаем клавишу Enter. Переходим таким образом в секцию [Date]. Убираем символ «;» перед строкой date.timezone и прописываем нашу временную зону. Для Москвы это Europe/Moscow. В результате содержимое файла должно выглядеть как на скриншоте:
Для выхода из редактора нажимаем сочетание клавиш Ctrl-X, подтвердив сохранение отредактированного нами файла php.ini. Вот теперь можно перезапустить веб-сервер с помощью команды:
systemcltl reload apache2
Установка ZoneMinder Ubuntu Server завершена. Наконец-то мы можем посмотреть на результаты своих трудов. Запускаем браузер, выполняем переход по адресу веб-сервера, в нашем случае это http://localhost/zm. В открывшемся окне соглашаемся с тем, что программа будет собирать данные, и далее попадаем в консоль ZoneMinder:
Настройка ZoneMinder
Первое, что желательно сделать, это поставить пароль на вход. Если сервер развёрнут в публичной сети, это обязательно. Выбираем пункт Options в строке меню и переходим по ссылке System на левой панели.
В открывшемся окне устанавливаем флажок напротив OPT_USE_AUTH и сохраняем конфигурацию с помощью кнопки Save в правом нижнем углу страницы. Если обновить страницу с помощью клавиши F5, будет выполнен сразу же переход к форме авторизации. По умолчанию установлено: логин: admin, пароль: admin. Сменить это можно выбрав в левой панели ссылку Users.
Большинство реальных камер будут подключаться по сети. Для пробы используем старый смартфон с установленной программой IP Webcam.
Для подключения камеры к ZoneMinder Ubuntu нажмём в главном меню кнопку ADD, откроется окно с интерфейсом добавления камеры.
На закладке General заполним поля Source Type = Remote и Function = Monitor (режим просмотра). Затем переходим на вкладку Source и устанавливаем значения параметров так, как показано на скриншоте:
- Protocol = HTTP (если на смартфоне выбран этот протокол);
- Method = Simple;
- Host Name = 192.168.0.184 (это адрес смартфона с камерой);
- Port = 8080 (как в настройках смартфона);
- Path = /video;
- Capture Resolution (pixels) = 320×240 (должно соответствовать потоку с камеры).
Для сохранения настроек нажимаем кнопку SAVE. Программа возвращает нас к списку камер. Если поток подсоединился, название камеры и адрес будут зелёного цвета, если нет — красного. Ошибки подключения можно посмотреть в меню Log.
Начать просмотр изображения с камеры можно кликнув мышкой по названию камеры. Откроется окно просмотра.
В окне доступно масштабирование, запуск трансляции, тестирование событий. На этом базовая настройка ZoneMinder закончена.
Выводы
Рассмотренная нами установка ZoneMinder Ubuntu 18.04 показала, что организация видеонаблюдения – это не сложно. При этом программный комплекс с большими возможностями может быть и бесплатным тоже, а его мощь и удобство – в гибких настройках.
Встроенный модуль для веб-сервера принимает потоки видео с любых локальных или сетевых камер, анализирует кадры в поисках событий для дневной и ночной съёмок, информирует пользователей о событиях и прочем. Управляется видеонаблюдение с помощью браузера или мобильного приложения, данные сохраняются в локальную базу. Подходит для построения систем наблюдения любых масштабов – от гаража до предприятия.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
📑 Установка ZoneMinder на Ubuntu 22.04 (Linux Mint 21) и nginx
В данной статье приводится прцесс установки пакета ZoneMinder — на сегодняшний день (по нашему мнению) лучшего бесплатного комплексного решения для камер видеонаблюдения с открытым исходным кодом для Linux и распространяемого с лицензией GPL.
Коммерческие «системы безопасности» часто разрабатываются как системы мониторинга, при этом мало внимания уделяется качеству записи. В такой системе поиск и экспорт соответствующего видео может быть сложной задачей и часто требует значительного вмешательства человека. ZoneMinder был разработан для обеспечения наилучшего качества записи, позволяя легко искать, фильтровать и экспортировать кадры с камер наблюдения.
ZoneMinder разработан на основе ряда независимых компонентов, которые функционируют только тогда, когда это необходимо, ограничивая любые потери ресурсов и максимально повышая эффективность вашей машины. К устаревшему ПК с процессором Pentium II может быть подключено несколько записывающих устройств, и он способен отслеживать одну камеру на устройство со скоростью до 25 кадров в секунду, что снижается примерно вдвое для каждой дополнительной камеры на том же устройстве. Дополнительные камеры на устройствах, которые не взаимодействуют с другими устройствами, могут поддерживать частоту кадров 25 в секунду. Мониторинг нескольких камер не будет перегружать ЦП, поскольку обработка кадров синхронизируется с захватом.
Начните с базовой установки Ubuntu 22.04. Вы можете использовать серверную или настольную установку. Не устанавливайте LAMP.
Установите компоненты Nginx, Mariadb и PHP:
$ sudo apt install nginx mariadb-server php-fpm php-mysql fcgiwrap
Подправим безопасность Mariadb:
$ sudo mysql_secure_installation
и перезагрузим сервер Mariadb:
$ sudo systemctl restart mysql
Правим файл php.ini (Если у вас версия PHP отличная от 8.1 — подправьте номер версии!)
$ sudo nano /etc/php/8.1/fpm/php.ini
Найдите (Ctrl+w) cgi.fix_pathinfo=1 и замените на
Не забудьте удалить ; в начале строки!
Ctrl+o Enter для сохранения
$ sudo systemctl restart php8.1-fpm
ПРИМЕЧАНИЕ. Возможно, вам придется запустить: «apt install software-properties-common», если вы выполнили минимальную сетевую установку Ubuntu.
$ sudo add-apt-repository ppa:iconnor/zoneminder-1.35
На момент написания самая свежая стабильная версия — 1.35
$ sudo apt install zoneminder
$ sudo adduser www-data video
Меняем ZM_PATH_ZMS в файле 01-system-paths.conf на /cgi-bin/nph-zms, удалив /zm/
$ sudo nano /etc/zm/conf.d/01-system-paths.conf
Включаем и запускаем Zoneminder
$ sudo systemctl enable zoneminder $ sudo service zoneminder start
Отредактируем конфигурацию Ngnix по умолчанию.
$ sudo nano /etc/nginx/sites-available/default
Найдите строку «index index.html index.htm index.nginx-debian.html;» и добавьте index.php
index index.php index.html index.htm index.nginx-debian.html;
В разделе «сервер» после listen [::] :80 default_Server; добавить
include /etc/nginx/zoneminder.conf;
Создадим конфигурационный файл Zoneminder — /etc/nginx/zoneminder.conf
$ sudo nano /etc/nginx/zoneminder.conf
Введите следующее в файл zoneminder.conf. Измените «php8.1-fpm.sock» на вашу версию PHP.
location /cgi-bin < auth_basic off; alias /usr/lib/zoneminder/cgi-bin; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param HTTP_PROXY ""; fastcgi_pass unix:/var/run/fcgiwrap.socket; >location /zm/cache < auth_basic off; alias /var/cache/zoneminder/cache; >location ~ /zm/api/(css|img|ico) < auth_basic off; rewrite ^/zm/api(.+)$ /api/app/webroot/$1 break; try_files $uri $uri/ =404; >location /zm < auth_basic off; alias /usr/share/zoneminder/www; try_files $uri $uri/ /index.php?$args =404; location /zm/api < auth_basic off; rewrite ^/zm/api(.+)$ /zm/api/app/webroot/index.php?p=$1 last; >location ~ .php$ < auth_basic off; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; fastcgi_param HTTP_PROXY ""; fastcgi_index index.php; fastcgi_pass unix:/var/run/php/php8.8-fpm.sock; >>
Сохраняемся и перегружаем nginx
$ sudo service nginx restart
Создайте или отредактируйте fcgiwrap:
$ sudo nano /etc/default/fcgiwrap
и вставьте (количество дочерних элементов -c равно или больше количества камер)
Сохраняемся и перезагружаем сервис fcgiwrap
$ sudo systemctl restart fcgiwrap
Zoneminder установлен. Теперь можно работать с Zoneminder через web-интерфейс. По умолчанию вбиваем в брозере
где 192.168.0.133 нужно поменять на адрес вашего сервера Zoneminder или на localhost, если локально.
- Методы монтирования дисков в Linux
- Введение в диспетчер логических томов (LVM)
- Локальное туннелирование с помощью SSH: несколько примеров
- Альтернативы SSH, которые в некоторых случаях лучше оригинала
- Полный набор лучших и современных консольных программ для Linux
- Установка ZoneMinder на Ubuntu 22.04 (Linux Mint 21) и nginx
- Устанавливаем GIMP в Ubuntu 22.04 (Linux Mint 21)
- Устанавливаем qBittorrent в Linux Ubuntu/Mint
- Исправляем ошибку — network unreachable resolving ‘./NS/IN’: 2001:503:c27::2:30#53
- Установка remmina из ppa в Ubuntu 22.04 или Mint 21
- Исправляем: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg)
- Что такое зомби-процесс в Linux?
- Хитрости командной строки Bash, которые помогут вам работать быстрее
- Команда ls в Linux — подробно и с примерами
- Команда mkdir в Linux — подробно и с примерами
- Список непечатаемых символов Linux, MacOS или Windows
- Команда chmod в Linux — подробно и с примерами
- Команда cat и примеры её использования в Linux
- Как установить приложение Yarock Music Player
- Запуск нескольких команд Linux одной составной командой
- Файловый менеджер nnn
- Версия системы и версия ядра Ubuntu/Mint
- Запуск команд на удаленном сервере через SSH
- Цветовые схемы и внешний вид MC (midnight commander)
- Переключение кодировок в MC
- Шпаргалка по горячим клавишам для файловых панелей MC (midnight commander)
- Ошибка NO_PUBKEY. Как найти GPG-ключ и добавить его в базу apt системы Ubuntu
- Установка драйвера wifi Asus wl-167g v3 (rtl8192) для Ubuntu 16.04 и 18.04
- Как настроить wifi из командной строки в Ubuntu
- Изменение имени сетевого интерфейса в Ununtu/Mint
- nmon — удобный инструмент для мониторинга Linux систем
- Ошибка: 502 bad gateway — connect() to unix:/run/php/php-fpm.sock failed (11: Resource temporarily unavailable)
- Команда history или работа с историей введенных команд
- Шпаргалка по архиватору 7z (7-Zip) в Linux Ubuntu/Mint
- Преобразование видео от 1080p до 720p с наименьшими потерями с использованием ffmpeg
- Как посмотреть все доступные шрифты в терминале (CLI)?
- Команда id — найти UID пользователя или GID
- Лучшие рекомендации по повышению безопасности для серверов OpenSSH
- Разрешения файлов директории .SSH
- Настройка Nginx FastCGI Cache для сокращения времени отклика сервера WordPress
- Как получить реальный IP-адрес пользователя в nginx за обратным прокси-сервером nginx
- Чем отличается прямой прокси от обратного прокси
- Руководство по iptables (Iptables Tutorial 1.1.19)
- Настройка автозапуска скриптов в Linux Ubuntu/Mint
- Устанавливаем оболочку bash про умолчанию
- SOCS5 прокси сервер DANTE — установка и настройка
- Сервис online настройки параметров сервера nginx
- nmblookup — аналог команды Windows nbtstat для Linux.
- Inxi — программа вывода информации о системе и железе в Linux
- dnstop — мониторинг и анализатор DNS-трафика