В Macroscop версий 3.4–3.6 для хранения событий модуля Поиск объектов требуется СУБД PostgreSQL версии 11. Для всех остальных событий и модулей используется СУБД Firebird.
PostgreSQL не устанавливается автоматически в процессе установки компонентов Macroscop, в связи с чем необходимо выполнять установку требуемой версии СУБД самостоятельно перед установкой приложения Macroscop Сервер.
Ниже представлены примеры инструкций по ручной установке PostgreSQL 11 на Linux.
Вариант 1. При наличии на сервере доступа в интернет.
Astra Linux/Debian/Ubuntu:
-
Добавьте файловый репозиторий PostgreSQL в конфигурацию ОС:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
-
Загрузите ключ подписи репозитория:
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
-
Обновите список пакетов:
sudo apt-get update
-
Установите PostgreSQL требуемой версии:
sudo apt-get -y install postgresql-11
CentOS 7:
-
Добавьте файловый репозиторий PostgreSQL в конфигурацию ОС:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
-
Установите PostgreSQL требуемой версии:
sudo yum install -y postgresql11-server
Вариант 2. При отсутствии на сервере доступа в интернет.
Astra Linux/Debian/Ubuntu:
- Скачайте с помощью устройства, на котором есть доступ в интернет, установочный пакет PostgreSQL требуемой версии и его зависимости из официального репозитория PostgreSQL.
- Перенесите скачанные пакеты на сервер Macroscop.
- Установите пакеты с помощью команды dpkg с ключом -i.
CentOS 7:
- Скачайте с помощью устройства, на котором есть доступ в интернет, установочный пакет PostgreSQL требуемой версии и его зависимости из официального репозитория PostgreSQL.
- Перенесите скачанные пакеты на сервер Macroscop.
- Установите пакеты с помощью команды rpm с ключом -i.
Ввиду того, что данное нововведение не предоставляет для пользователей новых возможностей с точки зрения использования Macroscop, использование СУБД PostgreSQL не требует дополнительных настроек, отличных от уже существующих настроек записи событий в базу. Для того чтобы начать запись в БД системы:
- Откройте приложение Macroscop Конфигуратор и перейдите на страницу Серверы.
- Выберите сервер в списке.
- В правой части окна перейдите на вкладку Информация и нажмите кнопку Настроить.
- Выберите в открывшемся окне вкладку Архив и задайте для одного из доступных в системе дисков состояние Архив + БД или просто Только БД.
- Сохраните настройки.
Дополнительная настройка PostgreSQL может потребоваться, если в системе используются удалённые базы данных для модулей Распознавание лиц или Распознавание автомобильных номеров.
В случаях, когда использование стандартного пароля пользователя СУБД не соответствует требованиям безопасности, допустимо изменить пароль для соединения между Macroscop и PostgreSQL на собственный.
Указанные ниже действия должны выполняться непосредственно на сервере, для которого вносятся изменения.
-
Остановите работу Macroscop. Сделать это можно с помощью команды:
systemctl stop macroscop.service
-
С помощью утилиты psql задайте новый пароль для пользователя macroscop. Запустите утилиту, выполнив в Терминале команду:
psql -U macroscop -h 127.0.0.1 -d postgres
- Введите текущий пароль для подтверждения входа (По умолчанию: masterkey).
-
Измените пароль командой
ALTER USER CURRENT_USER PASSWORD 'newPassword';
где newPassword — это новый пароль для пользователя macroscop.
- Перейдите в директорию /opt/MacroscopServer/MacroscopServerConfigs/, после чего откройте в любом текстовом редакторе конфигурационный файл ArchiveSystem.xml.
-
Найдите в этом файле секцию PostgreSqlConfig и внесите данные пользователя в строки User и Password.
Ниже приведён пример таких настроек:
<PostgreSqlConfig> <Ip>127.0.0.1</Ip> <Port>5432</Port> <User>postgres</User> <Password>newPassword</Password> </PostgreSqlConfig>
- Для того чтобы система могла автоматически создавать резервные копии файлов БД, убедитесь, что данные выбранного пользователя внесены в файл паролей самой СУБД. Для этого перейдите в домашнюю директорию пользователя и откройте в любом текстовом редакторе файл .pgpass. Проверьте, что использованные имя пользователя и пароль имеют право на доступ к базам данных Macroscop.
-
Возобновите работу Macroscop. Сделать это можно путём выполнения в Терминале следующей команды:
systemctl start macroscop.service
Если в системе используются модули Распознавание лиц или Распознавание автомобильных номеров, изменение пользователя СУБД окажет влияние в том числе и на их базы.
Если используется Локальная база данных, Macroscop будет использовать для доступа к базе имя и пароль, указанные в файле ArchiveSystem.xml.
Если используется Удаленная база данных, изменение учётных данных PostgreSQL на хранящем базу данных сервере потребует внесения новых имени и пароля в настройки всех камер, использующих эту базу.
Пример:
Сервер 1 содержит базу лиц.
Сервер 2 имеет ряд камер, использующих базу лиц с Сервера 1.
Изменение пользователя СУБД на Сервере 2 не окажет влияния на доступ к базе лиц на Сервере 1.
Изменение пользователя СУБД на Сервере 1 потребует внесения новых данных в настройки всех камер на Сервере 2, использующих базу лиц.
PostgreSQL не разрешает удалённый доступ к базам по умолчанию, в связи с чем его необходимо включить вручную при использовании удалённых баз данных.
Указанные ниже действия выполняются на сервере, хранящем базу данных модуля.
-
Откройте директорию с конфигурационными файлами PostgreSQL.
Путь для Astra Linux/Debian/Ubuntu:
/etc/postgresql/12/main/
Путь для CentOS 7:
/var/lib/pgsql/12/data/
-
В текстовом редакторе откройте файл postgresql.conf и добавьте в него строку вида:
listen_addresses = '*'
Указанный пример разрешает получать запросы через все доступные сетевые адаптеры сервера. При необходимости ограничить список адаптеров, разрешённых для приёма запросов к базам данных, замените символ * на точный адрес сетевого адаптера. Подробную информацию о настройке можно получить в документации к PostgreSQL 12.
-
В текстовом редакторе откройте файл pg_hba.conf и добавьте в него строку вида:
host all all 192.168.0.0/24 md5
Указанный пример разрешает удалённое подключение ко всем базам, хранящимся на сервере, для всех пользователей, обращающихся с адресов диапазона 192.168.0.XXX. В случае, если в сети системы применяется иная адресация, необходимо указать соответствующий диапазон адресов. Допускается внесение нескольких строк с разными диапазонами адресов. Подробную информацию о настройке можно получить в документации к PostgreSQL 12.
-
Перезапустите службу, выполнив в Терминале команду:
sudo systemctl restart postgresql-12.service
Несмотря на то, что PostgreSQL используется компонентами Macroscop Сервера, простое удаление пакета Macroscop не влечёт за собой автоматическое удаление пакета PostgreSQL.
Частичное удаление
При необходимости удалить установленную версию PostgreSQL вместе с Macroscop с сохранением настроек можно выполнением следующей команды:
Astra Linux/Debian/Ubuntu:
sudo apt-get --purge remove postgresql postgresql-* sudo apt-get autoremove macroscop
CentOS 7:
sudo yum remove postgresql* autoremove macroscop
Удаление PostgreSQL этим способом не влечёт за собой автоматическое удаление её настроек. При повторной установке СУБД на тот же компьютер, PostgreSQL задействует настройки из прежних конфигурационных файлов.
Полное удаление
При необходимости полностью удалить установленную версию PostgreSQL можно с помощью следующей последовательности команд:
Astra Linux/Debian/Ubuntu:
sudo apt-get --purge remove postgresql\*
sudo apt-get purge postgresql
sudo apt-get autoremove postgresql
sudo rm -r /etc/postgresql/
sudo rm -r /etc/postgresql-common/
sudo rm -r /var/lib/postgresql/
sudo userdel -r postgres
sudo groupdel postgres
CentOS 7:
sudo yum --purge remove postgresql\*
sudo yum purge postgresql
sudo yum autoremove postgresql
sudo rm -r /etc/postgresql/
sudo rm -r /etc/postgresql-common/
sudo rm -r /var/lib/postgresql/
sudo userdel -r postgres
sudo groupdel postgres