
Предварительные действия
Установка часового пояса
При установке 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 |
Установка базы данных
Минимальная версия 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 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 |
Установка пакетов 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 |
В конфигурационном файле сервиса 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 |
Обязательно требуется перезагрузка сервера. |
Далее переходите к разделу в документации Загрузка образа и запуск контейнера 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) |
Обязательно требуется перезагрузка сервера. |
Загрузка образа и запуск контейнера 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;
}
} |