Версия ПО 1.5.0

Ротация log-файлов

Лог-файлы сервисов располагаются в папке /var/log/имя-сервиса.

Сервисы EVI не выполняют автоматическую ротацию логов. 

Для настройки ротации используйте утилиту logrotate в соответствии с требованиями вашей системы.

Пример настроенной конфигурации для ротирования файла /var/log/evi-core/evi-core.log.

/var/log/evi-core/evi-core.log
{
        hourly
        size 100M
        dateext
        dateformat -%Y-%m-%d_%H-%s
        missingok
        rotate 15
        copytruncate
		compress
        notifempty
}

Пояснение параметров:

ПараметрОписание
hourlyротация каждый час
size 100Mротация при достижении размера 100 МБ
dateextдобавление даты к имени архивного лога
dateformatформат даты в имени файла
missingokне ошибка, если файл отсутствует
rotate 15хранить до 15 архивных копий
copytruncateкопировать и обрезать текущий лог (без перезапуска сервиса)
notifemptyне ротировать, если лог пуст

Порты доступа к сервисам

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

Управление

  1. 80
  2. 443

СКУД

  1. 8085

Видео трафик

  1. 7260
  2. 7250
  3. 7285

Видео сервисы

  1. 7302
  2. 7202

Директория для сохранения видеоархива

Для настройки директории необходимо перейти в редактирование конфигурационного файла:

/opt/evi-archive/evi-archive.conf

И указать в разделе [archive] у параметра  path директорию в которой будет храниться архив:

[archive]
path=./archive

Программа поддерживает только один путь сохранения.

Как подключить несколько дисков

Если требуется использовать несколько дисков, необходимо объединить их на уровне ОС Linux с помощью монтирования в общую папку.

  1. Подключите дополнительные диски.
  2. Создайте общий mount-путь, например: /mnt/archive
  3. Объедините диски в один логический путь через:
    1. LVM — объединение в единый том,
    2. RAID (например, RAID 0 или RAID 5) — для распределения данных,
    3. или bind-монтирование нескольких разделов в подкаталоги общей папки.

Укажите этот путь в конфигурации:

[archive]
path=/mnt/archive

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


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

Структура хранения файлов

Сохраняемый архив в директорию на сервере имеет внутренний формат .arc.

archive/live/{camera_id}/{date}.arc

Просмотр архивных файлов

Экспорт, просмотр архива производится с помощью evi-video-client.

Подробнее можно узнать в разделе Просмотр архива.

Загрузка SSL-сертификатов

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

Сервис evi-core

Перейдите в редактирование конфигурационного файла /opt/evi-core/evi-core.conf.

Укажите путь в разделе [ssl] у параметров crt и key путь до сертификата и ключа:

[ssl]
cert_file=<путь до сертификата>
key_file=<путь до ключа>

Сервис evi-scud

Перейдите в редактирование конфигурационного файла /opt/evi-scud/evi-scud.conf.

Укажите в разделе [ssl] у параметров crt и key путь до сертификата и ключа:

[ssl]
cert_file=<путь до сертификата>
key_file=<путь до ключа>

Сервис evi-live

Перейдите в редактирование конфигурационного файла /opt/evi-live/evi-live.conf.

Указать в разделе [ssl] у параметров cert и key путь до сертификата и ключа:

[ssl]
cert_file=<путь до сертификата>
key_file=<путь до ключа>

Сервис evi-archive

Перейти в редактирование конфигурационного файла /opt/evi-archive/evi-archive.conf.

Укажите в разделе [ssl] у параметров cert и key путь до сертификата и ключа:

[ssl]
cert_file=<путь до сертификата>
key_file=<путь до ключа>

Сервис evi-analyzer

Перейти в редактирование конфигурационного файла /opt/evi-analyzer/evi-analyzer.conf.

Указать в разделе [ssl] у параметров cert и key путь до сертификата и ключа:

[ssl]
cert_file=<путь до сертификата>
key_file=<путь до ключа>

Сервис evi-core-web

Перейдите в редактирование конфигурационного файла /etc/angie/http.d/evi-core-web.conf .

Укажите у параметров ssl_certificate и ssl_certificate_key путь до сертификата и ключа:

ssl_certificate <путь до сертификата>;
ssl_certificate_key <путь до сертификата>;

Сервис evi-analytics

Перейдите в редактирование файла evi-analytics_1.4.0_docker-compose.sh .

Укажите в переменных:

  #EVI-ANALYTICS CONFIG SECTION [ssl]
  : ${EVIANALYTICS_SSL_CERT_FILE="<путь до сертификата>"}
  : ${EVIANALYTICS_SSL_KEY_FILE="<путь до ключа>"}

Конфигурационные файлы

СервисПуть до конфигурационного файла
evi-core/opt/evi-core/evi-core.conf
evi-core-web/etc/angie/http.d/evi-core-web.conf
evi-scud/opt/evi-scud/evi-scud.conf
evi-live/opt/evi-live/evi-live.conf
evi-archive/opt/evi-archive/evi-archive.conf
evi-analyzer/opt/evi-analyzer/evi-analyzer.conf

Модуль ядра evi-core

Конфигурационный файл evi-core располагается в /opt/evi-core/evi-core.conf.

[api]
listen=127.0.0.1                      # Адрес или интерфейс HTTPS API (* - all interfaces) (ENV: EVICORE_API_LISTEN)
port=7000                             # Порт для HTTPS API (ENV: EVICORE_API_PORT)

[ssl]
cert_file=/opt/evi-core/ssl/cert.crt  # Файл сертификата (ENV: EVICORE_SSL_CERT_FILE)
key_file=/opt/evi-core/ssl/cert.key   # Файл ключа сертификата (ENV: EVICORE_SSL_KEY_FILE)
# pem=123                             # Парольная фраза сертификата (опционально) (ENV: EVICORE_SSL_PEM)

[log]
level=info                            # Уровень логов (ENV: EVICORE_LOG_LEVEL)
file=/var/log/evi-core/evi-core.log   # Путь до лог файла (ENV: EVICORE_LOG_FILE)

[postgresql]
host=127.0.0.1                        # PostgreSQL адрес (ENV: EVICORE_POSTGRESQL_HOST)
port=5432                             # PostgreSQL порт (ENV: EVICORE_POSTGRESQL_PORT)
dbname=core                           # PostgreSQL имя базы (ENV: EVICORE_POSTGRESQL_DBNAME)
username=core                         # PostgreSQL пользователь (ENV: EVICORE_POSTGRESQL_USERNAME)
password=core                         # PostgreSQL пароль (ENV: EVICORE_POSTGRESQL_PASSWORD)

[clickhouse]
host=127.0.0.1                        # Clickhouse адрес (ENV: EVICORE_CLICKHOUSE_HOST)
port=9000                             # Clickhouse порт (ENV: EVICORE_CLICKHOUSE_PORT)
dbname=core                           # Clickhouse имя базы (ENV: EVICORE_CLICKHOUSE_DBNAME)
username=core                         # Clickhouse пользователь (ENV: EVICORE_CLICKHOUSE_USERNAME)
password=core                         # Clickhouse пароль (ENV: EVICORE_CLICKHOUSE_PASSWORD)

[evi-scud]
rpc_host=127.0.0.1                    # Адрес evi-scud (ENV: EVICORE_EVISCUD_RPC_HOST)
rpc_port=7102                         # RPC порт evi-scud (ENV: EVICORE_EVISCUD_RPC_PORT)

[evi-analytics]
rpc_host=127.0.0.1                    # Адрес evi-analytics (ENV: EVICORE_EVIANALYTICS_RPC_HOST)
rpc_port=7402                         # RPC порт evi-analytics (ENV: EVICORE_EVIANALYTICS_RPC_PORT)

[evi-live]
rpc_host=127.0.0.1                    # Адрес evi-live (ENV: EVICORE_EVILIVE_RPC_HOST)
rpc_port=7202                         # RPC порт evi-live (ENV: EVICORE_EVILIVE_RPC_PORT)

[evi-archive]
rpc_host=127.0.0.1                    # Адрес evi-archive (ENV: EVICORE_EVIARCHIVE_RPC_HOST)
rpc_port=7302                         # RPC порт evi-archive (ENV: EVICORE_EVIARCHIVE_RPC_PORT)

[evi-analyzer]
rpc_host=127.0.0.1                    # Адрес evi-analyzer (ENV: EVICORE_EVIANALYZER_RPC_HOST)
rpc_port=7502                         # RPC порт evi-analyzer (ENV: EVICORE_EVIANALYZER_RPC_PORT)

Модуль evi-scud

Конфигурационный файл evi-scud располагается в /opt/evi-scud/evi-scud.conf.

[ssl]
cert_file=/opt/evi-scud/ssl/cert.crt    # Файл сертификата (ENV: EVISCUD_SSL_CERT_FILE)
key_file=/opt/evi-scud/ssl/cert.key     # Файл ключа сертификата (ENV: EVISCUD_SSL_KEY_FILE)
# pem=123                               # Парольная фраза сертификата (опционально) (ENV: EVISCUD_SSL_PEM)

[log]
level=info                             # Уровень логов (ENV: EVISCUD_LOG_LEVEL)
file=/var/log/evi-scud/evi-scud.log     # Путь до лог файла (ENV: EVISCUD_LOG_FILE)

[postgresql]
host=127.0.0.1                          # PostgreSQL адрес (ENV: EVISCUD_POSTGRESQL_HOST)
port=5432                               # PostgreSQL порт (ENV: EVISCUD_POSTGRESQL_PORT)
dbname=core                             # PostgreSQL имя базы (ENV: EVISCUD_POSTGRESQL_DBNAME)
username=core                           # PostgreSQL пользователь(ENV: EVISCUD_POSTGRESQL_USERNAME)
password=core                           # PostgreSQL пароль (ENV: EVISCUD_POSTGRESQL_PASSWORD)

[rpc]
listen=127.0.0.1                        # Адрес или интерфейс для RPC (* - все) (ENV: EVISCUD_RPC_LISTEN)
port=7102                               # TCP SSL порт для RPC (ENV: EVISCUD_RPC_PORT)

[events]
listen=127.0.0.1                        # Адрес или интерфейс для событий (* - все) (ENV: EVISCUD_EVENTS_LISTEN)
port=7104                               # TCP SSL порт для событий (ENV: EVISCUD_EVENTS_PORT)

[controller]
listen=*                                # Адрес или интерфейс для связи с IPAER (* - все) (ENV: EVISCUD_CONTROLLER_LISTEN)
port=7105                               # TCP порт для связи с IPAER (ENV: EVISCUD_CONTROLLER_PORT)
ssl_port=8085                           # TCP SSL порт для связи с IPAER (ENV: EVISCUD_CONTROLLER_SSL_PORT)

Модуль evi-live

Конфигурационный файл evi-live располагается в /opt/evi-live/evi-live.conf.

[api]
listen=*                             # Адрес или интерфейс HTTPS API for HTTPS API (* - all interfaces) (ENV: EVILIVE_API_HOST)
port=7200                            # Порт для HTTPS API (ENV: EVILIVE_API_PORT)

[ssl]
cert_file=/opt/evi-live/ssl/cert.crt # Файл сертификата (ENV: EVILIVE_SSL_CERT_FILE)
key_file=/opt/evi-live/ssl/cert.key  # Файл ключа сертификата (ENV: EVILIVE_SSL_KEY_FILE)
# pem=123                            # Парольная фраза сертификата (опционально) (ENV: EVILIVE_SSL_PEM)

[log]
level=info                          # Уровень логов (ENV: EVILIVE_LOG_LEVEL)
file=/var/log/evi-live/evi-live.log  # Путь до лог файла (ENV: EVILIVE_LOG_FILE)

[postgresql]
host=127.0.0.1                       # PostgreSQL адрес (ENV: EVILIVE_POSTGRESQL_HOST)
port=5432                            # PostgreSQL порт (ENV: EVILIVE_POSTGRESQL_PORT)
dbname=core                          # PostgreSQL имя базы (ENV: EVILIVE_POSTGRESQL_DBNAME)
username=core                        # PostgreSQL пользователь (ENV: EVILIVE_POSTGRESQL_USERNAME)
password=core                        # PostgreSQL пароль (ENV: EVILIVE_POSTGRESQL_PASSWORD)

[rpc]
listen=127.0.0.1                     # Адрес или интерфейс для RPC (* - все) (ENV: EVILIVE_RPC_HOST)
port=7202                            # TCP SSL порт для RPC (ENV: EVILIVE_RPC_PORT)

[events]
listen=127.0.0.1                     # Адрес или интерфейс для событий (* - все) (ENV: EVILIVE_EVENTS_HOST)
port=7204                            # TCP SSL порт для событий (ENV: EVILIVE_EVENTS_PORT)

[global]
extern_host=127.0.0.1           # Внешний или прокси адрес (ENV: EVILIVE_GLOBAL_EXTERN_HOST)
extern_port_rtsp_tcp=7260            # Внешний или прокси порт RTSP TCP (ENV: EVILIVE_GLOBAL_EXTERN_PORT_RTSP_TCP)
extern_port_rtmp=7250                # Внешний или прокси порт RTMP (ENV: EVILIVE_GLOBAL_EXTERN_PORT_RTMP)
extern_port_webrtc_tcp=7285          # Внешний или прокси порт WebRTC TCP (ENV: EVILIVE_GLOBAL_EXTERN_WEBRTC_TCP)
extern_port_webrtc_udp=7285          # Внешний или прокси порт WebRTC UDP (ENV: EVILIVE_GLOBAL_EXTERN_WEBRTC_UDP)
extern_port_api=7200                 # Внешний или прокси порт API (ENV: EVILIVE_GLOBAL_EXTERN_PORT_API)

[rtsp]
listen=*                             # Адрес или интерфейс RTSP (* - все) (ENV: EVILIVE_RTSP_HOST)
tcp_port=7260                        # TCP порт для RTSP (ENV: EVILIVE_RTSP_TCP_PORT)

[rtmp]
listen=*                             # Адрес или интерфейс для RTMP (* - all interfaces) (ENV: EVILIVE_RTMP_HOST)
port=7250                            # TCP порт для RTMP (ENV: EVILIVE_RTMP_PORT)

[webrtc]
listen=*                            # Адрес или интерфейс для WebRTC (* - all interfaces) (ENV: EVILIVE_WEBRTC_HOST)
tcp_port=7285                       # TCP порт для WebRTC (ENV: EVILIVE_WEBRTC_TCP_PORT)
udp_port=7285                       # UDP порт для WebRTC (ENV: EVILIVE_WEBRTC_UDP_PORT)

Модуль evi-archive

Конфигурационный файл evi-archive располагается в /opt/evi-archive/evi-archive.conf.

[ssl]
cert_file=/opt/evi-archive/ssl/cert.crt   # Файл сертификата (ENV: EVIARCHIVE_SSL_CERT_FILE)
key_file=/opt/evi-archive/ssl/cert.key    # Файл ключа сертификата (ENV: EVIARCHIVE_SSL_KEY_FILE)
# pem=123                                 # Парольная фраза сертификата (опционально) (ENV: EVIARCHIVE_SSL_PEM)

[log]
level=info                               # Уровень логов(ENV: EVIARCHIVE_LOG_LEVEL)
file=/var/log/evi-archive/evi-archive.log # Путь до лог файла (ENV: EVIARCHIVE_LOG_FILE)

[rpc]
listen=127.0.0.1                          # Адрес или интерфейс для RPC (* - все) (ENV: EVIARCHIVE_RPC_HOST)
port=7302                                 # TCP SSL порт для RPC (ENV: EVIARCHIVE_RPC_PORT)

[events]
listen=127.0.0.1                          # Адрес или интерфейс для событий (* - все) (ENV: EVIARCHIVE_EVENTS_HOST)
port=7304                                 # TCP SSL порт для событий (ENV: EVIARCHIVE_EVENTS_PORT)

[archive]
path=./archive                            # Путь до директории архива (ENV: EVIARCHIVE_ARCHIVE_PATH)

Модуль evi-analyzer

Конфигурационный файл evi-analyzer располагается в /opt/evi-analyzer/evi-analyzer.conf.

[ssl]
cert_file=/opt/evi-analyzer/ssl/cert.crt    # Файл сертификата (ENV: EVIANALYZER_SSL_CERT_FILE)
key_file=/opt/evi-analyzer/ssl/cert.key     # Файл ключа сертификата (ENV: EVIANALYZER_SSL_KEY_FILE)
# pem=123                                   # Парольная фраза сертификата (опционально) (ENV: EVIANALYZER_SSL_PEM)

[log]
level=info                                 # Уровень логов(ENV: EVIANALYZER_LOG_LEVEL)
file=/var/log/evi-analyzer/evi-analyzer.log # Путь до лог файла (ENV: EVIANALYZER_LOG_FILE)

[postgresql]
host=127.0.0.1                              # PostgreSQL адрес (ENV: EVIANALYZER_POSTGRESQL_HOST)
port=5432                                   # PostgreSQL порт (ENV: EVIANALYZER_POSTGRESQL_PORT)
dbname=core                                 # PostgreSQL имя базы (ENV: EVIANALYZER_POSTGRESQL_DBNAME)
username=core                               # PostgreSQL пользователь (ENV: EVIANALYZER_POSTGRESQL_USERNAME)
password=core                               # PostgreSQL пароль (ENV: EVIANALYZER_POSTGRESQL_PASSWORD)

[rpc]
listen=127.0.0.1                            # Адрес или интерфейс для RPC (* - all interfaces) (ENV: EVIANALYZER_RPC_HOST)
port=7502                                   # TCP SSL порт для RPC (ENV: EVIANALYZER_RPC_PORT)

[events]
listen=127.0.0.1                            # Адрес или интерфейс для событий  (* - all interfaces) (ENV: EVIANALYZER_EVENTS_HOST)
port=7504                                   # TCP SSL порт для событий (ENV: EVIANALYZER_EVENTS_PORT)

Модуль веб-интерфейса evi-core-web

Конфигурационный файл evi-core-web.conf располагается в /etc/angie/http.d/evi-core-web.conf:

# 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\", \"tablet\": true}";
        }

        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;
        }

        # Отдельная настройка для /api/v1/firmware
        location /api/v1/firmware {
                # включаем прокси — брать API-запросы с указанного URL:
                proxy_pass https://localhost:7000;

                # Увеличенный лимит для загрузки прошивки
                client_max_body_size 15M;
        }
}