Предварительные действия
Установка часового пояса
При установке Ubuntu-22.04 не предлагается указать часовой пояс (по умолчанию устанавливается время UTC). Его нужно установить вручную (для корректной работы видеоархива, календарей доступа и т.д.), например:
sudo timedatectl set-timezone Asia/Novosibirsk
Обновление ОС
Перед началом установки необходимо обновить ОС:
sudo apt update sudo apt upgrade
Установка платформы EVI
Добавление репозитория
wget -q -O - --no-check-certificate https://archive.eltex-co.ru/evi-raw/key/public.gpg.key | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/nexus-ext.eltex.loc.gpg --import
echo "deb https://archive.eltex-co.ru/evi/ jammy main" | sudo tee /etc/apt/sources.list.d/evi.list
sudo chmod a+r /etc/apt/trusted.gpg.d/nexus-ext.eltex.loc.gpg
sudo apt update
Установка базы данных
Минимальная версия postgresql 17.
Все сервисы используют 1 базу данных для работы.
Рекомендуем размещать базу данных рядом с evi-core и evi-scud.
Установка postgresql 17
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 -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --yes --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
sudo apt update
sudo apt install postgresql-17
Установка обязательных зависимостей
Каждый из пакетов требует наличие пакета libpq5 (>= 17.2).
При установке сервисов на разные серверы необходимо установить на каждый из них libpq5.
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 -qO - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --yes --dearmor -o /etc/apt/trusted.gpg.d/postgresql.gpg
sudo apt update
sudo apt install libpq5
Установка пакетов EVI
Установка модуля Ядра
Для установки ядра системы выполните следующую команду:
sudo apt install evi-core
Установка модуля web-интерфейса
Для установки модуля web-интерфейса выполните следующую команду:
sudo apt install evi-core-web
Установка модуля СКУД
Для установки модуля СКУД выполните следующую команду:
sudo apt install evi-scud
Установка модуля Видеонаблюдения
Для установки модуля Видеонаблюдения выполните следующую команду:
sudo apt install evi-live evi-archive evi-analyzer
Параметр extern_ip в конфигурации /opt/evi-live/evi-live.conf
В конфигурационном файле сервиса evi-live, который находится по пути /opt/evi-live/evi-live.conf, в параметре extern_ip укажите IP-адрес или доменное имя, доступное для пользователей в вашей локальной сети. По умолчанию указывается 127.0.0.1.
Иначе просмотр видео с камер будет невозможен.
Создание базы данных
Для создания базы данных необходимо выполнить следующие команды:
Команды приведены для случая установки всех сервисов на один сервер.
В случае установки сервисов на разные серверы необходимо открыть доступ к базе.
Остановить все сервисы:
sudo systemctl stop evi-core.service evi-scud.service evi-live.service evi-archive.service evi-analyzer.service
Запустить скрипт:
sudo bash /opt/evi-core/sql/sql_insert.sh &>/dev/null
Запустить все сервисы:
sudo systemctl start evi-core.service
sudo systemctl start evi-scud.service evi-live.service evi-archive.service evi-analyzer.service
Проверка работоспособности
sudo systemctl is-active evi-core.service evi-scud.service evi-live.service evi-archive.service evi-analyzer.service
В выводе все компоненты должны быть активны:
active active active active active
Установка модуля видеоаналитики
Рекомендуется обновить ядро системы перед установкой видеодрайвера.
Автоматическая установка docker и драйвера
Для автоматической установки docker и драйвера Nvidia выполните следующие команды:
wget -q -O - --no-check-certificate https://archive.eltex-co.ru/evi-raw/evi-1.3.0/evi-prepare-analytics_install.sh | bash
sudo reboot
Далее переходите к разделу в документации Загрузка образа и запуск контейнера evi-analytics
Ручная установка docker и драйвера
Версия драйвера
Рекомендуем использовать доступный актуальный драйвер в репозитории OC.
Для работы с видеокартой необходимо установить драйвер:
sudo apt install -yfqq nvidia-driver-550
Далее необходимо установить docker для работы с контейнером аналитики и nvidia-docker2 для работы с видеокартой:
sudo apt-get update sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl https://get.docker.com | sh \ && sudo systemctl --now enable docker distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add - \ && curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get update sudo apt-get install docker-ce docker-compose nvidia-docker2
sudo systemctl restart docker
Добавить пользователя в группу docker:
sudo usermod -aG docker $(whoami)
sudo reboot
Загрузка образа и запуск контейнера evi-analytics
Необходимо загрузить на сервер аналитики скрипт evi-analytics_1.3.0.sh:
wget --no-check-certificate https://archive.eltex-co.ru/evi-raw/evi-1.3.0/evi-analytics_1.3.0.sh
bash evi-analytics_1.3.0.sh EFNRS_DB_HOST="IP-адрес базы данных postgres"
Проверка работоспособности
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
Пример успешно запущенных контейнеров
CONTAINER ID NAMES STATUS
f01deee7d6a5 user-triton1-1 Up 23 hours
d70d9e7004ac user-triton3-1 Up 23 hours
c011105320e9 user-triton2-1 Up 23 hours
d17d6261648f user-evi-analytics-haproxy-1 Up 23 hours
fa2db6812f3b user-evi-analytics-1 Up 23 hours
Настройка связности сервисов
При установке сервисов на разные серверы необходимо настроить связность сервисов между собой.
Пример: необходимо установить модуль СКУД и Видеонаблюдения на разные сервера.
Необходимо после установки сервисов остановить их и внести изменение в конфигурационные файлы сервисов.
- Указать адрес базы данных и открыть ее для подключения со стороннего сервера в разделе [db].
- Указать адрес для подключения модуля СКУД в разделе [scud] в конфигурационном файле evi-core.
- Указать адрес для подключения модуля Аналитики в разделе [analytics] в конфигурационном файле evi-core.
- Указать адрес для подключения модуля Видеонаблюдения в разделе [perimeter] в конфигурационном файле evi-core.
- В конфигурационном файле evi-live указать адрес для подключения к evi-analytics в разделе [analytics].
- В конфигурационном файле evi-live указать адрес, через который пользователю будет доступен видеопоток с камер в разделе [global].
- В конфигурационном файле evi-archive указать адрес для подключения к evi-live в разделе [evi_video].
- В конфигурационном файле evi-archive указать место записи архива в разделе [other].
- В конфигурационном файле evi-analyzer указать адрес для подключения к evi-live в разделе [evi_video].
Файлы конфигурации сервисов
Конфигурационный файл evi-core располагается в /opt/evi-core/evi-core.conf.
[core] crt=/opt/evi-core/ssl/cert.crt key=/opt/evi-core/ssl/server.key listen=* apiport=7001 apiportssl=7000 [db] databaseip=127.0.0.1 databaseport=5432 databasename=core databaseusername=core databasepassword=core [logs] loglvl=info logpath=/var/log/evi-core [scud] ip=127.0.0.1 - Адрес evi-scud port=8000 [analytics] ip=127.0.0.1 - Адрес модуля аналитики port=9000 [perimeter] ip=127.0.0.1 - Адрес evi-live port=10000
Конфигурационный файл evi-scud располагается в /opt/evi-scud/evi-scud.conf.
[core] crt=/opt/evi-scud/ssl/cert.crt key=/opt/evi-scud/ssl/server.key apiportssl=8001 apiport=8000 listen=* wsport=8010 wssport=8011 [logs] logpath=/var/log/evi-scud loglevel=info [db] databaseport=5432 databaseip=127.0.0.1 databasepassword=core databaseusername=core databasename=core [controller] port=8084 portssl=8085
Конфигурационный файл evi-live располагается в /opt/evi-live/evi-live.conf.
[analytics] host=127.0.0.1 — адрес модуля аналитики port=9011 [api] host=* port=10000 ssl_port=10001 [db] databaseip=127.0.0.1 databasename=core databasepassword=core databaseport=5432 databaseusername=core [event] event_ws_port=10010 event_wss_port=10011 host=* [global] extern_ip=127.0.0.1 — этот IP-Адрес(можно указать домен) должен быть доступен пользователю для просмотра видеопотока [log] dir=//var/log/evi-live file_name=evi-live.log level=info [other] count_thread=0 [receiver] rtmp_port=10050 rtsp_port=10060 [ssl] cert=/opt/evi-live/ssl/server.crt key=/opt/evi-live/ssl/server.key [webrtc] tcp_port=10085 udp_port=10085
Конфигурационный файл evi-archive располагается в /opt/evi-archive/evi-archive.conf.
[api] host=* port=10200 ssl_port=10201 [evi_video] host=127.0.0.1 - Адрес evi-live port=10001 [log] dir=//var/log/evi-archive file_name=evi-archive.log level=info [other] archive_path=./archive - Расположение архива видеозаписей [ssl] cert=/opt/evi-archive/ssl/server.crt key=/opt/evi-archive/ssl/server.key
Конфигурационный файл evi-analyzer располагается в /opt/evi-analyzer/evi-analyzer.conf.
[api] host=* port=10300 ssl_port=10301 [evi_video] host=127.0.0.1 - Адрес evi-live port=10001 [log] dir=//var/log/evi-analyzer file_name=evi-analyzer.log level=info [receiver] rtmp_port=5050 rtsp_port=5060 [ssl] cert=/opt/evi-analyzer/ssl/server.crt key=/opt/evi-analyzer/ssl/server.key
Конфигурационный файл evi-core-web располагается в /etc/nginx/sites-available/evi-core-web.
# evi-core-web configuration # server { listen 80; listen [::]:80; return 301 https://$host$request_uri; server_name $hostname $server_addr 127.0.0.1 localhost; } server { listen 443 ssl; ssl_certificate /etc/ssl/certs/evi-core-web.crt; ssl_certificate_key /etc/ssl/private/evi-core-web.key; root /usr/share/evi-core-web/www/browser; index index.html; server_name $hostname $server_addr 127.0.0.1 localhost; location /assets/config.json { set $apiAddress $scheme://$http_host; set $wsAddress wss://$http_host; default_type application/json; return 200 "{\"api\": \"$apiAddress/api/v1\", \"ws\": \"$wsAddress/api/v1\"}"; } location / { # kill browser cache for all html pages add_header Last-Modified $date_gmt; add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; if_modified_since off; expires off; etag off; try_files $uri $uri/ /index.html; } # настройки для API: location /api/v1 { # включить прокси — брать API-запросы с указанного URL: proxy_pass https://localhost:7000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; # лимит в 5 МБ для загрузки файлов с клиента на сервер client_max_body_size 5M; } }