Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление
maxLevel3

Миграция с 1.4.0 до 1.5.0

Общая информация

Данный документ описывает процесс миграции системы с версии 1.4.0 на версию 1.5.0.
Миграция включает обновление схемы баз данных PostgreSQL и ClickHouse, а также перенос данных.

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

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

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

Рекомендуемые ресурсы для успешной миграции (на примере системы с 3000 сотрудников, 2200 пропусков и 300 камер):

  • Свободное место на диске: не менее 25 ГБ;
  • Свободная оперативная память: не менее 16 ГБ;
  • Сервисы: PostgreSQL и ClickHouse должны быть запущены на одном хосте;
  • Интернет-соединение: стабильное (для загрузки архива миграции);
  • Установленное ПО: clickhouse-client.

Сценарии миграции

Подсказка

Используйте сценарий Миграция на текущем сервере, если обновление выполняется на том же сервере, где уже работает система с версией 1.4.0.

Подсказка

Используйте сценарий Миграция на новом сервере, если миграция выполняется на новом чистом сервере. 

...

Создание временной директории

Создайте временную папку для резервной копии и файлов миграции в домашней директории пользователя:

Блок кода
languagebash
titleСоздание временной директории
linenumberstrue
mkdir ~/backup
cd ~/backup

Резервное копирование конфигурационных файлов

Подсказка

Этот сценарий необходим для сравнения конфигурационных файлов версий 1.5.0 и 1.4.0.

Блок кода
languagebash
titleРезервное копирование конфигурационных файлов
linenumberstrue
sudo cp /opt/evi-*/*.conf .
sudo cp /etc/nginx/sites-available/evi-core-web .

Резервное копирование базы данных

Перед проведением дампа базы данных необходимо остановить сервисы.

Блок кода
languagebash
titleОстановка всех сервисов с версией 1.4.1
sudo systemctl stop nginx evi-core evi-scud evi-live evi-archive evi-analyzer
Блок кода
languagebash
titleОтключение клиентов от базы данных
echo "SELECT pg_terminate_backend(pid) FROM pg_stat_activity where usename='core'" | sudo -u postgres psql -A -t

Выполните дамп текущей базы PostgreSQL (версия 1.4.1):

Блок кода
languagebash
titleРезервное копирование базы данных
sudo -u postgres pg_dump core > evi-backup.dump

Для проверки наличия файла evi-backup.dump в домашней директории пользователя в подпапке backup выполните следующие действия:

Блок кода
languagebash
titleПроверка наличия файла evi-backup.dump
ls -lh | grep evi-backup.dump
Блок кода
titleНаличие файла в папке backup
-rw-rw-r-- 1 user user 7.4G Jul 29 14:49 evi-backup.dump

Далее переходите к шагу Миграция на текущем сервере или Миграция на новом сервере в зависимости от ваших требований.

...

Подсказка

Используйте этот сценарий, если обновление выполняется на том же сервере, где уже работает система.

Загрузка и распаковка архива миграции

Находясь в папке ~/backup, выполните команды:

Блок кода
languagebash
titleЗагрузка и распаковка архива миграции
linenumberstrue
wget https://archive.eltex-co.ru/evi-raw/evi-1.5.0/db_migration-1.4.0-1.5.0.zip
unzip db_migration-1.4.0-1.5.0.zip
cd db_migration-1.4.0-1.5.0

Удаление платформы EVI 1.4.1

Блок кода
languagebash
titleУдаление всех сервисов с версией 1.3.1
sudo apt purge evi-core-web evi-core evi-scud evi-live evi-archive evi-analyzer nginx

Подготовка к установке

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

Установка базы данных ClickHouse

Поскольку у вас уже установлена база данных PostgreSQL, следующим шагом является установка ClickHouse: раздел Установка баз данных, пункт База данных ClickHouse.

Запуск скрипта миграции

Блок кода
languagebash
titleЗапуск скрипта миграции
sudo bash migrate.sh <host> <user> <password> <psql_db_name_from> <psql_db_name_to> <psql_port> <ch_def_user_password> <ch_db_name>
  • host — IP-адрес хоста с PostgreSQL и ClickHouse;
  • user — имя пользователя для базы данных (будет создано при необходимости);
  • password — пароль пользователя;
  • psql_db_name_from — имя PostgreSQL БД, из которой идет миграция;
  • psql_db_name_to — имя PostgreSQL БД, в которую будет совершена миграция;
  • psql_port — порт PostgreSQL;
  • ch_def_user_password — пароль для пользователя ClickHouse;
  • ch_db_name — имя базы данных ClickHouse, в которую будет совершена миграция.
Блок кода
languagebash
titleПример запуска
sudo bash migrate.sh localhost core core core core 5432 core core

После успешного выполнения скрипта миграции в консоли вы увидите сообщение: Restoring DB done <3.

Далее переходите к разделу Установка и настройка сервисов EVI после миграции.

...

Подсказка

Используйте этот сценарий, если миграция выполняется на новом чистом сервере. 

Подготовка к установке

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

Установка баз данных

Установите и настройте PostgreSQL и ClickHouse, как описано в разделе Установка баз данных.

Создание папки backup c резервной копией данных

Создайте резервную копию всех данных, как описано в разделе Подготовительные действия.

Перенос подготовленных файлов

Скопируйте папку backup вместе со всем содержимым с исходного сервера на новый.

Для передачи данных рекомендуется использовать утилиту scp, которая обеспечивает безопасное копирование по SSH.

Блок кода
languagebash
scp -r ~/backup user@remote-server:~
  • user — имя пользователя нового сервера;
  • remote-server — адрес нового сервера.

После переноса перейдите на новом сервере в папку backup в домашней директории:

Блок кода
languagebash
cd ~/backup

Создание пользователя в PostgreSQL

Блок кода
languagebash
titleСоздание пользователя в PostgreSQL
sudo -u postgres psql -c "CREATE USER core; ALTER USER core WITH PASSWORD 'core'; ALTER USER core WITH SUPERUSER;"
Подсказка

При необходимости измените пароль на более безопасный. 

В примерах используется пароль и имя пользовател\ по умолчанию.

Восстановление базы данных из дампа

Загрузить базу данных с версией 1.4.0.

Блок кода
languagebash
titleВосстановление базы данных из дампа
sudo -u postgres createdb core
sudo -u postgres psql -d core -f evi-backup.dump
Подсказка

Убедитесь, что дамп корректно загружен.

Загрузка и распаковка архива миграции

Блок кода
languagebash
titleЗагрузка и распаковка архива миграции
linenumberstrue
wget https://archive.eltex-co.ru/evi-raw/evi-1.5.0/db_migration-1.4.0-1.5.0.zip
unzip db_migration-1.4.0-1.5.0.zip
cd db_migration-1.4.0-1.5.0

Запуск скрипта миграции

Блок кода
languagebash
sudo bash migrate.sh <host> <user> <password> <psql_db_name_from> <psql_db_name_to> <psql_port> <ch_def_user_password> <ch_db_name>
  • host — IP-адрес хоста с PostgreSQL и ClickHouse;
  • user — имя пользователя для базы данных (будет создано при необходимости);
  • password — пароль пользователя;
  • psql_db_name_from — имя PostgreSQL БД, из которой идет миграция;
  • psql_db_name_to — имя PostgreSQL БД, в которую будет совершена миграция;
  • psql_port — порт PostgreSQL;
  • ch_def_user_password — пароль для пользователя ClickHouse;
  • ch_db_name — имя базы данных ClickHouse, в которую будет совершена миграция.
Блок кода
languagebash
titleПример запуска
sudo bash migrate.sh localhost core core core core 5432 core core

После успешного выполнения скрипта миграции в консоли вы увидите сообщение: Restoring DB done <3.

Далее переходите к разделу Установка и настройка сервисов EVI после миграции.

...

После успешного завершения миграции баз данных необходимо установить сервисы EVI версии 1.5.0.

Установка EVI 1.5.0

Установите и настройте сервисы EVI, как описано в разделе Ручная установка.

Примечание
titleОбновление контроллеров

Для версии 1.5.0 необходимо использовать прошивку для контроллеров СКУД: IPA-ER-020-2.3.0_build_52.tar.gz

Сверка конфигурационных файлов

В версии 1.5.0 внесены изменения в структуру и параметры конфигурационных файлов, включая новые порты по умолчанию и обновлённые секции.

Общие изменения

  • Изменены используемые порты сервисов (см. раздел Конфигурирование платформы);
  • Добавлены новые параметры конфигурации;
  • Устаревшие параметры удалены или заменены.

Особое внимание: evi-live.conf — параметр extern_host

В конфигурационном файле evi-live.conf в секции [global] изменился параметр:

Блок кода
languagebash
[global]
extern_host=127.0.0.1
Примечание

Убедитесь, что значение extern_host соответствует внешнему IP-адресу или доменному имени сервера, по которому клиенты подключаются к системе.

Рекомендации

Сравните конфигурационные файлы: старый (1.4.0) и новый (1.5.0)  evi-core.conf, evi-scud.conf, evi-live.conf, evi-archive.conf, evi-analyzer.conf.

Перенесите важные настройки (сертификаты, пути видеоархива), соблюдая новую структуру.

Проверка результата миграции

После завершения миграции выполните следующие действия:

  1. Убедитесь, что все сервисы запускаются без ошибок;
  2. Проверьте доступность данных (пользователи, пропуска, события);
  3. Проверьте лог-файлы сервисов на наличие ошибок подключения к БД.
Примечание

При возникновении ошибок обратитесь в техническую поддержку с логами.

Ручная установка 
Якорь
manual_installation
manual_installation

...

Установка баз данных
Якорь
database_install
database_install

ПакетОписание
postgresql-17
База данных используется в сервисах EVI
clickhouse-server
База данных используется в сервисахEVI
clickhouse-client
Клиент для подключения к БД ClickHouse
libpq5
Библиотека для взаимодействия сервисов EVI с БД

База данных Postgresql

Примечание

Минимальная версия postgresql 17.

Все сервисы используют 1 базу данных для работы.

Рекомендуем размещать базу данных рядом с evi-core и evi-scud.

...

Минимальная конфигурация необходимая для запуска ядра платформы evi-core и модуля СКУД на одном сервере:

OSCPURAMSDDHDDLAN
Ubuntu 22.042 ядра 64-bit x864 GB100 GB100 GB100 Mb/s

Установка модуля Ядра

Для установки ядра системы выполните следующую команду:

...

EVI Perimeter объединение модулей (evi-live, evi-archive, evi-analyzer) видеонаблюдения, предназначенный для получения видеопотоков с камер и сохранения в архив.

ПакетОписание
evi-live
Модуль для взаимодействия с камерами видеонаблюдения для платформы EVI
evi-archive
Модуль для записи архивов с камер для платформы EVI
evi-analyzer
Модуль детектора движения для платформы EVI

Требования для модуля Видеонаблюдение

...

Блок кода
languagebash
titleУстановка пакетов
sudo -E dpkg -i evi-live_1.5.*.deb evi-archive_1.45.*.deb evi-analyzer_1.45.*.deb
Блок кода
languagebash
titleЕсли установка завершится сообщением о неразрешенных зависимостях, воспользуйтесь командой
sudo apt install -f

...

Для работы модуля требуется дискретная видеокарта. Ниже приведена минимальная конфигурация для запуска:

OSGPUSERIESVRAMDRIVER
Ubuntu 22.04NVIDIAQuadro или RTX8 GB545

Пример установленных версий ядра и драйвера

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

OSKernelDriver
Ubuntu 22.04.4 LTSGNU/Linux 6.5.0-44-generic x86_64NVIDIA-SMI 545.29.06
Ubuntu 22.04.4 LTS GNU/Linux 6.5.0-45-generic x86_64NVIDIA-SMI 575.64.05

Ручная установка docker и драйвера

...