Версия ПО 1.12 |
|
Для стабильной работы сервер должен отвечать следующим требованиям:
операционная система Linux с поддержкой Docker: Ubuntu Server 20.04 (рекомендуется), Astra Linux 1.7 (server), RedOS 7.3.1;
объем оперативной памяти от 12 ГБ;
процессор, поддерживающий виртуализацию и имеющий от четырех ядер;
от 200 ГБ свободного места на жестком диске;
наличие сетевого интерфейса 1 Гбит/с.
От имени непривилегированного пользователя выполните команду:
echo "$(whoami) ALL=(ALL) NOPASSWD: ALL" | sudo EDITOR='tee -a' visudo |
Далее введите пароль. После этого для выполнения команд с привилегиями sudo
или перехода в режим суперпользователя дополнительный ввод пароля не потребуется.
Файлы, необходимые для запуска проекта, распространяются в виде tar-архива. Их можно получить с общедоступного облака. Загрузите архив на сервер и распакуйте его. Рекомендуется распаковывать архив в заранее созданную отдельную директорию.
Пример команд:
wget "https://cloud.eltex-co.ru/index.php/s/QWdrv71vNVWNCbh/download?path=%2F&files=eccm-1.12.tar.gz" -O eccm-1.12.tar.gz mkdir eccm tar -zxvf eccm-1.12.tar.gz -C eccm/ |
Наиболее простой и быстрый способ установки — перейти в директорию, в которую был распакован установочный архив, и воспользоваться скриптом compose-tools.sh
, используя флаг --install
:
cd eccm/1.12/ sudo ./compose-tools.sh --install |
Для проверки установленного docker можно выполнить команду:
docker --version |
Для проверки установленного docker-compose в Ubuntu можно выполнить команды:
docker compose version |
При установке на операционные системы Astra Linux и RedOS команда проверки версии установленного docker-compose имеет вид:
docker-compose version |
Проект ECCM распространяется в виде набора файлов, позволяющих запустить все необходимые сервисы с помощью docker-compose. Проект разделен на два docker-стека:
Такое разделение обусловлено необходимостью обеспечения горизонтального масштабирования проекта и возможности интеграции с другими проектами компании, например EDM.
Подробнее в разделе «Векторы сетевого взаимодействия».
Ввиду большого количества параметров запуска системы, был подготовлен скрипт, выполняющий запуск проекта на одном или нескольких хостах с параметрами производительности, позволяющими обслуживать около 100 устройств. Фактическая производительность зависит от многих факторов, включающих производительность аппаратной части и сложность обслуживаемых сетевых устройств. Для вызова справочной информации перейдите в каталог со скриптом и введите команду:
sudo ./compose-tools.sh -h |
Список всех используемых ключей и их описание можно найти в разделе «Используемые опции compose-tools.sh».
Для запуска проекта перейдите в директорию с файлами установочного архива и выполните команду:
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 Application Server — сервер, на котором развернуто приложение, обеспечивающее работу системы и взаимодействие с устройствами, а также web-интерфейс пользователя.
Database Server — сервер с базами данных Postgres14. Возможно использование уже существующего в инфраструктуре кластера.
Device Management Network — IP-сеть управления оборудованием, через которые ECCM имеет доступ по L3.
Operator/Administrator — оператор системы, занимающийся мониторингом и настройкой подконтрольного оборудования/системный администратор компании или сотрудники техподдержки ELTEX, если есть договоренность об удаленном доступе.
Для случая, когда необходимо запустить ЕССМ на нескольких серверах (один сервер — для базы данных Postgres, второй сервер — для остального стека сервисов ЕССМ), возможно использовать опцию многохостовой установки. Для этого:
1. Установите docker и docker-compose на обоих серверах согласно разделу Установка ЕССМ;
2. Настройте сервер с базами данных:
2.1. Для переопределения логина/пароля/временной зоны/ограничения ОЗУ для работы с БД отредактируйте файл "postgres/.env". Для изменения параметров, влияющих на производительность базы данных, отредактируйте файл "postgres/data/postgresql.conf" (настройки по умолчанию достаточны для тестового запуска и поддержки около 100 устройств.);
2.2. Запустите базу данных PostgreSQL на сервере с БД. Для запуска БД перейдите в директорию eccm/postgres
и выполните команду для запуска контейнера:
cd eccm/postgers docker compose up -d |
3. Настройте сервер с приложениями:
3.1. Для переопределения переменных, отвечающих за авторизацию пользователя в системе ECCM и поведение проекта (адрес web-интерфейса, временная зона, адрес БД, логин/пароль для доступа к БД и пр.), отредактируйте файл "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 |
Файлы, необходимые для запуска ECCM и содержащие переменные окружения и конфигурации, находятся в директории, в которую был распакован установочный архив:
postgres/.env postgres/data/postgresql.conf eccm/.env |
В postgres/.env
содержатся переменные, определяющие поведение стека БД Postgres при его запуске в контейнере. В таблице ниже представлено описание данных переменных:
Переменная | Значение по умолчанию | Описание |
---|---|---|
COMPOSE_PROJECT_NAME | postgres | Название проекта в docker-compose (используется для идентификации, в случае если на сервере запущено несколько проектов) |
POSTGRES_TAG | 1.12 | Версия образа контейнера postgres |
POSTGRES_REGISTRY | hub.eltex-co.ru | Адрес docker-registry, с которого будет выполняться получение образа postgres. Если используется локальное зеркало, то можно указать его адрес |
ROOT_POSTGRES_USER | Параметр, позволяющий переопределить логин суперпользователя для доступа и конфигурирования базы данных | |
ROOT_POSTGRES_PASSWORD | Параметр, позволяющий переопределить пароль суперпользователя для доступа и конфигурирования базы данных | |
ECCM_DATABASE | eccm | Название базы данных стека сервисов eccm |
IP_DATABASE | identity_provider_db | Название базы данных сервиса identity-provider |
POSTGRES_TIMEZONE | Asia/Novosibirsk | Временной пояс, в котором работает система (указывается в соответствии с tz database, например «Asia/Novosibirsk») |
POSTGRES_SHM_SIZE | 2gb | Ограничение выделенной оперативной памяти для работы с БД Postgres |
POSTGRES_PRIVILEGED_MODE | false | Запуск контейнера в привилегированном режиме |
|
| Внешний адрес БД Postgres |
|
| Максимальное количество лог-файлов контейнеров |
| 50M | Максимальный размер лог-файлов контейнеров |
| true | Разрешение сжатия лог-файлов контейнеров |
| hub.eltex-co.ru | Адрес docker-registry, с которого будет выполняться получение образа postgres-configurator. Если используется локальное зеркало, то можно указать его адрес |
|
| Версия образа контейнера postgres-configurator |
| true | Активация запуска контейнера postgres-configurator при старте системы |
Файл содержит параметры, влияющие на производительность базы данных. Настройки по умолчанию достаточны для тестового запуска и поддержки около 100 устройств. Для изменения конфигурации ECCM ознакомьтесь с полным Руководством пользователя или обратитесь в Службу технической поддержки ELTEX.
В файле eccm/.env
находятся переменные, определяющие поведение проекта. В таблице ниже представлено описание данных переменных:
Переменная | Значение по умолчанию | Описание | ||
---|---|---|---|---|
COMPOSE_PROJECT_NAME | eccm | Название проекта в docker-compose (используется для идентификации, в случае если на сервере запущено несколько проектов) | ||
ECCM_PROFILE | production | Профиль проекта | ||
ECCM_TAG | 1.12 | Версия образов контейнеров | ||
ECCM_REGISTRY | hub.eltex-co.ru | Адрес docker-registry, с которого будет выполняться получение образов системы. Если используется локальное зеркало, то можно указать его адрес | ||
ECCM_BACKBONE_ADDRESS | 192.168.0.1 | Внутренний адрес, на котором будет работать система ECCM с устройствами в сети | ||
ECCM_WEB_ADDRESS | 192.168.0.1 | Адрес, на котором будет работать web-интерфейс системы ECCM | ||
ECCM_WEB_PORT | 80 | Порт для доступа к web-интерфейсу | ||
ECCM_TIMEZONE | Asia/Novosibirsk | Временной пояс, в котором работает система (указывается в соответствии с tz database, например «Asia/Novosibirsk») | ||
ECCM_LOGLEVEL | 'INFO' | Уровень логирования в проекте | ||
MAX_CONCURRENT_SSH_TASKS | 20 | Количество одновременно выполняемых операций с устройствами | ||
POSTGRES_HOST | 192.168.0.1 | Адрес, на котором работает БД Postgres | ||
POSTGRES_PORT | 5432 | Порт для доступа к БД Postgres | ||
ROOT_POSTGRES_USER | Параметр, позволяющий переопределить логин суперпользователя для доступа и конфигурирования базы данных | |||
ROOT_POSTGRES_PASSWORD | Параметр, позволяющий переопределить пароль суперпользователя для доступа и конфигурирования базы данных | |||
ECCM_POSTGRES_DB | eccm | Название базы данных для сервисов eccm | ||
ECCM_POSTGRES_USER | Параметр, позволяющий переопределить логин по умолчанию для доступа к базе данных ECCM_POSTGRES_DB | |||
ECCM_POSTGRES_PASSWORD | Параметр, позволяющий переопределить пароль по умолчанию для доступа к базе данных ECCM_POSTGRES_DB | |||
|
| Название базы данных для сервиса identity-provider | ||
|
| Параметр, позволяющий переопределить логин по умолчанию для доступа к базе данных IDENTITY_PROVIDER_POSTGRES_DB | ||
|
| Параметр, позволяющий переопределить пароль по умолчанию для доступа к базе данных IDENTITY_PROVIDER_POSTGRES_DB | ||
| 512M | Ограничение физической памяти для docker-контейнера | ||
|
| Путь к файлу с сертификатом для HTTPS | ||
|
| Путь к файлу с ключом для HTTPS | ||
KEY_PASS_PATH | ./cert/key.pass | Путь к файлу с паролем ключа для HTTPS | ||
|
| Порт, на котором ECCM будет доступен по HTTPS | ||
LOGGING_ASPECT_ENABLED | false | Включение логирования через аспекты сервисов. Аспект логирует все входы и выходы из методов, их параметры, а также возвращаемые значения
| ||
|
| Максимальное количество лог-файлов контейнера | ||
| 50M | Максимальный размер лог-файлов контейнера | ||
| true | Разрешить сжатие лог-файлов контейнера |
Для подключения к web-интерфейсу ECCM откройте браузер и в адресной строке введите следующее:
http://<IP-адрес вашего сервера (ECCM_WEB_ADDRESS)>/
По умолчанию используется логин 'eccm', пароль 'eccm'. |
Опция | Описание | |
---|---|---|
--clean, -c | Очистка всех контейнеров, томов и сетей | |
--delete-containers | Удаление контейнеров без удаления томов и сетей | |
--dhcp | Активация DHCP-сервера с поддержкой функциональности Zero Touch Provisioning (ZTP), автоматически добавляющей устройства в систему | |
--database-host <HOST> | IP-адрес подключения к внешней базе данных PostgreSQL, установленной на другом хосте. Не использовать, если на хосте с ЕССМ запущена БД PostgreSQL | |
--database-port <PORT> | Порт подключения к внешней базе данных PostgreSQL, установленной на другом хосте. Не использовать, если на хосте с ЕССМ запущена БД PostgreSQL | |
--help, -h | Вызов справочной информации | |
--https | Активация режима поддержки https. Требует наличия сертификата | |
--install | Установка Docker и Docker-compose на хост | |
--interactive, -i | Запуск системы в интерактивном режиме. Использовать с ключом --start | |
--load | Загрузить все доступные архивы .tar.gz из директории с образами в docker | |
--logging, -l <LEVEL> | Задание уровня логирования для проекта ЕССМ. Доступные значения: DEBUG, INFO | |
--logging-aspect | Включение логирования через аспекты сервисов. Аспект логирует все входы и выходы из методов, их параметры, а также возвращаемые значения. Не рекомендуется включать этот параметр при штатной работе системы | |
--metrics, -m | Запуск системы в режиме сбора метрик. В этом режиме запускается сервисы Grafana и Prometheus. Веб-интерфейс Grafana доступен по адресу http://<IP_ECCM>:3000 | |
--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> | Пересоздать контейнер с новыми параметрами
|
Для установки 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 данные с БД Postgres также будут удалены. Данный флаг рекомендуется использовать только при полной деинсталляции 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 |
Для преобразования архивов с образами (.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 }}' |
Ошибка:
ERROR: error while removing network: network eccm_eltex-internal id 324bd72dd9c107cf2ea48effb75d9e7ad2dfbc8f5f7317b89cd7f318d61d5c4b has active endpoints
Возможная причина: docker не полностью очистил кэш.
Решение: перезапуск docker с помощью команды:
sudo systemctl restart docker |
Для получения консультации по работе системы обратитесь в Сервисный центр компании. Способы обращения указаны на последней странице данного руководства.
Для более быстрого и удобного взаимодействия с сотрудниками технической поддержки ECCM укажите при обращении следующую информацию:
Также настоятельно рекомендуется воспользоваться скриптом для сбора информации.
Определить установленную версию ECCM можно одним из следующих способов:
eccm-1.12.tar.gz
.$ECCM_ROOT/eccm/.env
(в строке вида: ECCM_TAG=1.12)
.1 — версия ECCM;
2 — срок действия выпущенной лицензии.
Лицензию можно приложить из исходного файла или выгрузить из веб-интерфейса ECCM. Подробное описание приведено в разделе документации Руководство пользователя → Настройка → Лицензия.
Скрипт автоматизирует сбор метрик c системы ECCM, а затем упаковывает их в сжатый архив для более удобной транспортировки. Предназначен для выполнения на ОС Linux/Ubuntu.
Запуск скрипта:
1. Перейдите в директорию ~/eccm:
cd ~/eccm |
2. Выполните следующую команду:
sudo ./technical_support.sh |
Скрипт необходимо запускать в привилегированном режиме, иначе будут собраны не все данные. |
3. Дождитесь, пока скрипт осуществит сбор информации;
4. В директорию будет загружен архив <date_time>-technical_support.tar.gz.
Данный архив можно отправить сотрудникам технической поддержки для того чтобы они ознакомились со всей необходимой информацией.