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

Ключ

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

...

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

Чек-лист установки для РЕД ОС

Проверка работоспособности

Блок кода
languagebash
titleПроверка работоспособности
sudo systemctl is-active evi-core.service evi-scud.service evi-live.service evi-archive.service evi-analyzer.service

В выводе все компоненты должны быть активны:

Блок кода
languagebash
titleАктивность сервисов
linenumberstrue
active
active
active
active
active

Настройка связности сервисов для РЕД ОС

Примечание

При установке сервисов на разные серверы необходимо настроить связность сервисов между собой.

Пример: необходимо установить модуль СКУД и Видеонаблюдения на разные сервера.

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

Image Added

  1. Установите evi-core, evi-scud, postgres, clickhouse на машину 192.168.50.29.
  2. Установите evi-live, evi-archive, evi-analyzer на машину 192.168.50.250.
  3. Разверните Evi-analytics на 192.168.50.35.
  4. В конфигурации evi-core пропишите адреса баз данных, evi-scud, evi-analytics, evi-live, evi-archive, evi-analyzer.
    Блок кода
    title/opt/evi-core/evi-core.conf
    [postgresql]
    host=127.0.0.1          
    port=5432                             
    dbname=core              
    username=core                         
    password=core
    
    [clickhouse]
    host=127.0.0.1                        
    port=9000                             
    dbname=core                           
    username=core                         
    password=core                         
    
    [evi-scud]
    rpc_host=127.0.0.1                    
    rpc_port=7102                         
    
    [evi-analytics]
    rpc_host=192.168.50.35               
    rpc_port=7402                         
    
    [evi-live]
    rpc_host=192.168.50.250                   
    rpc_port=7202                        
    
    [evi-archive]
    rpc_host=192.168.50.250                  
    rpc_port=7302                         
    
    [evi-analyzer]
    rpc_host=192.168.50.250                    
    rpc_port=7502
  5. В конфигах postgres открываем базу для подключения с других адресов.
    Блок кода
    title/var/lib/pgsql/17/data/postgresql.conf
    # - Connection Settings -
    
    listen_addresses = '*' 
    Блок кода
    title/var/lib/pgsql/17/data/pg_hba.conf
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    
    # "local" is for Unix domain socket connections only
    local   all             all                                     trust
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            trust
    host    core            core            192.168.50.35/24        md5
    # IPv6 local connections:
    host    all             all             ::1/128                 trust
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    local   replication     all                                     trust
    host    replication     all             127.0.0.1/32            trust
    host    replication     all             ::1/128                 trust
  6. В конфиге evi-live прописываем адреса: базы данных, rpc, events, внешний IP.
    Блок кода
    title/opt/evi-live/evi-live.conf
    [postgresql]
    host=192.168.50.29                   
    port=5432                            
    dbname=core                          
    username=core                        
    password=core                        
    
    [rpc]
    listen=192.168.50.250                
    port=7202                            
    
    [events]
    listen=192.168.50.250                
    port=7204                            
    
    [global]
    extern_host=192.168.50.250           
    extern_port_rtsp_tcp=7260           
    extern_port_rtmp=7250               
    extern_port_webrtc_tcp=7285          
    extern_port_webrtc_udp=7285          
    extern_port_api=7200                 
    
    
  7. В конфиге evi-analyzer прописываем адреса: базы данных, rpc, events.
    Блок кода
    title/opt/evi-analyzer/evi-analyzer.conf
    [postgresql]
    host=192.168.50.29                           
    port=5432                                   
    dbname=core                                 
    username=core                               
    password=core                               
    
    [rpc]
    listen=192.168.50.250                        
    port=7502                                   
    
    [events]
    listen=192.168.50.250                            
    port=7504          
    
  8. В конфиге evi-archive прописываем адреса rpc и events.
    Блок кода
    title/opt/evi-archive/evi-archive.conf
    [rpc]
    listen=192.168.50.250                         
    port=7302                                
    
    [events]
    listen=192.168.50.250                     
    port=7304                                
    
  9. В докер файле evi-analitycs прописываем адрес базы данных. 
    Блок кода
    titleevi-analytics_1.4.0_docker-compose.sh
    : ${EVIANALYTICS_POSTGRESQL_HOST="192.168.50.29"}
    : ${EVIANALYTICS_POSTGRESQL_DBNAME="core"}
    : ${EVIANALYTICS_POSTGRESQL_USERNAME="core"}
    : ${EVIANALYTICS_POSTGRESQL_PASSWORD="core"}
    
    
  10. Перезапускаем все сервисы, в том числе evi-analytics.
Подсказка
После внесения изменений в сервис требуется его перезагрузка.

Установка модуля Видеоаналитики для РЕД ОС

EVI Analytics — модуль видеоаналитики, предназначен для обнаружения, распознавания, подсчета, трекинга объектов согласно моделям.

Примечание

Рекомендуется обновить ядро системы перед установкой видеодрайвера.

Предупреждение
titleСистемные требования для видеоаналитики

Перед началом работы необходимо ознакомиться с требованиями к модулю Видеоалитики в разделе Системные требования Платформы EVI.

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

Предупреждение
titleИспользование виртуализации

Система видеоаналитики требует наличия видеокарты.

Для работы в виртуальном окружении гипервизор должен поддерживать аппаратный проброс устройств PCI/PCI-E, включая видеокарту.

Совместимость с виртуализацией не обеспечивает стабильной работы модуля видеоаналитики.

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

OSGPUSERIESVRAMDRIVER
RedOS 8.0 SENVIDIAQuadro или RTX8 GB545

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

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

OSKernelDriver
RED OS 8.0 SEGNU/Linux 6.12.37-1.red80.x86_64
NVIDIA-SMI 570.144-1

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

Для работы с видеокартой необходимо установить драйвер:

Блок кода
languagebash
titleУстановить драйвер для видеокарты
sudo dnf install nvidia-drivers-3:570.144-1.red80.x86_64

Далее необходимо установить docker для работы с контейнером аналитики и nvidia-container-tookit для работы с видеокартой:

Блок кода
languagebash
titleПодключение репозитория Nvidia
linenumberstrue
curl -s -L https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo | \
  sudo tee /etc/yum.repos.d/nvidia-container-toolkit.repo
Блок кода
languagebash
titleУстановка docker
linenumberstrue
sudo dnf install docker-ce
sudo dnf install docker-compose
Блок кода
titleУстановка nvidia-container-toolkit для проброса видеокарты
sudo dnf install nvidia-container-toolkit


Блок кода
titleНастройка запуска контейнера
sudo nvidia-ctk runtime configure --runtime=docker 
sudo nvidia-ctk runtime configure --runtime=containerd


Блок кода
titleИзменение конфигурационного файла контейнера Nvidia
sudo nano /etc/nvidia-container-runtime/config.toml

Изменить no-cgroups на true:

[nvidia-container-cli] no-cgroups = true

Cохранить файл нажав Ctrl+X, затем Y и Enter.

Добавить пользователя в группу docker:

Блок кода
languagebash
titleДобавить пользователя в группу docker
linenumberstrue
sudo usermod -aG docker $(whoami)
Предупреждение
Обязательно требуется перезагрузка сервера.
Блок кода
languagebash
linenumberstrue
sudo reboot

Необходимо проверить наличие запущенного драйвера в системе после его установки

Блок кода
languagebash
titleПроверка работающего драйвера в системе
linenumberstrue
nvidia-smi
Блок кода
languagebash
titleПример вывода команды nvidia-smi
linenumberstrue
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 550.144.03             Driver Version: 550.144.03     CUDA Version: 12.4     |
|-----------------------------------------+------------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id          Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |           Memory-Usage | GPU-Util  Compute M. |
|                                         |                        |               MIG M. |
|=========================================+========================+======================|
|   0  NVIDIA GeForce RTX 3080        Off |   00000000:01:00.0 Off |                  N/A |
|  0%   41C    P2            113W /  370W |    3902MiB /  10240MiB |      5%      Default |
|                                         |                        |                  N/A |
+-----------------------------------------+------------------------+----------------------+
                                                                                         
+-----------------------------------------------------------------------------------------+
| Processes:                                                                              |
|  GPU   GI   CI        PID   Type   Process name                              GPU Memory |
|        ID   ID                                                               Usage      |
|=========================================================================================|
|    0   N/A  N/A   2144100      C   tritonserver                                 1296MiB |
|    0   N/A  N/A   2144155      C   tritonserver                                 1296MiB |
|    0   N/A  N/A   2144163      C   tritonserver                                 1296MiB |
+-----------------------------------------------------------------------------------------+

Настройка доступа к базе данных для подключения контейнера

Перед началом настройки необходимо остановить сервисы EVI.

Блок кода
languagebash
titleОстановите сервисы, которые работают с базой данных 
linenumberstrue
sudo systemctl stop evi-core.service evi-scud.service evi-live.service evi-archive.service evi-analyzer.service

Необходимо открыть доступ для подключения контейнера аналитики к базе данных.

Блок кода
languagebash
titleОтредактировать файл /var/lib/pgsql/17/data/pg_hba.conf
linenumberstrue
sudo nano /var/lib/pgsql/17/data/pg_hba.conf

В раздел IPv4 local connections добавьте строку по примеру ниже и сохраните файл.

Так как контейнеры по умолчанию получают IP-адреса из подсети 172.16.0.0/12, необходимо указать его.

Блок кода
languagebash
title/var/lib/pgsql/17/data/pg_hba.conf
linenumberstrue
# IPv4 local connections:
host    all             all             127.0.0.1/32          scram-sha-256
host    all             all             172.16.0.0/12         md5

Откройте файл конфигурации базы данных. Уберите символ решётки (#), чтобы активировать параметр listen_addresses, и укажите в нем IP-адрес сервера. После этого сохраните изменения в файле.

Блок кода
languagebash
titleОтредактировать файл /var/lib/pgsql/17/data/postgresql.conf
linenumberstrue
sudo nano /var/lib/pgsql/17/data/postgresql.conf
Блок кода
languagebash
titleИсходный файл /var/lib/pgsql/17/data/postgresql.conf
linenumberstrue
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
                                        
# - Connection Settings -

#listen_addresses = 'localhost'         # what IP address(es) to listen on;
Блок кода
languagebash
titleПример отредактированного файла /var/lib/pgsql/17/data/postgresql.conf
linenumberstrue
#------------------------------------------------------------------------------
# CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
                                        
# - Connection Settings -

listen_addresses = 'localhost, 192.168.1.10'         # what IP address(es) to listen on;

Для применения изменений перезапустите сервис базы данных postgresql:

Блок кода
languagebash
titleПерезапуск сервиса базы данных
linenumberstrue
sudo systemctl restart postgresql-17.service
Блок кода
languagebash
titleЗапустите сервисы evi 
linenumberstrue
sudo systemctl start evi-core.service evi-scud.service evi-live.service evi-archive.service evi-analyzer.service

Загрузка образа и запуск контейнера evi-analytics

Подсказка

Образы аналитики имеют большой объем, поэтому их загрузка может занять некоторое время.

После настройки доступа к базе данных необходимо загрузить на сервер аналитики скрипт evi-analytics_1.4.1.sh:

Блок кода
languagebash
titleЗагрузить скрипт evi-analytics_1.4.1_public.sh с 1 или 3 тритонами
linenumberstrue
wget --no-check-certificate https://archive.eltex-co.ru/evi-raw/evi-1.4.1/evi-analytics_1.4.1_triton1.sh
/или/
wget --no-check-certificate https://archive.eltex-co.ru/evi-raw/evi-1.4.1/evi-analytics_1.4.1_triton3.sh
Блок кода
languagebash
titleЗапустить скрипт evi-analytics_1.4.1_public.sh с 1 или 3 тритонами
linenumberstrue
bash evi-analytics_1.4.1_triton1.sh EFNRS_DB_HOST="IP-АДРЕС ВАШЕЙ БАЗЫ ДАННЫХ"
/или/
bash evi-analytics_1.4.1_triton3.sh EFNRS_DB_HOST="IP-АДРЕС ВАШЕЙ БАЗЫ ДАННЫХ"
Блок кода
languagebash
titleПример запуска
linenumberstrue
bash evi-analytics_1.4.1_triton1.sh EFNRS_DB_HOST="192.168.1.10"
/или/
bash evi-analytics_1.4.1_triton3.sh EFNRS_DB_HOST="192.168.1.10"

Проверка работоспособности

Блок кода
languagebash
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Status}}"
Информация
titleПример успешно запущенных контейнеров

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

Установка модуля Видеонаблюдения для РЕД ОС

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

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

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

Для работы модуля требуются камеры с поддержкой подключения по ссылке RTSP.

Подготовительные действия

В конфигурационном файле сервиса evi-live, который находится по пути /opt/evi-live/evi-live.conf, в параметре extern_host должен быть указан IP-адрес или доменное имя, доступное для пользователей в вашей локальной сети. 

Иначе просмотр видео с камер будет невозможен.

Примечание
titleПараметр extern_ip в конфигурации /opt/evi-live/evi-live.conf

В случае установки доменного имени вместо IP-адреса может перестать работать видео в браузере Firefox.

Чтобы автоматически выставить адрес в конфигурационном файле, после установки выполните следующие действия в консоли сервера:

Блок кода
languagebash
titleУстановка IP-адреса для переменной окружения extern_host через переменную окружения
export EVI_LIVE_EXTERN_HOST=$(ip -br -4 a show $(ip ro get fibmatch 0.0.0.1 | grep -o "dev [^ ]\+") | grep -o "[^ \.]\+\.[^/]\+")
Блок кода
languagebash
titleПроверка назначенного адреса
echo $EVI_LIVE_EXTERN_HOST

В консоли вы увидите IP-адрес сетевого интерфейса сервера, например, 192.168.50.15.

Чтобы убедиться, что IP-адрес верный, выполните команду:

Блок кода
languagebash
titleПроверка назначенного адреса
ip -br a

Адрес должен соответствовать сетевому интерфейсу.

Блок кода
languagebash
lo               UNKNOWN        127.0.0.1/8 ::1/128 
eno1             UP             192.168.50.15/24 metric 100 fe80::3eec:efff:fea0:9396/64

Можете приступать к установке видеонаблюдения. Переменная extern_host автоматически установится в конфигурационном файле.

Установка модуля Видеонаблюдения

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

Блок кода
languagebash
titleУстановка пакетов
sudo -E dnf install evi-live-1.4.*.rpm evi-archive-1.4.*.rpm evi-analyzer-1.4.*.rpm

Переменная extern_host автоматически установится в конфигурационном файле.

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

Блок кода
languagebash
titleУстановка пакетов
cat /opt/evi-live/evi-live.conf | grep "extern_host"

В консоли вы увидите:

Блок кода
languagebash
titleУстановка пакетов
extern_host=192.168.50.15                # External or proxy address (ENV: EVILIVE_GLOBAL_EXTERN_HOST)

Установка модуля СКУД для РЕД ОС

EVI Scud — модуль системы контроля и управления доступом, предназначен для организации пропускного режима в организации.

Требования для модуля СКУД

Для работы модуля требуется контроллер СКУД IPA-ER-020.

Версия прошивки контроллера должна быть не ниже 2.3.0 build 52.

Установка модуля СКУД

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

Блок кода
languagebash
titleУстановка пакетов
sudo dnf install evi-scud-1.4.*.rpm

Установка модуля web-интерфейса для РЕД ОС

EVI Core Web — графический web-интерфейс для управления системой.

Установка модуля web-интерфейса

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

Блок кода
languagebash
titleУстановка пакетов
sudo dnf install evi-core-web-1.4.*.rpm

Установка модуля Ядра для РЕД ОС

Evi-core — ядро платформы, предназначенное для конфигурирования модулей.

Общие требования для модулей

Требования для ядра платформы

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

OSCPURAMSDDHDDLAN
RedOS 8.02 ядра 64-bit x864 GB100 GB100 GB100 Mb/s

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

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

Блок кода
languagebash
titleУстановка пакетов
sudo dnf install evi-core-1.4.*.rpm

Установка баз данных для РЕД ОС

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

База данных Postgresql

Примечание

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

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

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

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

Блок кода
languagebash
titleУстановка Postgres 17-server
sudo dnf install postgresql17-server

Блок кода
languagebash
titleУстановка дополнительных модулей
sudo dnf install postgresql17-contrib


Блок кода
languagebash
titleИнициализация БД
sudo postgresql-17-setup initdb

Блок кода
languagebash
titleЗапуск сервиса
sudo systemctl enable postgresql-17.service --now

Блок кода
languagebash
titleПроверка что сервис запущен
sudo systemctl status postgresql-17.service

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

Блок кода
titleСоздание пользователя
sudo -u postgres createuser --interactive
Блок кода
titleВвод имени пользователя
core
Блок кода
titleПодверждение прав superuser'а
y

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

Блок кода
titleПодключение к пользователю postgres
sudo -u postgres psql


Блок кода
titleСоздание базы данных 'core'
CREATE DATABASE core;
Блок кода
titleВыдача пользователю core пароля 'core'
ALTER USER core WITH PASSWORD 'core';
Блок кода
titleВыдача пользователю core прав superuser
ALTER USER core WITH SUPERUSER;
Блок кода
titleВыход из пользователя postgres
\quit

База данных ClickHouse

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

Блок кода
titleДобавление репозитория Clickhouse
sudo tee /etc/yum.repos.d/clickhouse.repo << 'EOF' 
[clickhouse] 
name=ClickHouse Repository (RedOS 7.3) 
baseurl=https://mirror.yandex.ru/redos/7.3/x86_64/3rdparty/clickhouse/ 
enabled=1 
gpgcheck=0 
EOF
Блок кода
titleОбновление списка репозиториев
sudo dnf update
Блок кода
titleПроверка добавления репозитория
sudo dnf repolist | grep clickhouse


Блок кода
titleОбновление метадаты для обнаружение пакетов
sudo dnf clean all
sudo dnf makecache


Блок кода
titleПроверка пакетов готовых к установке
sudo dnf search clickhouse
Блок кода
titleУстановка файлов clickhouse
sudo dnf install clickhouse-common-static-25.1.4.53


Блок кода
titleУстановка сервера clickhouse
sudo dnf install clickhouse-server-25.1.4.53


Блок кода
titleУстановка клиента clickhouse
sudo dnf install clickhouse-client-25.1.4.53
Блок кода
titleЗапуск сервера clickhouse
 sudo systemctl enable clickhouse-server.service


Блок кода
titleПерезагрузка сервера clickhouse
sudo systemctl restart clickhouse-server.service


Блок кода
titleДобавление пароля пользователю default
 sudo sed -i 's|<password></password>|<password>core</password>|g' /etc/clickhouse-server/users.xml


Блок кода
titleСоздание пользователя core c паролем core в БД clickhouse
clickhouse-client --user=default --password=core --query="CREATE USER core IDENTIFIED WITH sha256_password BY 'core'" --query="GRANT CURRENT GRANTS on *.* TO core WITH GRANT OPTION"

Подготовка РЕД ОС к установке

Установка часового пояса

При установке РЕД ОС 8.0 не предлагается указать часовой пояс (по умолчанию устанавливается время UTC). Его нужно установить вручную (для корректной работы видеоархива, календарей доступа и т.д.), например:

Блок кода
languagebash
sudo timedatectl set-timezone Asia/Novosibirsk
Подсказка
titleКак узнать имя своей timezone?

На примере города Новосибирска: timedatectl list-timezones | grep "Novosibirsk"

Обновление ОС

Перед началом установки необходимо обновить ОС:

Блок кода
languagebash
sudo dnf update && sudo dnf upgrade -y

Скачивание установочных файлов

Блок кода
languagebash
titleСкачивание архива
curl --insecure -O https://archive.eltex-co.ru/evi-raw/evi-1.4.1/evi-1.4.1_redos.tar
Блок кода
languagebash
titleИзвлечение файлов архива
tar -xvf evi-1.4.0_redos.tar