...
A Shared Block | |||||
---|---|---|---|---|---|
| |||||
|
Оглавление | ||
---|---|---|
|
Для стабильной работы сервер должен отвечать следующим требованиям:
операционная система Linux с поддержкой Docker: Ubuntu Server 20.04 (рекомендуется), Astra Linux 1.7.1, RedOS 7.3.1;
объем оперативной памяти от 12 ГБ;
процессор, поддерживающий виртуализацию и имеющий от четырех ядер;
от 100 ГБ свободного места на жестком диске;
наличие сетевого интерфейса 1 Гбит/с.
Получение привилегий sudo без дополнительного ввода пароля (опционально)
От имени непривилегированного пользователя выполните команду:
...
Далее введите пароль. После этого для выполнения команд с привилегиями sudo
или перехода в режим суперпользователя дополнительный ввод пароля не потребуется.
Якорь Install_ECCM Install_ECCM
Установка ECCM
Install_ECCM | |
Install_ECCM |
Установочный архив
Файлы, необходимые для запуска проекта, распространяются в виде tar-архива. Их можно получить с общедоступного FTP-сервера. Загрузите архив на сервер и распакуйте его. Рекомендуется распаковывать архив в заранее созданную отдельную директорию.
...
Блок кода |
---|
wget "https://cloud.eltex-co.ru/index.php/s/QWdrv71vNVWNCbh/download?path=%2F&files=eccm-1.9.tar.gz" -O eccm-1.9.tar.gz mkdir eccm sudo tar -zxvf eccm-1.9.tar.gz -C eccm/ |
Установка docker и docker-compose
С версии 1.9 ЕССМ поддерживает отечественные операционные системы Astra Linux (рекомендуемая версия 1.7.1) и RedOS (рекомендуемая версия 7.3.1).
...
Блок кода |
---|
docker-compose version |
Запуск ECCM
Проект ECCM распространяется в виде набора файлов, позволяющих запустить все необходимые сервисы с помощью docker-compose. Проект разделен на три docker-стека:
...
Такое разделение обусловлено необходимостью обеспечения горизонтального масштабирования проекта и возможности интеграции с другими проектами компании, например Eltex.EDM.
Подробнее в разделе "v1.9 Векторы сетевого взаимодействия".
Скрипт для запуска ECCM
Ввиду большого количества параметров запуска системы, был подготовлен скрипт, выполняющий запуск проекта на одном или нескольких хостах с параметрами производительности, позволяющими обслуживать около 100 устройств. Фактическая производительность зависит от многих факторов, включающих производительность аппаратной части и сложность обслуживаемых сетевых устройств. Для вызова справочной информации перейдите в каталог со скриптом и введите команду:
...
Список всех используемых ключей и их описание можно найти в разделе "Используемые опции compose-tools.sh".
Запуск ECCM на одном хосте
Для запуска проекта перейдите в директорию с файлами установочного архива и выполните команду:
...
Примечание |
---|
Скрипт применяет указанный в ECCM ADDRESS адрес к запускаемым контейнерам, но при этом не перезаписывает его в файлах с переменными. Чтобы при запуске использовать адрес, указанный в файлах с переменными, пропишите ключ |
...
Блок кода |
---|
sudo ./compose-tools.sh --stop |
Запуск ЕССМ с базой данных на отдельном сервере
Drawio | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
1. Установите docker и docker-compose на обоих серверах согласно разделу Установка ЕССМ.
2. Настройка сервера с базами данных.
2.1. Для переопределения логина/пароля/временной зоны/ограничения ОЗУ для работы с БД отредактируйте файл "postgres/.env". Для изменения параметров, влияющих на производительность базы данных, отредактируйте файл "postgres/data/postgresql.conf" (настройки по умолчанию достаточны для тестового запуска и поддержки около 100 устройств.).
...
3.1. Для переопределения переменных, определяющих поведение группы контейнеров, отвечающих за авторизацию пользователя в системе ECCM (адрес сервиса identity-provider; внешний адрес БД; логин и пароль для доступа БД), отредактируйте файл "identity-provider/.env". Для переопределения переменных, отвечающих за поведение проекта (адрес web-интерфейса; временной зоны; адрес БД; логин/пароль для доступа к БД и проч.) отредактируйте файл "eccm/.env".
3.2. Выполните запуск ЕССМ на сервере с ЕССМ с помощью следующей команды:
...
Блок кода |
---|
sudo ./compose-tools.sh --start 100.110.2.2 --external-database 100.110.2.4:5432 |
Якорь Vars Vars
Переменные окружения
Vars | |
Vars |
Файлы, необходимые для запуска ECCM и содержащие переменные окружения и конфигурации, находятся в директории, в которую был распакован установочный архив:
Блок кода |
---|
postgres/.env postgres/data/postgresql.conf identity-provider/.env eccm/.env |
Scroll Pagebreak |
---|
postgres/.env
В postgres/.env
содержатся переменные, определяющие поведение БД Postgres при ее запуске в контейнере. В таблице ниже представлено описание данных переменных:
Переменная | Значение по умолчанию | Описание |
---|---|---|
COMPOSE_PROJECT_NAME | postgres | Название проекта в docker-compose (используется для идентификации, в случае если на сервере запущено несколько проектов) |
POSTGRES_USER | Параметр, позволяющий переопределить логин по умолчанию для доступа к базе данных | |
POSTGRES_PASSWORD | Параметр, позволяющий переопределить пароль по умолчанию для доступа к базе данных | |
POSTGRES_TIMEZONE | Asia/Novosibirsk | Временной пояс, в котором работает система (указывается в соответствии с tz database, например «Asia/Novosibirsk») |
POSTGRES_SHM_SIZE | 2gb | Ограничение выделенной оперативной памяти для работы с БД Postgres |
postgres/data/postgresql.conf
Файл содержит параметры, влияющие на производительность базы данных. Настройки по умолчанию достаточны для тестового запуска и поддержки около 100 устройств. Для изменения конфигурации ECCM ознакомьтесь с полным Руководством пользователя или обратитесь в Службу технической поддержки ELTEX.
identity-provider/.env
В файле identity-provider/.env
находятся переменные, определяющие поведение группы контейнеров, отвечающих за авторизацию пользователя в системе ECCM.
...
Переменная | Значение по умолчанию | Описание |
---|---|---|
COMPOSE_PROJECT_NAME | eccm | Название проекта в docker-compose (используется для идентификации, в случае если на сервере запущено несколько проектов) |
ECCM_PROFILE | production | |
IDENTITY_PROVIDER_TAG | 1.9 | |
IDENTITY_PROVIDER_REGISTRY | hub.eltex-co.ru | Адрес docker-registry, с которого будет выполняться получение образов системы. Если используется локальное зеркало, то можно указать его адрес |
IDENTITY_PROVIDER_WEB_ADDRESS | 192.168.0.1 | Адрес, на котором будет работать сервис identity-provider |
IDENTITY_PROVIDER_WEB_PORT | 9090 | Порт для доступа к сервису identity-provider |
POSTGRES_HOST | 192.168.0.1 | Адрес, на котором работает БД Postgres |
POSTGRES_PORT | 5432 | Порт для доступа к БД Postgres |
POSTGRES_USER | Параметр, позволяющий переопределить логин по умолчанию для доступа к базе данных | |
POSTGRES_PASSWORD | Параметр, позволяющий переопределить пароль по умолчанию для доступа к базе данных | |
|
| Путь к файлу с сертификатом для HTTPS |
|
| Путь к файлу с ключом для HTTPS |
Scroll Pagebreak
eccm/.env
В файле eccm/.env
находятся переменные, определяющие поведение проекта.
...
Переменная | Значение по умолчанию | Описание |
---|---|---|
COMPOSE_PROJECT_NAME | eccm | Название проекта в docker-compose (используется для идентификации, в случае если на сервере запущено несколько проектов) |
ECCM_PROFILE | production | |
ECCM_TAG | 1.9 | |
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 |
IDENTITY_PROVIDER_HOST | 192.168.0.1 | Внешний адрес сервиса identity-provider |
IDENTITY_PROVIDER_PORT | 9090 | Порт для доступа к сервису identity-provider |
ECCM_WEB_PORT | 80 | Порт для доступа к web-интерфейсу |
ECCM_TIMEZONE | Asia/Novosibirsk | Временной пояс, в котором работает система (указывается в соответствии с tz database, например «Asia/Novosibirsk») |
ECCM_LOGLEVEL | 'INFO' | Уровень логирования в проекте |
MAX_PARALLEL_TASKS | 4 | Количество одновременно выполняемых операций с устройствами |
ECCM_MONITORING_SERVER_MEM_HARD_LIMIT | 512M | Ограничение физической памяти для docker-контейнера |
ECCM_MONITORING_WEB_MEM_HARD_LIMIT | 256M | Ограничение физической памяти для docker-контейнера |
POSTGRES_HOST | 192.168.0.1 | Адрес, на котором работает БД Postgres |
POSTGRES_PORT | 5432 | Порт для доступа к БД Postgres |
POSTGRES_USER | Параметр, позволяющий переопределить логин по умолчанию для доступа к базе данных | |
POSTGRES_PASSWORD | Параметр, позволяющий переопределить пароль по умолчанию для доступа к базе данных | |
TFTP_POOL_SIZE | 100 | Параметр, определяющий количество потоков/подключений к TFTP-серверу |
|
| Путь к файлу с сертификатом для HTTPS |
|
| Путь к файлу с ключом для HTTPS |
|
| Путь к файлу с сертификатом для HTTPS внутри Java-сервисов |
|
| Порт, на котором ECCM будет доступен по HTTPS |
Доступ к web-интерфейсу
Для подключения к web-интерфейсу ECCM откройте браузер и в адресной строке введите следующее:
...
Подсказка |
---|
По умолчанию используется логин 'eccm', пароль 'eccm'. |
Известные проблемы и методы решения
Возможные ошибки при запуске проекта
Ошибка:
ERROR: Couldn't connect to Docker daemon at http+[docker://localhost](docker://localhost) - is it running?
...
Блок кода |
---|
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
...
Блок кода |
---|
sudo systemctl restart docker |
Scroll Pagebreak |
---|
Рекомендации к оформлению заявок в техническую поддержку ECCM
Для получения консультации по работе системы обратитесь в Сервисный центр компании. Способы обращения указаны на последней странице данного руководства.
...
Также настоятельно рекомендуется воспользоваться скриптом для сбора информации.
Якорь | ||||
---|---|---|---|---|
|
Скрипт автоматизирует сбор метрик c системы ECCM, а затем упаковывает их в сжатый архив для более удобной транспортировки. Предназначен для выполнения на ОС Linux/Ubuntu.
...
Данный архив можно отправить сотрудникам технической поддержки для того чтобы они ознакомились со всей необходимой информацией.
Scroll Pagebreak |
---|
Якорь Composetools Composetools
Используемые опции compose-tools.sh
Composetools | |
Composetools |
Опция | Описание |
---|---|
--clean, -c | Очистка всех контейнеров, томов и сетей. |
--dhcp | Активация DHCP-сервера с поддержкой функциональности Zero Touch Provisioning (ZTP), автоматически добавляющей устройства в систему. |
--external-database <ADDRESS>:<PORT> | Подключение к внешней базе данных PostgreSQL, установленной на другом хосте. <ADDRESS> и <PORT> — IP-адрес и порт (по умолчанию: 5432) сервера БД соответственно. Не использовать, если на хосте с ЕССМ запущена БД PostgreSQL. |
--help, -h | Вызов справочной информации. |
--https | Активация режима поддержки https. Требует наличия сертификата. |
--install | Установка Docker и Docker-compose на хост. |
--interactive, -i | Запуск системы в интерактивном режиме. Использовать с ключом --start. |
--load | Загрузить все доступные архивы .tar.gz из директории с образами в docker. |
--logging, -l <LEVEL> | Задание уровня логирования для проекта ЕССМ. Доступные значения: DEBUG, INFO. |
--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-сервера. |
Примеры использования
Для установки Docker и Docker-compose на хост выполните команду:
...
Блок кода |
---|
sudo ./compose-tools.sh --load |
Scroll Pagebreak |
---|
Настройка ротации логов docker
Настройки ротации логов контейнеров осуществляется с помощью конфигурационного файла /etc/docker/daemon.json
. Ниже представлен пример конфигурационного файла daemon.json
:
...
- "log-driver" — параметр, определяющий драйвер логирования;
- "log-opts" — секция, определяющая параметры ротации логов;
- "max-size" — максимальный размер лога перед сжатием. Положительное число с модификатором размера ("k", "m" или "g").
- "max-file" — максимальное количество хранящихся лог-файлов.
Для применения изменений необходимо перезапустить демон dockerd:
Блок кода |
---|
sudo service docker restart |