Нужно получить несколько независимых систем AVReg на одном видеосервере со следующими характеристиками:
Далее по тексту, такие независимые системы, будут называться учётными записями или профилями.
Такая конфигурация может быть востребована для:
В силу многих ограничений (большинство из них становиться понятным для специалистов далее), название учётной записи не может быть совершенно произвольным:
Примеры (имена заключены в кавычки):
Исходя их требований нашей задачи (см. выше) необходимо создание баз данных для каждой учётной записи.
При установке пакета avreg-common, автоматически создаётся база данных именем «avreg5_db». Это база для однопрофильной системы AVReg и идеологически не верно использовать её для одной из учётных записей. Её можно удалить, переименовать или использовать для создания новых баз учётных записей. Это очень удобно и легко делается в веб-интерфейсе пакета PhpMyAdmin «Операции» → «Скопировать БД в».
Если вы выбрали путь истинных джедаев, то для «консольного» способа создания баз вам понадобиться интерпретатор mysql и 3 шаблонных SQL файла, расположенных в каталоге «/usr/share/doc/avreg-common/sql»:
# переходим в каталог с sql-файлами $ cd /usr/share/doc/avreg-common/sql/ # запускаем интерпретатор sql и далее уже работаем в нём # для выхода наберите quit или exit $ mysql -u root -p****** Your MySQL connection id is 24 Server version: 5.0.32-Debian_7etch5-log Debian etch distribution Type 'help;' or '\h' for help. Type '\c' to clear the buffer. mysql> mysql> SET NAMES 'utf8' COLLATE 'utf8_general_ci'; # удаляем базу по-умолчанию DROP DATABASE avreg5_db; # cоздаём базу, например avreg5_db-sklad mysql> CREATE DATABASE `avreg5_db-sklad` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; # "переходим" на неё mysql> USE `avreg5_db-sklad`; Database changed # cоздаём таблицы: mysql> source create_tables.sql # проверяем mysql> SHOW TABLES; +---------------------------+ | Tables_in_avreg5_db-sklad | +---------------------------+ | CAMERAS | | EVENTS | | MONITORS | | USERS | +---------------------------+ 4 rows in set (0.00 sec) # наполняем шаблонными данными: mysql> source data_template.sql Query OK, 0 rows affected (0.00 sec) ...
Начиная с «CREATE DATABASE…» нужно повторить для каждой учётной записи.
Прим: в интерпретаторе mysql можно прокручивать историю команд стрелками, также как и в shell.
# проверяем все ли базы созданы и их имена mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | avreg5_db-office | | avreg5_db-sklad | | mysql | +--------------------+ # и выходим из интерпретатора mysql mysql> quit; Bye
# создаём каталоги
$ sudo mkdir /var/spool/avreg/{sklad,office}
# устанавливаем для группы avreg полный доступ в эти каталоги
$ sudo chmod g=rwx /var/spool/avreg/{sklad,office}
$ ls -l /var/spool/avreg
drwxrwxr-x 2 root avreg 4096 2008-02-16 18:43 office
drwxrwxr-x 2 root avreg 4096 2008-02-16 18:43 sklad
Если владельцы учётных записей представляют собой различные организации, ИП или физ. лица во избежание проблем совместного использования архива на одном дисковом устройстве (файловой системы) настоятельно рекомендуется смонтировать каталоги sklad и office на отдельные разделы или дисковые устройства.
Для таких многопрофильных систем удобнее всего использовать системы LVM2/EVMS. Напомним, что обеспечения производительности архива, файловая система должна быть XFS (прим: её можно только расширять).
См. также замечания по чистильщику архива (ниже).
Первое что нужно сделать удалить (в крайнем случае закомментировать) в глобальном файла конфигурации «/etc/avreg/avreg.conf» все частные параметры и обязательно вот эти:
Затем, в каталоге профилей «/etc/avreg/profiles» создаём дополнительные конфигурационные файлы (далее - профили) с именами учётных записей.
Например:
$ cd /etc/avreg/profiles $ ls -l [A-Za-z0-9]* -rw-r--r-- 1 root root 167 2008-02-16 17:56 office -rw-r--r-- 1 root root 170 2008-02-16 17:56 sklad
$ cat office
# Профиль для учётной записи
# office - центральный офис
db-name = 'avreg5_db-office'
storage-dir = '/var/spool/avreg/office'
avregd {
# cpu = 0
}
$ cat sklad
# Профиль для учётной записи
# sklad - складские помещения
db-name = 'avreg5_db-sklad'
storage-dir = '/var/spool/avreg/sklad'
avregd {
# cpu = 1
}
Напомним, наша задача - получить вход в веб-интерфейс AVReg для учётных записей по адресам:
http://‹имя-или-ip-адрес-сервера›/‹название-учётной-записи›
Для этого в пользовательском конфигурационном файле веб-сервера Apache «/etc/avreg/site-apache2-user.conf» нужно указать следующие директивы Alias, по 2 на каждую учётную запись.
Например, продолжая для двухпрофильной AVReg office и sklad:
% cat site-apache2-user.conf
### User-level apache's config addons ### for "office" profile's access http://ip_or_name/office/ Alias '/office/media' '/var/spool/avreg/office' Alias '/office' '/usr/share/avreg-site' ### for 'sklad' profile's access http://ip_or_name/sklad/ Alias '/sklad/media' '/var/spool/avreg/sklad' Alias '/sklad' '/usr/share/avreg-site'
И заставить демон Apache перечитать(обновить) конфигурацию:
$ sudo apache2ctl -k graceful # или $ sudo /etc/init.d/apache2 reload
Заходим браузером по адресам
http://‹имя-или-ip-адрес-сервера›/‹название-учётной-записи›
и настраиваем каждую систему AVReg по очереди.
По-умолчанию, доступ открыт 4-м пользователям, представителям каждой их 4-х групп доступа: install, admin, arch, operator с пустыми паролями.
скриншот
В веб-интерфейсе AVReg, как минимум, нужно определить:
По умолчанию, в конфигурационной базе будет определены 4 аналоговые камеры.
скриншот
Если у вас иная конфигурация, то удалите их и создайте новые. Про настройки камер читать тут:
Запустите демон(ы) avregd вручную
$ sudo /etc/init.d/avreg start Starting AVReg surveillance system server: avregd-office[12941] started; avregd-sklad[12966] started; .
В моменты загрузки и остановки системы (компьютера) демоны avregd запускаются и останавливаются автоматически из сценария системы SysV Init «/etc/init.d/avreg».
Другие детали по управлению «профильными» avregd см. avreg-smp.
Если корневые каталоги архивов учётных записей находятся на одном дисковом разделе (более точно блочном устройстве) и не предпринять специальных настроек чистильщика avreg-unlink, дисковое пространство 100% будет заполнено через некоторое время и запись на диск _всех_ профилей остановится.
Эта неприятность обязательно случится, так как после удаления файлов и записей в базе _первого_ профиля, avreg-unlink закончит работу, потому что свободное место на устройстве окажется достаточным. То есть, удаляться будут записи только первой учётной записи(профиля), а другие профили будут только заполнять диск.
Как избежать такой ситуации:
Для простоты понимания рассмотрим на том же примере с двумя учётными записями: office и sklad. Предположим, что в профиле office 5 камер и интенсивность записи 2ГB/час, а в профиле 10 камер с интенсивностью записи 5ГБ/час. Дисковый раздел /dev/sdb1 смонтирован на /var/spool/avreg и стало быть оба корневых каталога профилей:
физически расположены на одном дисковом разделе sdb1 и разделяют его ёмкость. Размер дискового раздела sdb1 составляет 500ГБ.
Общая интенсивность записи составляет 7ГБ/час.
Минимальный размер оставшегося свободного дискового пространства, при котором начинается процесс очистки ставим равным 5-ти часовому запасу start-space = 5 х 7ГБ/час = 35 ~ 40G
Удалять будем за раз записей за 3 часа = 3 х 7ГБ/час = 21 ~ 30GB. Раскидываем 30GB согласно интенсивности записи по профилям: office ~ 10GB sklad ~ 20GB
$ cat /etc/avreg/profiles/office
# Настройки(профиль) учётной записи «office» - центральный офис
db-name = 'avreg5_db-office'
storage-dir = '/var/spool/avreg/office'
avreg-unlink {
# доп. настройки для профиля office,
# так как он отрабатывается первым
# Минимальный размер оставшегося свободного дискового пространства
# в ГигаБайтах при котором начинается процесс очистки.
start-space = 40
# Минимальный размер оставшегося свободного дискового пространства
# в ГигаБайтах при котором заканчивается процесс очистки.
# start-space + 10G
end-space = 50
}
$ cat /etc/avreg/profiles/sklad
# Настройки(профиль) учётной записи «sklad» - складские помещения
db-name = 'avreg5_db-sklad'
storage-dir = '/var/spool/avreg/sklad'
avreg-unlink {
# доп. настройки для профиля sklad,
# он отрабатывается вторым
# !!! одинаков для всех профилей
start-space = 40
# Минимальный размер оставшегося свободного дискового пространства
# в ГигаБайтах при котором заканчивается процесс очистки.
# start-space + 10G(от профиля office) + 20G
end-space = 70
}
Локальный вьювер avreg-mon может (сейчас) отображать камеры только одной учётной записи (базы данных) Поэтому для экономии ресурсов сервера, в настройках «Для всех видеокамер» других учётных записей (а может и всех) выключите опцию monitor_live.