...
| Scroll Ignore | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||
Версия ПО 2.6 |
| A Shared Block | |||||
|---|---|---|---|---|---|
| |||||
|
Оглавление printable false
""
Получение привилегий sudo без дополнительного ввода пароля (опционально)
От имени непривилегированного пользователя выполните команду:
| Блок кода |
|---|
echo "$(whoami) ALL=(ALL) NOPASSWD: ALL" | sudo EDITOR='tee -a' visudo |
Далее введите пароль. После этого для выполнения команд с привилегиями sudo или перехода в режим суперпользователя дополнительный ввод пароля не потребуется.
Якорь Install_ECCM Install_ECCM
Установка ECCM
| Install_ECCM | |
| Install_ECCM |
Установочный архив
Файлы, необходимые для запуска проекта, распространяются в виде tar-архива. Их можно получить с общедоступного облака. Загрузите архив на сервер и распакуйте его. Рекомендуется распаковывать архив в заранее созданную отдельную директорию.
Пример команд:
| Блок кода |
|---|
wget "https://cloud.eltex-co.ru/index.php/s/P8xDfmyo3XyEs0g/download?path=%2F&files=eccm-2.6.tar.gz" -O eccm-2.6.tar.gz mkdir eccm tar -zxvf eccm-2.6.tar.gz -C eccm/ |
Установка docker и docker-compose
Наиболее простой и быстрый способ установки — перейти в директорию, в которую был распакован установочный архив, и воспользоваться скриптом compose-tools.sh, используя флаг --install:
| Блок кода |
|---|
cd eccm/2.6 sudo ./compose-tools.sh --install |
Для проверки установленного docker можно выполнить команду:
| Блок кода |
|---|
docker --version |
Для проверки установленного docker-compose в Ubuntu можно выполнить команды:
| Блок кода |
|---|
docker compose version |
Scroll Pagebreak
При установке на операционные системы Astra Linux, RedOS или Альт Сервер команда проверки версии установленного docker-compose имеет вид:
| Блок кода |
|---|
docker-compose version |
Offline-установка
Установка ЕССМ в систему без доступа к сети Интернет подробно описана в разделе "Offline-установка ECCM".
Запуск ECCM
Проект ECCM распространяется в виде набора файлов, позволяющих запустить все необходимые сервисы с помощью docker-compose. Проект разделен на два docker-стека:
- база данных (PostgreSQL 14.10);
- стек сервисов ECCM.
Такое разделение обусловлено необходимостью обеспечения горизонтального масштабирования проекта и возможности интеграции с другими проектами компании, например EDM.
Подробнее в разделе "Векторы сетевого взаимодействия".
Скрипт для запуска ECCM
Ввиду большого количества параметров запуска системы, был подготовлен скрипт, выполняющий запуск проекта на одном или нескольких хостах с параметрами производительности, позволяющими обслуживать около 100 устройств. Фактическая производительность зависит от многих факторов, включающих производительность аппаратной части и сложность обслуживаемых сетевых устройств. Для вызова справочной информации перейдите в каталог со скриптом и введите команду:
| Блок кода |
|---|
sudo ./compose-tools.sh -h |
Список всех используемых ключей и их описание можно найти в разделе "Используемые опции compose-tools.sh".
Запуск ECCM на одном хосте
Для запуска проекта перейдите в директорию с файлами установочного архива и выполните команду:
| Блок кода |
|---|
sudo ./compose-tools.sh --start <ECCM ADDRESS> |
, где **ECCM ADDRESS** — — это IP-адрес, по которому будет выполняться подключение к серверу. Например, если адрес сервера 100.110.2.2, команда будет выглядеть:
| Блок кода |
|---|
sudo ./compose-tools.sh --start 100.110.2.2 |
| Примечание |
|---|
Скрипт применяет указанный в ECCM ADDRESS адрес к запускаемым контейнерам, но при этом не перезаписывает его в файлах с переменными. Чтобы при запуске использовать адрес, указанный в файлах с переменными, пропишите ключ |
Для остановки проекта выполните команду:
| Блок кода |
|---|
sudo ./compose-tools.sh --stop |
Запуск ECCM на одном хосте в интеграции с Peeper
draw.io Diagram border true viewerToolbar true fitWindow false diagramDisplayName lbox true revision 1 diagramName Структурная схема_в2 simpleViewer false width 600 links auto tbstyle top diagramWidth 823
Для мониторинга параметров операционной системы и работоспособности приложений ECCM рекомендуется развернуть Peeper.
...
Сгенерируйте token в WEB Grafana (https://<адрес Peeper Server>:443). Зайдите в меню "Administration" → "Users and access" → "Service accounts" → "Add service account" → "Add service account token" → "Generate token".
В файле peeper/.env укажите:
- IP-адрес или доменное имя для подключения к Peeper-server в переменной
PEEPER_HOST - В переменной
PEEPER_EXTERNAL_MODEустановите значениеtrue, во избежание конфликтов при создании external сети в Docker. - В переменной
PEEPER_TOKENукажите токен:Блок кода PEEPER_HOST="peeper.eltex.loc" # Доменное имя или IP-адрес Peeper-сервера PEEPER_EXTERNAL_MODE="true" # false, если на сервере отсутствует external network в docker PEEPER_TOKEN="" # Токен сервисного аккаунта, который создается в peeper-server
Для сбора информации с базы данных ECCM настройте файл peeper/.env.postgres. Ниже представлен пример настройки файла:
| Блок кода |
|---|
POSTGRES_EXPORTER_ENABLED=true # Включение снятия метрик с базы данных PostgreSQL POSTGRES_HOST="100.110.2.2" # Адрес базы данных PostgreSQL для подключения и снятия метрик POSTGRES_PORT="5432" # Порт базы данных PostgreSQL для подключения и снятия метрик POSTGRES_DB="" # Название базы данных PostgreSQL для мониторинга POSTGRES_USER="tester" # Пользователь базы данных PostgreSQL для подключения и снятия метрик POSTGRES_PASSWORD="tester" # Пароль для пользователя $POSTGRES_USER, который нужен для снятия метрик |
...
Запуск ЕССМ с базой данных на отдельном сервере
draw.io Diagram border true viewerToolbar true fitWindow false diagramDisplayName lbox true revision 1 diagramName Структурная схема_в3 simpleViewer false width 600 links auto tbstyle top diagramWidth 823
ECCM Application Server — сервер, на котором развернуто приложение, обеспечивающее работу системы и взаимодействие с устройствами, а также веб-интерфейс пользователя.
Database Server — сервер с базами данных PostgreSQL 14. Возможно использование уже существующего в инфраструктуре кластера.
Device Management Network — IP-сеть управления оборудованием, через которые ECCM имеет доступ по L3.
Operator/Administrator — оператор системы, занимающийся мониторингом и настройкой подконтрольного оборудования/системный администратор компании или сотрудники техподдержки Eltex, если есть договоренность об удаленном доступе.
Для случая, когда необходимо запустить ЕССМ на нескольких серверах (один сервер — для базы данных PostgreSQL, второй сервер — для остального стека сервисов ЕССМ), возможно использовать опцию многохостовой установки. Для этого:
1. Установите docker и docker-compose на обоих серверах согласно разделу "Установка ЕССМ";
2. Настройте сервер с базами данных:
2.1. Для переопределения логина/пароля/временной зоны/ограничения ОЗУ для работы с БД отредактируйте файл postgres/.env. Для изменения параметров, влияющих на производительность базы данных, отредактируйте файл postgres/data/postgresql.conf (настройки по умолчанию достаточны для тестового запуска и поддержки около 100 устройств);Scroll Pagebreak
2.2. Запустите базу данных PostgreSQL на сервере с БД. Для запуска БД перейдите в директорию eccm/postgres и выполните команду для запуска контейнера:
| Блок кода |
|---|
cd eccm/postgres docker compose up -d |
3. Настройте сервер с приложениями:
3.1. Для переопределения переменных, отвечающих за авторизацию пользователя в системе ECCM и поведение проекта (адрес веб-интерфейса, временная зона, адрес БД, логин/пароль для доступа к БД и пр.), отредактируйте файл "eccm/.env";
3.2. Выполните запуск ЕССМ на сервере с ЕССМ с помощью следующей команды:
| Блок кода |
|---|
sudo ./compose-tools.sh --start <ECCM ADDRESS> --database-host <DB ADDRESS> --database-port <DB PORT> |
, где <DB ADDRESS> и <DB PORT>— это IP-адрес и порт, по которым будет выполняться подключение к серверу БД. Например, если адрес сервера ЕССМ 100.110.2.2, адрес сервера БД 100.110.2.4, порт сервера БД 5432, то команда будет выглядеть:
| Блок кода |
|---|
sudo ./compose-tools.sh --start 100.110.2.2 --database-host 100.110.2.4 --database-port 5432 |
Запуск ЕССМ в отказоустойчивой системе
Начиная с версии 2.6 в ЕССМ появилось резервирование формата Active-Active. Процесс запуска ЕССМ в отказоустойчивой системе с сервером базы данных и с отдельным сервером для базы данных описан в разделе Запуск ЕССМ в отказоустойчивой системе.
Якорь Vars Vars
Переменные окружения
| Vars | |
| Vars |
Файлы, необходимые для запуска ECCM и содержащие переменные окружения и конфигурации, находятся в директории, в которую был распакован установочный архив:
| Блок кода |
|---|
postgres/.env postgres/data/postgresql.conf eccm/.env |
Якорь Postgres Postgres
postgres/.env
| Postgres | |
| Postgres |
В postgres/.env содержатся переменные, определяющие поведение стека БД PostgreSQL при его запуске в контейнере. В таблице ниже представлено описание данных переменных:
| Переменная | Значение по умолчанию | Описание | |
|---|---|---|---|
COMPOSE_PROJECT_NAME | postgres | Название проекта в docker-compose (используется для идентификации, в случае если на сервере запущено несколько проектов) | |
POSTGRES_TAG | 2.6 | Версия образа контейнера postgres | |
POSTGRES_REGISTRY | hub.eltex-co.ru | Адрес docker-registry, с которого будет выполняться получение образа postgres. Если используется локальное зеркало, то можно указать его адрес | |
ROOTECCM_POSTGRESNETWORK_USERMODE | standalone | Режим работы ЕССМ. Доступные значения: cluster, standalone. Если переменная не задана, значение будет установлено в standalone автоматически при запуске compose-tools.sh без флага "--cluster" | |
KEEPALIVE_INTERVAL | 5 | Интервал секундах, означающий проверку доступности узла кластера. При истечении времени, если ответа не последовало, keepalived переключится на другую доступную ноду | |
ROOT_POSTGRES_USER | Параметр, позволяющий переопределить логин суперпользователя для доступа и конфигурирования базы данных | ||
| Параметр, позволяющий переопределить логин суперпользователя для доступа и конфигурирования базы данных | ROOT_POSTGRES_PASSWORD | Параметр, позволяющий переопределить пароль суперпользователя для доступа и конфигурирования базы данных | |
ECCM_DATABASE | eccm | Название базы данных стека сервисов eccm | |
POSTGRES_TIMEZONE | Asia/Novosibirsk | Временной пояс, в котором работает система (указывается в соответствии с tz database, например "Asia/Novosibirsk") | |
POSTGRES_SHM_SIZE | 2gb | Ограничение выделенной оперативной памяти для работы с БД PostgreSQL | |
POSTGRES_PRIVILEGED_MODE | false | Запуск контейнера в привилегированном режиме | |
|
| Внешний адрес БД PostgreSQL | |
| 5432 | Порт, на котором доступна БД PostgreSQL | |
|
| Максимальное количество лог-файлов контейнеров | |
| 50M | Максимальный размер лог-файлов контейнеров | |
| true | Разрешение сжатия лог-файлов контейнеров | |
|
| Версия образа контейнера postgres-configurator | |
| true | Активация запуска контейнера postgres-configurator при старте системы |
Якорь Postgresdata Postgresdata
postgres/data/postgresql.conf
| Postgresdata | |
| Postgresdata |
Файл содержит параметры, влияющие на производительность базы данных. Настройки по умолчанию достаточны для тестового запуска и поддержки около 100 устройств. Для изменения конфигурации ECCM ознакомьтесь с полным Руководством пользователя или обратитесь в Службу технической поддержки Eltex.
Якорь Eccm Eccm
eccm/.env
| Eccm | |
| Eccm |
В файле eccm/.env находятся переменные, определяющие поведение проекта. В таблице ниже представлено описание данных переменных:
| Переменная | Значение по умолчанию | Описание | ||||
|---|---|---|---|---|---|---|
COMPOSE_PROJECT_NAME | eccm | Название проекта в docker-compose (используется для идентификации, в случае если на сервере запущено несколько проектов) | ||||
ECCM_PROFILE | production | Профиль проекта | ||||
ECCM_TAG | 2.6 | Версия образов контейнеров | ||||
ECCM_REGISTRY | hub.eltex-co.ru | Адрес docker-registry, с которого будет выполняться получение образов системы. Если используется локальное зеркало, то можно указать его адрес | ||||
ECCM_BACKBONE_ADDRESS | 192.168.0.1 | Внутренний адрес, на котором будет работать система ECCM с устройствами в сети | ||||
ECCM_WEB_ADDRESS | 192.168.0.1 | Адрес, на котором будет работать веб-интерфейс системы ECCM | ||||
ECCM_WEB_PORT | 80 | Порт для доступа к веб-интерфейсу | ||||
ECCM_TIMEZONE | Asia/Novosibirsk | Временной пояс, в котором работает система (указывается в соответствии с tz database, например "Asia/Novosibirsk") | ||||
ECCM_LOGLEVEL | INFO | Уровень логирования в проекте | ||||
MAX_CONCURRENT_SSH_TASKS | 20 | Количество одновременно выполняемых операций с устройствами | ||||
POSTGRES_HOST | 192.168.0.1 | Адрес, на котором работает БД PostgreSQL | ||||
POSTGRES_PORT | 5432 | Порт для доступа к БД PostgreSQL | ||||
ROOT_POSTGRES_USER | Параметр, позволяющий переопределить логин суперпользователя для доступа и конфигурирования базы данных | |||||
ROOT_POSTGRES_PASSWORD | Параметр, позволяющий переопределить пароль суперпользователя для доступа и конфигурирования базы данных | |||||
ECCM_POSTGRES_DB | eccm | Название базы данных для сервисов eccm ECCM | ||||
ECCM_POSTGRES_USER | Параметр, позволяющий переопределить логин по умолчанию для доступа к базе данных ECCM_POSTGRES_DB | |||||
ECCM_POSTGRES_PASSWORD | Параметр, позволяющий переопределить пароль по умолчанию для доступа к базе данных ECCM_POSTGRES_DB | |||||
| 10m | Интервал отображения push-уведомлений в веб-интерфейсе при ошибке получения лицензии | ||||
| 60m | Интервал рассылки уведомлений telegram/email при ошибке получения лицензии | ||||
| 1 | Номер текущей ноды. Должен быть уникальным в схеме резервирования | ||||
| 1G | Ограничение физической памяти для docker-контейнера | ||||
| | Путь к файлу с сертификатом для HTTPS | ||||
| | Путь к файлу с ключом для HTTPS | ||||
KEY_PASS_PATH | ./cert/key.pass | Путь к файлу с паролем ключа для HTTPS | ||||
| | Порт, на котором ECCM будет доступен по HTTPS | ||||
LOGGING_ASPECT_ENABLED | false | Включение логирования через аспекты сервисов. Аспект логирует все входы и выходы из методов, их параметры, а также возвращаемые значения
| ||||
|
| Максимальное количество лог-файлов контейнера | ||||
| 50M | Максимальный размер лог-файлов контейнера | ||||
| true | Разрешить сжатие лог-файлов контейнера | ||||
AUTH_ECCM_AUTHENTICATION_ENABLED | false | Включение аутентификации с помощью локальных учетных записей |
Якорь Cluster Cluster
.env.cluster
| Cluster | |
| Cluster |
В файле .env.cluster находятся переменные, определяющие поведение кластера при запуске ЕССМ в отказоустойчивой системе. В таблице ниже представлено описание данных переменных:
| ПеременнаяПеременная | Значение по умолчанию | Описание | |||
|---|---|---|---|---|---|
ECCM_NETWORK_MODE | cluster | Режим работы ЕССМ. Доступные значения: cluster, standalone
| |||
| false | Использование перезапуска кластераИспользование перезапуска кластера с принудительным назначением ролей БД. Используется в случаях разрушения кластера или необходимости обновления | |||
| repmgr | Наименование служебной базы данных, которая используется для отслеживания состояния баз данных в кластере | |||
| repmgr | Имя пользователя, созданного для управления работой и связью между серверами баз данных в кластере | |||
| repmgr | Пароль, обеспечивающий безопасный доступ к служебной базе данных для пользователя REPMGR_USER | |||
| 5 | Время в секундах, в течение которого система будет ожидать ответа при попытке подключиться базе данных мастера. | |||
| 2 | Время в секундах, с которым система проверяет состояние и доступность всех серверов в кластере | |||
| 3 | Количество повторных попыток для установления соединения с другим сервером в случае сбоя. Каждая попытка выполняется в течение REPMGR_RECONNECT_INTERVAL | |||
| MASTER | Роль внешней базы данных при развертывании кластера. Используется только при запуске ЕССМ в отказоустойчивой системе с разделением приложения и БД | |||
| IP-адрес внешней базы данных PostgreSQL, установленной на другом хосте. Не использовать, если на хосте с ЕССМ запущена БД PostgreSQL | ||||
| 5432 | Порт подключения к внешней базе данных PostgreSQL, установленной на другом хосте. Не использовать, если на хосте с ЕССМ запущена БД PostgreSQL | |||
| IP-адрес подключения к внешней slave базе данных PostgreSQL, установленной на другом хосте. Использовать при развертывании отказоустойчивой системы с разделением на приложение и БД | ||||
| 5432 | Порт подключения к внешней slave базе данных PostgreSQL, установленной на другом хосте. Использовать при развертывании отказоустойчивой системы с разделением на приложение и БД | |||
| repmgr | Наименование служебной базы данных, которая используется для отслеживания состояния баз данных в кластере | |||
| repmgr | Имя пользователя, созданного для управления работой и связью между серверами баз данных в кластере | |||
| repmgr | Пароль, обеспечивающий безопасный доступ к служебной базе данных для пользователя REPMGR_USER | |||
| 5 | Время в секундах, в течение которого система будет ожидать ответа при подключении к базе данных PostgreSQL | |||
| 2 | Интервал в секундах, с которым система проверяет состояние и доступность всех серверов в кластере | |||
| 3 | Количество повторных попыток для установления соединения с другим сервером в случае сбоя. Каждая попытка выполняется в течение REPMGR_RECONNECT_INTERVAL | |||
| 3 | Время в секундах между |
| 3 | Время в секундах между повторными попытками соединения с сервером после неудачи |
| Разрешенные хосты для подключения в кластер. Указываются все IP-адреса нод, составляющих кластер: master-нода, slave -ноды и witness-нода | ||||
| Имя хоста IP-адрес master-ноды. При неуказанном значении переменная автоматически заполнится именем хоста сервера, с которого происходит запуск мастер-ноды | ||||
| master | Наименование master-ноды внутри базы данных ECCM | |||
| 1 | Уникальный идентификатор мастерmaster-ноды | |||
| Имя хоста slave-ноды. При неуказанном значении переменная автоматически заполнится именем хоста сервера, с которого происходит запуск IP-адрес slave-ноды | ||||
| slave | Наименование slave-ноды внутри базы данных ECCM | |||
| 2 | Уникальный идентификатор slave-ноды | |||
| IP-адрес witness-ноды | ||||
| witness | Наименование witness-ноды внутри базы данных ECCMИмя хоста witness-ноды. При неуказанном значении переменная автоматически заполнится именем хоста сервера, с которого происходит запуск witness-ноды | |||
| witness100 | Наименование Уникальный идентификатор witness-ноды внутри базы данных ECCM | |||
| 100 | Уникальный идентификатор witness-ноды |
| Внутренний адрес сервера, используемый для связи внутри кластера. Указание не является обязательным, если переменная не задана, значение будет определено автоматически при запуске |
| Уникальное имя, присваиваемое кластеру баз данных для их мониторинга |
| Пароль, используемый службой мониторинга для подключения к кластеру баз данных и получения информации о состоянии серверов |
| Внутренний адрес сервера, используемый Redis Sentinel для связи внутри кластера. Если переменная не задана, значение будет определено автоматически при запуске | ||||
| Уникальное имя, присваиваемое кластеру баз данных для их мониторинга | ||||
| Пароль, используемый службой мониторинга для подключения к кластеру баз данных и получения информации о состоянии серверов | ||||
| 1 | Количество нод, используемых в репликации. Учитывается только количество slave-нод | |||
| 5000 | Время в миллисекундах, по истечении которого служба мониторинга считает ноду недоступной | |||
| 10000 | Максимальное время в миллисекундах, в течение которого система мониторинга пытается завершить процесс автоматического переключения мастерства между нодами | |||
| 0.0.0.0 | Сетевые адреса, на которых сервер ожидает входящие подключения для репликации
| |||
| eccm | Имя основной базы данных ЕССМ. Дублируется имя базы данных из postgres/.env | |||
| 5 | Время в секундах между последовательными попытками проверки готовности базы данных принимать подключения | |||
| cluster | Common name сертификата. Должен совпадать с Common name сертификата в блоке [ dn ] | |||
| cluster.crt | Наименование сертификата кластера | |||
| ca.crt | Наименование корневого сертификата. Необходим для авторизации кластерного сертификата в Redis/Sentinel и Postgresql | |||
| cluster.key | Наименование ключа сертификата кластера | |||
| changeit | Пароль truststore.p12 при генерации средствами ECCM | |||
| truststore.p12 | Наименование truststore.p12 при загрузке кастомного truststore.p12 | |||
| Имя, под которым Java будет хранить и идентифицировать сертификат внутри truststore.p12 | ||||
| 1 | Количество нод, используемых в репликации. Учитываются только количество slave-нод | |||
| 5000 | Время в миллисекундах после которого служба мониторинга считает ноду недоступной | |||
| 10000 | Максимальное время в миллисекундах, в течение которого система мониторинга пытается завершить процесс автоматического переключения мастерства между нодами | |||
| 0.0.0.0 | Сетевые адреса, на которых сервер ожидает входящие подключения для репликации. Рекомендуется оставлять значение по умолчанию | |||
| eccm | Имя основной базы данных ЕССМ. Дублируется имя базы данных из postgres/.env | |||
| 5 | Время в секундах между последовательными попытками проверки готовности базы данных принимать подключения |
Доступ к веб-интерфейсу
Для подключения к веб-интерфейсу ECCM откройте браузер и в адресной строке введите следующее:
http://<IP-адрес вашего сервера (ECCM_WEB_ADDRESS)>/| Подсказка |
|---|
| По умолчанию используется логин 'eccm', пароль 'eccm'. |
Якорь Composetools Composetools
Используемые опции compose-tools.sh
| Composetools | |
| Composetools |
| Опция | Описание | ||
|---|---|---|---|
| --clean, -c | Очистка всех контейнеров, томов и сетей | ||
| --delete-containers | Удаление контейнеров без удаления томов и сетей | ||
| --dhcp | Активация DHCP-сервера с поддержкой функциональности Zero Touch Provisioning (ZTP), автоматически добавляющей устройства в систему | ||
| --database-host <HOST> | IP-адрес подключения к внешней базе данных PostgreSQL, установленной на другом хосте. Для отказоустойчивой системы с разделением на приложение и БД указывается IP-адрес master-БД. Не использовать, если на хосте с ЕССМ запущена БД PostgreSQL. | ||
| --database-port <PORT> | Порт подключения к внешней базе данных PostgreSQL, установленной на другом хосте. Не использовать, если на хосте с ЕССМ запущена БД PostgreSQL | ||
| --backup-database-host <HOST> | IP-адрес slave-базы данных PostgreSQL, установленной на другом хосте. Используется при запуске отказоустойчивой системы с разделением на приложение и БД | ||
| --backup-database-port <PORT> | Порт подключения к slave-базе данных PostgreSQL, установленной на другом хосте | ||
| --help, -h | Вызов справочной информации | ||
| --https | Активация режима поддержки https. Требует наличия сертификата | ||
| --install | Установка Docker и Docker-compose на хост | ||
| --interactive, -i | Запуск системы в интерактивном режиме. Использовать с ключом --start | ||
| --load | Загрузить все доступные архивы .tar.gz из директории с образами в docker | ||
| --logging, -l <LEVEL> | Задание уровня логирования для проекта ЕССМ. Доступные значения: DEBUG, INFO | ||
| --logging-aspect | Включение логирования через аспекты сервисов. Аспект логирует все входы и выходы из методов, их параметры, а также возвращаемые значения. Не рекомендуется включать этот параметр при штатной работе системы | ||
| --peeper | Запуск системы в интеграции с мониторинговым сервисом Peeper | ||
| --pull, -p | Скачивание/обновление образов перед запуском системы | ||
| --rootlog <LEVEL> | Задание уровня логирования для всех проектов. Доступные значения: DEBUG, INFO | ||
| --save | Сохранение всех docker-образов в архивы .tar.gz | ||
| --start, -s <ADDRESS> | Запуск системы с IP-адресом, по которому будет выполняться подключение к серверу | ||
| --stop | Остановка системы | ||
| --storage <ADDRESS> | Адрес ECCM в сети управления устройствами (backbone). Используется для хранения прошивок устройств | ||
| --tracing, -t <ADDRESS> | Активация сервиса трассировок Jaeger OpenTracing. Необходимо указать IP-адрес Jaeger-сервера | ||
| --show-containers | Показать все контейнеры на сервере | ||
| --show-images | Показать все образы на сервере | ||
| --recreate-service <SERVICE> | Пересоздать контейнер с новыми параметрами
| ||
| --cluster <NODE_ROLE> | Запуск системы в режиме кластера с определенной ролью. Доступные значения: MASTER, SLAVE, WITNESS |
| Информация |
|---|
Ключи --metrics, -m больше не поддерживаются, поскольку весь сбор метрик теперь осуществляет Peeper. Актуальные дашборды будут поставляться только для Peeper-server. |
Scroll Pagebreak
Примеры использования
Для установки Docker и Docker-compose на хост выполните команду:
| Блок кода |
|---|
sudo ./compose-tools.sh --install |
Для обновления образов всех контейнеров ECCM выполните команду:
| Блок кода |
|---|
sudo ./compose-tools.sh --pull |
Для запуска проекта перейдите в директорию с файлами установочного архива и выполните команду:
| Блок кода |
|---|
sudo ./compose-tools.sh --start <ECCM ADDRESS> |
Для запуска и подключения проекта к базе данных, установленной на другом хосте, выполните команду:
| Блок кода |
|---|
sudo ./compose-tools.sh --start <ECCM ADDRESS> --database-host <DB ADDRESS> --database-port <DB PORT> |
Для остановки проекта выполните команду:
| Блок кода |
|---|
sudo ./compose-tools.sh --stop |
Для очистки всех контейнеров, томов и сетей ECCM выполните команду:
| Блок кода |
|---|
sudo ./compose-tools.sh --clean |
...
| Примечание |
|---|
При запуске скрипта с флагом --clean данные с БД PostgreSQL также будут удалены. Данный флаг рекомендуется использовать только при полной деинсталляции ECCM с сервера. |
Для запуска проекта с нужным уровнем логирования добавьте ключ --logging в строку запуска:
| Блок кода |
|---|
sudo ./compose-tools.sh --start <ECCM ADDRESS> --logging DEBUG |
С версии 1.5 в проекте присутствует DHCP-сервер с поддержкой функциональности Zero Touch Provisioning (ZTP), автоматически добавляющей устройства в систему. По умолчанию сервер отключен. Для активации добавьте ключ --dhcp в строку запуска:
| Блок кода |
|---|
sudo ./compose-tools.sh --start <ECCM ADDRESS> --dhcp |
Для сохранения всех образов контейнеров в архивы .tar.gz выполните команду:
| Блок кода |
|---|
sudo ./compose-tools.sh --save |
Scroll Pagebreak
Для преобразования архивов с образами (.tar.gz) в docker-образы выполните команду:
| Блок кода |
|---|
sudo ./compose-tools.sh --load |
Для преобразования контейнера с новыми параметрами выполните команду (контейнер пересоздаcтся согласно файлу .env соответствующего compose-проекта):
| Блок кода |
|---|
sudo ./compose-tools.sh --recreate-service monitoring-service |
Известные проблемы и методы решения
Возможные ошибки при установке проекта
Ошибка:
E: Невозможно найти пакет conntrackВозможная причина: в системе настроены неактуальные репозитории менеджера пакетов.
Решение: добавить актуальный репозиторий в файл /etc/apt/sources.list и запустить установку проекта:
| Блок кода |
|---|
echo "deb https://download.astralinux.ru/astra/stable/1.7_x86-64/repository-extended/ 1.7_x86-64 main contrib non-free" | sudo tee -a /etc/apt/sources.list sudo ./compose-tools.sh --install |
Возможные ошибки при запуске проекта
Ошибка:
ERROR: Couldn't connect to Docker daemon at http+[docker://localhost](docker://localhost) - is it running?Возможная причина: docker-демон не запущен. Для проверки выполните команду:
| Блок кода |
|---|
sudo systemctl status docker |
Если в строке Active статус отличается от Active (running), причина определена верно.
Решение: запустить docker командой:
| Блок кода |
|---|
sudo systemctl start docker |
Ошибка:
Got permission denied while trying to connect to the Docker daemon socket at [unix:///var/run/docker.sock]
(unix://intdocs.eltex.loc/var/run/docker.sock): Get http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/json:
dial unix /var/run/docker.sock: connect: permission deniedВозможная причина: запуск производился от имени непривилегированного пользователя, который не был добавлен в группу docker.
Решение 1 (рекомендуется): добавить пользователя в группу docker с помощью команды:
| Блок кода |
|---|
sudo usermod -aG docker $(whoami) |
Решение 2: выполнять все операции с привилегиями root.
Ошибка:
Services starting...
Creating network "eccm_eltex-internal" with the default driver
ERROR: Pool overlaps with other one on this address space
Возможная причина: подсеть, указанная в ECCM_INTERNAL_SUBNETWORK, уже используется docker.
Решение: выбрать другую подсеть в файле .env. Просмотреть уже созданные docker-ом подсети можно с помощью команды:
| Блок кода |
|---|
sudo docker network inspect $(docker network ls --filter "DRIVER=bridge" --format '{{ .Name }}') -f '{{ .Name }} {{ (index .IPAM.Config 0).Subnet }}' |
Возможные ошибки при работе проекта
Ошибка: некорректно работает мониторинг, не собираются метрики устройств.
Возможная причина: сервису мониторинга не хватает памяти для корректной работы. В логах monitoring-service встречаются записи типа:
WARN [b1a52920966f70af] [item-poll-executor ] o.e.e.m.service.BackpressureController : Batch size adjusted for job 'item polling': 100000 → 0 (adjustment factor: 0.000, memory usage: 97%)
Решение: увеличить лимит памяти для monitoring-service. Для этого в файле eccm/.env увеличить значение переменной ECCM_MONITORING_SERVICE_XMX:
-ECCM_MONITORING_SERVICE_XMX=1G <--- старое значение
+ECCM_MONITORING_SERVICE_XMX=2G <--- новое значение
Возможные ошибки при остановке проекта
Ошибка:
ERROR: error while removing network: network eccm_eltex-internal id 324bd72dd9c107cf2ea48effb75d9e7ad2dfbc8f5f7317b89cd7f318d61d5c4b has active endpointsВозможная причина: docker не полностью очистил кэш.
Решение: перезапуск docker с помощью команды:
| Блок кода |
|---|
sudo systemctl restart docker |
Scroll Pagebreak
Возможные ошибки при аутентификации
Ошибка: невозможно аутентифицироваться с помощью учетной записи LDAP.
Возможная причина: некорректная настройка подключения к LDAP-серверу.
Решение: в файле eccm/.env установить переменную AUTH_ECCM_AUTHENTICATION_ENABLED=true и перезапустить сервис identity-provider:
| Блок кода |
|---|
sudo ./compose-tools.sh --recreate-service identity-provider |
После этого будет доступна аутентификация по локальной учетной записи.Scroll Pagebreak
Якорь Techsupp Techsupp
Рекомендации к оформлению заявок в техническую поддержку ECCM
| Techsupp | |
| Techsupp |
Для получения консультации по работе системы обратитесь в Сервисный центр компании. Способы обращения указаны на последней странице данного руководства.
Для более быстрого и удобного взаимодействия с сотрудниками технической поддержки ECCM укажите при обращении следующую информацию:
- Установленная версия ECCM и используемая лицензия;
- Есть ли доступ в сеть Интернет с сервера, на котором разворачивается ПО (без доступа, прямой доступ, через NAT, через Proxy и т. п.);
- Время возникновения проблемы (желательно как можно более точное);
- Скриншот или видеофайл, если проблема проявилась в GUI браузера;
- Информация об устройстве (это может быть IP-адрес устройства, модель устройства), если проблема была связана с каким-то устройством.
Также настоятельно рекомендуется воспользоваться скриптом для сбора информации.
Определение версии ECCM и лицензии
Определить установленную версию ECCM можно одним из следующих способов:
- При загрузке релизного архива найти информацию о версии в его имени, например,
eccm-2.6.tar.gz. - Если исходный архив tar.gz был удалён, то информацию о версии можно найти в конфигурационном файле
$ECCM_ROOT/eccm/.env(в строке вида:ECCM_TAG=2.6). - Просмотреть информацию о версии в левом нижнем углу экрана веб-интерфейса запущенного ECCM:
1 — версия ECCM;
2 — срок действия выпущенной лицензии.
Лицензию можно приложить из исходного файла или выгрузить из веб-интерфейса ECCM. Подробное описание приведено в разделе документации "Руководство пользователя" → "Настройки" → "Система" → "Лицензия".
Якорь Script Script
Скрипт сбора информации
| Script | |
| Script |
Скрипт автоматизирует сбор метрик c системы ECCM, а затем упаковывает их в сжатый архив для более удобной транспортировки. Предназначен для выполнения на ОС Linux/Ubuntu.
Запуск скрипта:
1. Перейдите в директорию ~/eccm/<версия ECCM>/:
| Блок кода |
|---|
cd ~/eccm/<версия ECCM>/ |
2. Выполните следующую команду:
| Блок кода |
|---|
sudo ./technical_support.sh |
| Примечание |
|---|
Скрипт необходимо запускать в привилегированном режиме, иначе будут собраны не все данные. |
3. Дождитесь, пока скрипт осуществит сбор информации;
4. В директорию будет загружен архив <date_time>-technical_support.tar.gz.
Данный архив можно отправить сотрудникам технической поддержки для того чтобы они ознакомились со всей необходимой информацией.

