Использование PostgreSQL на Linux🔗

Для версий Macroscop 4.0 и выше установка PostgreSQL на Linux выполняется в автоматическом режиме при развёртывании Macroscop Сервер.

Для версий Macroscop 3.4-3.6 установка PostgreSQL на Linux выполняется исключительно в ручном режиме.

Примечание

При выполнения установки СУБД в ручном режиме рекомендуется следовать инструкциям для выбранного дистрибутива ОС с официального сайта PostgreSQL.

Установка и обновление PostgreSQL для Macroscop 3.4-3.6

В Macroscop версий 3.4–3.6 для хранения событий модуля Поиск объектов требуется СУБД PostgreSQL версии 11. Для всех остальных событий и модулей используется СУБД Firebird.

PostgreSQL не устанавливается автоматически в процессе установки компонентов Macroscop, в связи с чем необходимо выполнять установку требуемой версии СУБД самостоятельно перед установкой приложения Macroscop Сервер.

Ниже представлены примеры инструкций по ручной установке PostgreSQL 11 на Linux.

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

  • Онлайн, при его наличии

  • Офлайн, при его отсутствии

  1. Добавьте файловый репозиторий 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'
    
  2. Загрузите ключ подписи репозитория:

    wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
    
  3. Обновите список пакетов:

    sudo apt-get update
    
  4. Установите PostgreSQL требуемой версии:

    sudo apt-get -y install postgresql-11
    
  1. Скачайте с помощью устройства, на котором есть доступ в интернет, установочный пакет PostgreSQL требуемой версии и его зависимости из официального репозитория PostgreSQL.

  2. Перенесите скачанные пакеты на сервер Macroscop.

  3. Установите пакеты с помощью команды dpkg с ключом -i.

Настройка БД для записи событий

Ввиду того, что данное нововведение не предоставляет для пользователей новых возможностей с точки зрения использования Macroscop, использование СУБД PostgreSQL не требует дополнительных настроек, отличных от уже существующих настроек записи событий в базу. Для того чтобы начать запись в БД системы:

  1. Откройте приложение Macroscop Конфигуратор и перейдите на страницу Серверы.

  2. Выберите сервер в списке.

  3. В правой части окна перейдите на вкладку Информация и нажмите кнопку Настроить.

  4. Выберите в открывшемся окне вкладку Архив и задайте для одного из доступных в системе дисков состояние Архив + БД или просто Только БД.

  5. Сохраните настройки.

Предупреждение

Дополнительная настройка PostgreSQL может потребоваться, если в системе используются удалённые базы данных для модулей Распознавание лиц или Распознавание автомобильных номеров. Подробности описаны в секции "Базы данных модулей аналитики".

Смена пароля для пользователя по умолчанию

В случаях, когда использование стандартного пароля пользователя СУБД не соответствует требованиям безопасности, допустимо изменить пароль для соединения между Macroscop и PostgreSQL на собственный.

Предупреждение

Указанные ниже действия должны выполняться непосредственно на сервере, для которого вносятся изменения.

  1. Остановите работу Macroscop. Сделать это можно с помощью команды:

    systemctl stop macroscop.service
    
  2. С помощью утилиты psql задайте новый пароль для пользователя macroscop. Запустите утилиту, выполнив в Терминале команду:

    psql -U macroscop -h 127.0.0.1 -d postgres
    
  3. Введите текущий пароль для подтверждения входа (По умолчанию: masterkey).

  4. Измените пароль командой:

    ALTER USER CURRENT_USER PASSWORD 'newPassword';
    

    где newPassword — это новый пароль для пользователя macroscop.

  5. Перейдите в директорию /opt/MacroscopServer/MacroscopServerConfigs/, после чего откройте в любом текстовом редакторе конфигурационный файл ArchiveSystem.xml.

  6. Найдите в этом файле секцию PostgreSqlConfig и внесите данные пользователя в строки User и Password.

    Ниже приведён пример таких настроек:

    <PostgreSqlConfig>
        <Ip>127.0.0.1</Ip>
        <Port>5432</Port>
        <User>macroscop</User>
        <Password>newPassword</Password>
    </PostgreSqlConfig>
    
  7. Для того чтобы система могла автоматически создавать резервные копии файлов БД, убедитесь, что данные выбранного пользователя внесены в файл паролей самой СУБД. Для этого перейдите в домашнюю директорию пользователя и откройте в любом текстовом редакторе файл .pgpass. Проверьте, что использованные имя пользователя и пароль имеют право на доступ к базам данных Macroscop.

  8. Возобновите работу Macroscop. Сделать это можно путём выполнения в Терминале следующей команды:

    systemctl start macroscop.service
    
Базы данных модулей аналитики

Если в системе используются модули Распознавание лиц или Распознавание автомобильных номеров, изменение пользователя СУБД окажет влияние в том числе и на их базы.

Если используется Локальная база данных, Macroscop будет использовать для доступа к базе имя и пароль, указанные в файле ArchiveSystem.xml.

Если используется Удаленная база данных, изменение учётных данных PostgreSQL на хранящем базу данных сервере потребует внесения новых имени и пароля в настройки всех камер, использующих эту базу.

Примечание

Пример:

Сервер 1 содержит базу лиц.

Сервер 2 имеет ряд камер, использующих базу лиц с Сервера 1.

Изменение пользователя СУБД на Сервере 2 не окажет влияния на доступ к базе лиц на Сервере 1.

Изменение пользователя СУБД на Сервере 1 потребует внесения новых данных в настройки всех камер на Сервере 2, использующих базу лиц.

Предупреждение

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

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

  1. Откройте директорию с конфигурационными файлами PostgreSQL.

    Путь по умолчанию:

    /etc/postgresql/12/main/
    
  2. В текстовом редакторе откройте файл postgresql.conf и добавьте в него строку вида:

    listen_addresses = '*'
    

    Указанный пример разрешает получать запросы через все доступные сетевые адаптеры сервера. При необходимости ограничить список адаптеров, разрешённых для приёма запросов к базам данных, замените символ * на точный адрес сетевого адаптера. Подробную информацию о настройке можно получить в документации к PostgreSQL 12.

  3. В текстовом редакторе откройте файл pg_hba.conf и добавьте в него строку вида:

    host all all 192.168.0.0/24 md5
    

    Указанный пример разрешает удалённое подключение ко всем базам, хранящимся на сервере, для всех пользователей, обращающихся с адресов диапазона 192.168.0.XXX. В случае, если в сети системы применяется иная адресация, необходимо указать соответствующий диапазон адресов. Допускается внесение нескольких строк с разными диапазонами адресов. Подробную информацию о настройке можно получить в документации к PostgreSQL 12.

  4. Перезапустите службу, выполнив в Терминале команду:

    sudo systemctl restart postgresql-12.service
    
Удаление PostgreSQL

Несмотря на то, что PostgreSQL используется компонентами Macroscop Сервера, простое удаление пакета Macroscop не влечёт за собой автоматическое удаление пакета PostgreSQL.

При необходимости удалить установленную версию PostgreSQL вместе с Macroscop с сохранением настроек можно выполнением следующей команды:

sudo apt-get --purge remove postgresql postgresql-* sudo apt-get autoremove macroscop

Предупреждение

Удаление PostgreSQL этим способом не влечёт за собой автоматическое удаление её настроек. При повторной установке СУБД на тот же компьютер, PostgreSQL задействует настройки из прежних конфигурационных файлов.

При необходимости полностью удалить установленную версию PostgreSQL можно с помощью следующей последовательности команд:

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
Установка и обновление PostgreSQL для Macroscop 3.4-3.6

В Macroscop версий 3.4–3.6 для хранения событий модуля Поиск объектов требуется СУБД PostgreSQL версии 11. Для всех остальных событий и модулей используется СУБД Firebird.

PostgreSQL не устанавливается автоматически в процессе установки компонентов Macroscop, в связи с чем необходимо выполнять установку требуемой версии СУБД самостоятельно перед установкой приложения Macroscop Сервер.

Ниже представлены примеры инструкций по ручной установке PostgreSQL 11 на Linux.

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

  • Онлайн, при его наличии

  • Офлайн, при его отсутствии

  1. Добавьте файловый репозиторий PostgreSQL в конфигурацию ОС:

    sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
    
  2. Установите PostgreSQL требуемой версии:

    sudo yum install -y postgresql11-server
    
  1. Скачайте с помощью устройства, на котором есть доступ в интернет, установочный пакет PostgreSQL требуемой версии и его зависимости из официального репозитория PostgreSQL.

  2. Перенесите скачанные пакеты на сервер Macroscop.

  3. Установите пакеты с помощью команды rpm с ключом -i.

Настройка БД для записи событий

Ввиду того, что данное нововведение не предоставляет для пользователей новых возможностей с точки зрения использования Macroscop, использование СУБД PostgreSQL не требует дополнительных настроек, отличных от уже существующих настроек записи событий в базу. Для того чтобы начать запись в БД системы:

  1. Откройте приложение Macroscop Конфигуратор и перейдите на страницу Серверы.

  2. Выберите сервер в списке.

  3. В правой части окна перейдите на вкладку Информация и нажмите кнопку Настроить.

  4. Выберите в открывшемся окне вкладку Архив и задайте для одного из доступных в системе дисков состояние Архив + БД или просто Только БД.

  5. Сохраните настройки.

Предупреждение

Дополнительная настройка PostgreSQL может потребоваться, если в системе используются удалённые базы данных для модулей Распознавание лиц или Распознавание автомобильных номеров. Подробности описаны в секции "Базы данных модулей аналитики".

Смена пароля для пользователя по умолчанию

В случаях, когда использование стандартного пароля пользователя СУБД не соответствует требованиям безопасности, допустимо изменить пароль для соединения между Macroscop и PostgreSQL на собственный.

Предупреждение

Указанные ниже действия должны выполняться непосредственно на сервере, для которого вносятся изменения.

  1. Остановите работу Macroscop. Сделать это можно с помощью команды:

    systemctl stop macroscop.service
    
  2. С помощью утилиты psql задайте новый пароль для пользователя macroscop. Запустите утилиту, выполнив в Терминале команду:

    psql -U macroscop -h 127.0.0.1 -d postgres
    
  3. Введите текущий пароль для подтверждения входа (По умолчанию: masterkey).

  4. Измените пароль командой:

    ALTER USER CURRENT_USER PASSWORD 'newPassword';
    

    где newPassword — это новый пароль для пользователя macroscop.

  5. Перейдите в директорию /opt/MacroscopServer/MacroscopServerConfigs/, после чего откройте в любом текстовом редакторе конфигурационный файл ArchiveSystem.xml.

  6. Найдите в этом файле секцию PostgreSqlConfig и внесите данные пользователя в строки User и Password.

    Ниже приведён пример таких настроек:

    <PostgreSqlConfig>
        <Ip>127.0.0.1</Ip>
        <Port>5432</Port>
        <User>macroscop</User>
        <Password>newPassword</Password>
    </PostgreSqlConfig>
    
  7. Для того чтобы система могла автоматически создавать резервные копии файлов БД, убедитесь, что данные выбранного пользователя внесены в файл паролей самой СУБД. Для этого перейдите в домашнюю директорию пользователя и откройте в любом текстовом редакторе файл .pgpass. Проверьте, что использованные имя пользователя и пароль имеют право на доступ к базам данных Macroscop.

  8. Возобновите работу Macroscop. Сделать это можно путём выполнения в Терминале следующей команды:

    systemctl start macroscop.service
    
Базы данных модулей аналитики

Если в системе используются модули Распознавание лиц или Распознавание автомобильных номеров, изменение пользователя СУБД окажет влияние в том числе и на их базы.

Если используется Локальная база данных, Macroscop будет использовать для доступа к базе имя и пароль, указанные в файле ArchiveSystem.xml.

Если используется Удаленная база данных, изменение учётных данных PostgreSQL на хранящем базу данных сервере потребует внесения новых имени и пароля в настройки всех камер, использующих эту базу.

Примечание

Пример:

Сервер 1 содержит базу лиц.

Сервер 2 имеет ряд камер, использующих базу лиц с Сервера 1.

Изменение пользователя СУБД на Сервере 2 не окажет влияния на доступ к базе лиц на Сервере 1.

Изменение пользователя СУБД на Сервере 1 потребует внесения новых данных в настройки всех камер на Сервере 2, использующих базу лиц.

Предупреждение

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

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

  1. Откройте директорию с конфигурационными файлами PostgreSQL.

    Путь по умолчанию:

    /var/lib/pgsql/12/data/
    
  2. В текстовом редакторе откройте файл postgresql.conf и добавьте в него строку вида:

    listen_addresses = '*'
    

    Указанный пример разрешает получать запросы через все доступные сетевые адаптеры сервера. При необходимости ограничить список адаптеров, разрешённых для приёма запросов к базам данных, замените символ * на точный адрес сетевого адаптера. Подробную информацию о настройке можно получить в документации к PostgreSQL 12.

  3. В текстовом редакторе откройте файл pg_hba.conf и добавьте в него строку вида:

    host all all 192.168.0.0/24 md5
    

    Указанный пример разрешает удалённое подключение ко всем базам, хранящимся на сервере, для всех пользователей, обращающихся с адресов диапазона 192.168.0.XXX. В случае, если в сети системы применяется иная адресация, необходимо указать соответствующий диапазон адресов. Допускается внесение нескольких строк с разными диапазонами адресов. Подробную информацию о настройке можно получить в документации к PostgreSQL 12.

  4. Перезапустите службу, выполнив в Терминале команду:

    sudo systemctl restart postgresql-12.service
    
Удаление PostgreSQL

Несмотря на то, что PostgreSQL используется компонентами Macroscop Сервера, простое удаление пакета Macroscop не влечёт за собой автоматическое удаление пакета PostgreSQL.

При необходимости удалить установленную версию PostgreSQL вместе с Macroscop с сохранением настроек можно выполнением следующей команды:

sudo yum remove postgresql* autoremove macroscop

Предупреждение

Удаление PostgreSQL этим способом не влечёт за собой автоматическое удаление её настроек. При повторной установке СУБД на тот же компьютер, PostgreSQL задействует настройки из прежних конфигурационных файлов.

При необходимости полностью удалить установленную версию PostgreSQL можно с помощью следующей последовательности команд:

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