Предварительная установка дополнительного ПО на сервере
Для запуска Offline ELM на сервере требуется произвести установку дополнительного ПО:
1. Установить последнюю стабильную версию Docker.
2. Установить последнюю стабильную версию Docker Compose.
Информация |
---|
Дальнейшие инструкции предполагают, что пользователь обладает правами взаимодействия с Docker и запуска Docker Compose без повышения привилегий командой sudo. Для формирования таких прав у текущего пользователя рекомендуется изучить следующий раздел официальной документации Docker. |
Получение файлов, необходимых для запуска Offline ELM
Набор файлов, необходимых для запуска Offline ELM и сервисов мониторинга, можно скачать по ссылке с актуальной версией elm1.4.
Рисунок 1 — Скачивание файлов для запуска Offline ELM с ownCloud
Структура архива:
Блок кода |
---|
title | Структура архива |
---|
collapse | true |
---|
|
.
├── elm-monitoring-data-1.4.tar.gz
├── elm-monitoring-images-1.4.tar.gz
├── elm-offline-data-1.4-1.tar.gz
├── elm-offline-images-1.4-1.tar.gz
└── install-offline.sh |
Архив должен быть загружен на целевой сервер и распакован в любой удобной для дальнейшей эксплуатации директории.
Информация |
---|
У администраторов Offline ELM для запуска, остановки и редактирования конфигурации Offline ELM должны быть права на чтение и запись распакованных файлов. |
Первый запуск Offline ELM
Первоначальное конфигурирование с помощью скрипта инсталляции
1. Для упрощенного запуска Offline ELM поставляется скрипт инсталляции install-offline.sh.
2. Перед выполнением скрипта необходимо выдать ему права на исполнение с помощью команды:
Блок кода |
---|
title | Установка прав на исполнение скрипта |
---|
|
sudo chmod +x ./install-offline.sh |
3. Посмотреть информацию о скрипте можно с помощью флага --help.
Блок кода |
---|
title | Информация о скрипте |
---|
|
$ ./install-offline.sh
Script usage: ./install-offline.sh [OPTIONS]
Options:
--elm-images <ARCHIVE> path to archive with images
--elm-data <ARCHIVE> path to archive with config and compose files
--monitoring-images <ARCHIVE> path to archive with images for monitoring
--monitoring-data <ARCHIVE> path to archive with data for monitoring
--env <FILE> path to .env file
usage with option --elm-images
--elm-dir <DIRECTORY> path to directory where need to unpack archive with data files
usage with option --elm-data
--monitoring-dir <DIRECTORY> path to directory where need to unpack archive with data files for monitoring
usage with option --monitoring-data
-h, --help output this help
Required options:
One of the options --elm-images, --elm-data, --monitoring-images, --monitoring-data must be set |
4. Пример запуска скрипта с распаковкой архива конфигурационных файлов и загрузкой образов из архивов.
Блок кода |
---|
title | Пример использования скрипта |
---|
|
$ ./install-offline.sh --elm-images elm-offline-images-1.4-1.tar.gz --elm-data elm-offline-data-1.4-1.tar.gz
INFO: Extract files:
elm-offline-data-1.4-1/
elm-offline-data-1.4-1/docker-compose.yml
elm-offline-data-1.4-1/config/
elm-offline-data-1.4-1/config/telegraf/
elm-offline-data-1.4-1/config/telegraf/telegraf.conf
elm-offline-data-1.4-1/install/
elm-offline-data-1.4-1/install/install-offline.sh
elm-offline-data-1.4-1/docker-compose-remote.yml
elm-offline-data-1.4-1/.env
elm-offline-data-1.4-1/data/
elm-offline-data-1.4-1/data/elmi-offline-web-ui/
elm-offline-data-1.4-1/data/elmi-offline-web-ui/ssl/
elm-offline-data-1.4-1/data/elmi-offline-web-ui/ssl/autocreated-cert.crt
elm-offline-data-1.4-1/data/elmi-offline-web-ui/ssl/autocreated-cert.key
elm-offline-data-1.4-1/data/elmi-offline-db/
elm-offline-data-1.4-1/data/elmi-offline-db/init-db/
elm-offline-data-1.4-1/data/elmi-offline-db/init-db/init-db.sql
elm-offline-data-1.4-1/data/elmi-offline-db/enable_triggers.sql
elm-offline-data-1.4-1/data/elmi-offline-db/postgresql.conf
elm-offline-data-1.4-1/docker-compose-cli.yml
Loaded image: elmi-offline-server:1.4-1
Loaded image: elmi-offline-init:1.4-1
Loaded image: elmi-offline-cli:1.4-1
Loaded image: elmi-web-ui:1.4-1
Loaded image: pcscd:alpine
Loaded image: postgres:16.2
Loaded image: telegraf:1.30.0
INFO: The file ./elm-offline-data-1.4-1/.env does not changed, it contains actual environment variable ELM_TAG
Success! |
5. В результате были загружены образы и распакованы конфигурационные файлы в папку elm-offline-data-1.4-1.
Блок кода |
---|
title | Папка с конфигурационными файлами |
---|
|
elm-offline-data-1.4-1
├── config
│ └── telegraf
│ └── telegraf.conf
├── data
│ ├── elmi-offline-db
│ │ ├── enable_triggers.sql
│ │ ├── init-db
│ │ │ └── init-db.sql
│ │ └── postgresql.conf
│ └── elmi-offline-web-ui
│ └── ssl
│ ├── autocreated-cert.crt
│ └── autocreated-cert.key
├── docker-compose-cli.yml
├── docker-compose-remote.yml
├── docker-compose-db.yml
├── docker-compose.yml
└── .env |
Блок кода |
---|
title | Проверка загруженных образов |
---|
collapse | true |
---|
|
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
elmi-web-ui 1.4-1 27e9fe0ffbc8 20 hours ago 28.6MB
elmi-offline-cli 1.4-1 f89431b1dc57 20 hours ago 736MB
elmi-offline-init 1.4-1 23a53b77cc61 20 hours ago 16.4MB
elmi-offline-server 1.4-1 fa093d421389 20 hours ago 761MB
pcscd alpine 8713840a2dc3 2 months ago 39.2MB
telegraf 1.30.0 7942930461a6 4 months ago 453MB
postgres 16.2 8e4fc9e18489 5 months ago 431MB |
Первоначальное конфигурирование в ручном режиме
Для запуска Offline ELM требуется произвести следующие шаги:
1. Перейти в директорию с содержимым распакованного архива.
2. Распаковать архив elm-offline-data-1.4-1.tar.gz с файлами, необходимыми для работы Offline ELM.
3. Открыть файл .env любым удобным текстовым редактором.
4. Для переменной ELM_TAG указать актуальную версию Offline ELM 1.4. Если существует возможность указать конкретный номер сборки Offline ELM — его необходимо указать после версии через дефис (например, для билда под номером 1 значение переменной будет "1.4-1").
Блок кода |
---|
title | Пример минимальной конфигурации env файла для запуска |
---|
|
ELM_TAG="1.4" |
Предупреждение |
---|
ELM_INSTANCE_ID задается при первом запуске Offline ELM и не должен меняться в течение работы. При необходимости смены значения ELM_INSTANCE_ID требуется чистая установка Offline ELM. |
5. Установить в переменной ELM_INSTANCE_ID номер инстанса (ноды) текущей инсталляции Offline ELM. Если это единственная инсталляция, то "ELM_INSTANCE_ID=node1". Если используется резервирование Offline ELM, то на одной ноде "ELM_INSTANCE_ID=node1, а на второй — "ELM_INSTANCE_ID=node2".
Блок кода |
---|
title | Установка номера ноды |
---|
|
ELM_INSTANCE_ID=node1 |
6. Установить в переменной DOCKER_GROUP_ID значение группы пользователя docker. Узнать id группы docker можно командой:
Блок кода |
---|
title | Группа docker пользователя |
---|
|
$ getent group docker| cut -d: -f3
999 |
Блок кода |
---|
title | Установка переменной DOCKER_GROUP_ID |
---|
|
DOCKER_GROUP_ID="999" |
Информация |
---|
Для мониторинга состояния контейнеров Telegraf необходимо предоставить ему доступ к сокету Docker демона, для этого необходимо передать id группы пользователей docker. |
7. Установить другие необходимые переменные окружения. Полный список переменных окружения Offline ELM 1.4.
8. Загрузить образы Offline ELM из архива на хост:
Блок кода |
---|
title | Загрузка образов Offline ELM из архива |
---|
|
$ docker load < elm-offline-images-1.4-1.tar.gz |
9. Проверить загруженные образы:
Блок кода |
---|
title | Проверка загруженных образов |
---|
|
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
elmi-web-ui 1.4-1 27e9fe0ffbc8 20 hours ago 28.6MB
elmi-offline-cli 1.4-1 f89431b1dc57 20 hours ago 736MB
elmi-offline-init 1.4-1 23a53b77cc61 20 hours ago 16.4MB
elmi-offline-server 1.4-1 fa093d421389 20 hours ago 761MB
pcscd alpine 8713840a2dc3 2 months ago 39.2MB
telegraf 1.30.0 7942930461a6 4 months ago 453MB
postgres 16.2 8e4fc9e18489 5 months ago 431MB |
10. Убедиться, что токен вставлен и был обнаружен системой:
Блок кода |
---|
title | Проверка наличия токена в системе |
---|
|
$ lsusb | grep "Aktiv Rutoken ECP"
Bus 001 Device 008: ID 0a89:0030 Aktiv Rutoken ECP |
11. Убедиться, что демон pcscd, если он установлен, остановлен:
Блок кода |
---|
title | Проверка статуса демона pcscd |
---|
|
# service pcscd status
● pcscd.service - PC/SC Smart Card Daemon
Loaded: loaded (/lib/systemd/system/pcscd.service; indirect; vendor preset: enabled)
Active: active (running) since Fri 2024-07-26 14:11:30 +07; 1s ago
TriggeredBy: ● pcscd.socket
Docs: man:pcscd(8)
Main PID: 1639189 (pcscd)
Tasks: 5 (limit: 38220)
Memory: 1.1M
CPU: 12ms
CGroup: /system.slice/pcscd.service
└─1639189 /usr/sbin/pcscd --foreground --auto-exit
июл 26 14:11:30 user-pc systemd[1]: Started PC/SC Smart Card Daemon.
|
Блок кода |
---|
title | Остановка демона pcscd |
---|
|
# systemctl stop pcscd.socket |
Запуск сервисов Offline ELM
Запуск сервисов Offline ELM на одном хосте
1. Перейти в папку с конфигурационными файлами Offline ELM, где расположены docker-compose.yml файлы.
2. Запустить Offline ELM командой:
Блок кода |
---|
title | Команда запуска Offline ELM |
---|
|
$ docker compose up -d |
3. После запуска убедиться, что все контейнеры Offline ELM запустились корректно (имеют статус "running (healthy)"):
Блок кода |
---|
title | Команда проверки статуса контейнеров Offline ELM |
---|
|
$ docker compose ps |
Блок кода |
---|
title | Пример вывода команды при успешном запуске всех контейнеров Offline ELM |
---|
collapse | true |
---|
|
$ docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
elm-token pcscd:alpine "/bin/sh -c /usr/loc…" elm-token 7 minutes ago Up 3 minutes (healthy)
elmi-offline-db postgres:16.2 "docker-entrypoint.s…" elmi-offline-db 7 minutes ago Up 7 minutes (healthy) 127.0.0.1:5432->5432/tcp
elmi-offline-init elmi-offline-init:1.4-1 "/bin/sh -c '/usr/lo…" elmi-offline-init 7 minutes ago Up 7 minutes (healthy)
elmi-offline-server elmi-offline-server:1.4-1 "/bin/sh -e /usr/loc…" elmi-offline-server 7 minutes ago Up 2 minutes (healthy) 0.0.0.0:8099->8099/tcp, 127.0.0.1:8080->8097/tcp
elmi-offline-web-ui elmi-web-ui:1.4-1 "/usr/local/bin/entr…" elmi-offline-web-ui 7 minutes ago Up 7 minutes (healthy) 0.0.0.0:8092->80/tcp, :::8092->80/tcp
telegraf telegraf:1.30.0 "/entrypoint.sh tele…" telegraf 7 minutes ago Up 7 minutes 8092/udp, 8125/udp, 8094/tcp |
Теперь с Offline ELM можно взаимодействовать через интерфейс командной строки, далее CLI.
После первого запуска Offline ELM в текущем каталоге появятся новые директории:
- db — содержит файлы базы данных, используемой в Offline ELM;
- log — содержит логи сервисов Offline ELM.
4. Запустить CLI Offline ELM.
Для запуска CLI требуется произвести следующие действия:
4.1. Перейти в директорию с файлом docker-compose-cli.yml.
4.2. Выполнить следующую команду:
Блок кода |
---|
title | Команда для запуска CLI Offline ELM |
---|
|
$ docker compose --file docker-compose-cli.yml run --rm elmi-offline-cli |
Блок кода |
---|
title | Пример вывода команды при успешном запуске Offline ELM CLI |
---|
|
$ docker compose --file docker-compose-cli.yml run --rm elmi-offline-cli
WARN[0000] Found orphan containers ([elmi-offline-web-ui elmi-offline-server elmi-offline-init elmi-offline-db elm-token]) for this project. If you removed or renamed this service in your compose file, you can run this command with the --remove-orphans flag to clean it up.
2024-07-26 16:26:54.786 INFO 1 --- [ main] org.eltex.elm.cli.Launcher : Starting Launcher using Java 21.0.2 on a413a808c5ef with PID 1 (/classes started by root in /)
2024-07-26 16:26:54.792 INFO 1 --- [ main] org.eltex.elm.cli.Launcher : No active profile set, falling back to 1 default profile: "default"
2024-07-26 16:26:55,598 INFO c.z.h.HikariDataSource.getConnection (line:110) - HikariPool-1 - Starting...
2024-07-26 16:26:55,775 INFO c.z.h.HikariDataSource.getConnection (line:123) - HikariPool-1 - Start completed.
2024-07-26 16:26:55,884 INFO l.l.c.JavaLogger.log (line:37) - Set default schema name to public
2024-07-26 16:26:56,291 INFO l.l.c.JavaLogger.log (line:37) - Reading from public.elm_database_changelog
2024-07-26 16:26:56,375 INFO l.l.c.JavaLogger.log (line:37) - Database is up to date, no changesets to execute
2024-07-26 16:26:56,377 INFO l.l.c.JavaLogger.log (line:37) - Reading from public.elm_database_changelog
2024-07-26 16:26:56,385 INFO l.l.c.JavaLogger.log (line:37) - UPDATE SUMMARY
2024-07-26 16:26:56,385 INFO l.l.c.JavaLogger.log (line:37) - Run: 0
2024-07-26 16:26:56,385 INFO l.l.c.JavaLogger.log (line:37) - Previously run: 3
2024-07-26 16:26:56,385 INFO l.l.c.JavaLogger.log (line:37) - Filtered out: 0
2024-07-26 16:26:56,386 INFO l.l.c.JavaLogger.log (line:37) - -------------------------------
2024-07-26 16:26:56,386 INFO l.l.c.JavaLogger.log (line:37) - Total change sets: 3
2024-07-26 16:26:56,386 INFO l.l.c.JavaLogger.log (line:37) - Update summary generated
2024-07-26 16:26:56,405 INFO l.l.c.JavaLogger.log (line:37) - Successfully released change log lock
2024-07-26 16:26:56,407 INFO l.l.c.JavaLogger.log (line:37) - Command execution complete
2024-07-26 16:26:56,465 INFO o.r.Reflections.scan (line:219) - Reflections took 24 ms to scan 1 urls, producing 5 keys and 5 values
2024-07-26 16:26:56,516 INFO o.r.Reflections.scan (line:219) - Reflections took 45 ms to scan 2 urls, producing 8 keys and 185 values
*** Eltex License Manager CLI 1.4 ***
*** Input 'help' to view available commands ***
> main
users
settings
iprules
license
elmi> |
В результате выполнения команды пользователь получит доступ к CLI Offline ELM.
5. Выполнить инсталляцию бандла Offline ELM.
Для установки бандла Offline ELM необходимо выполнить следующие действия:
5.1. Скопировать файл бандла в папку share/ в корне Offline ELM. Запустить CLI Offline ELM:
Блок кода |
---|
title | Запуск CLI Offline ELM |
---|
|
$ docker compose --file docker-compose-cli.yml run --rm elmi-offline-cli |
5.2. В разделе "main" выполнить команду инсталляции бандла "install bundle --file":
Блок кода |
---|
|
elmi> install bundle --file /share/ECMC0000001.bundle
You will install offline licensing bundle from '/share/ECMC0000001.bundle'. Are you sure? (y/N) y
License data registration command db1d39a3-f295-3391-a977-544d4367da47 (node1) is created. Please wait...
elmi> License data registration command db1d39a3-f295-3391-a977-544d4367da47 (node1) is done!
elmi> |
Запуск сервисов Offline ELM с удаленной базой данных
1. Распаковать архив с данными на удаленном сервере, где будет запускаться база данных.
2. Установить переменные ELM_TAG и ELM_DB_HOST в .env файле. Иначе интерфейс из контейнера elmi-offline-db не будет проброшен на хост, и база данных не будет доступна.
Блок кода |
---|
title | Установка переменных окружения |
---|
|
ELM_TAG="1.4"
ELM_DB_HOST=192.168.1.2 |
3. Запустить контейнеры БД командой. При этом, если это первый запуск, контейнер elmi-offline-db может иметь состояние unhealthy — это корректное поведение. Состояние healthy установится после подключения к базе данных сервера Offline ELM (контейнер elmi-offline-db).
Блок кода |
---|
|
$ docker compose -f docker-compose-db.yml up -d |
4. Перейти в папку с конфигурационными файлами Offline ELM на другом сервере, где расположен docker-compose-remote.yml файл.
5. Установить переменные окружения ELM_TAG, ELM_DB_CONNECT_HOST и ELM_DB_CONNECT_PORT в соответствии с необходимыми значениями:
Блок кода |
---|
title | Установка переменных окружения |
---|
|
ELM_TAG="1.4"
ELM_DB_CONNECT_HOST=192.168.1.2
ELM_DB_CONNECT_PORT=5432 |
6. Запустить Offline ELM командой:
Блок кода |
---|
title | Команда запуска Offline ELM |
---|
|
$ docker compose -f docker-compose-remote.yml up -d |
7. После запуска убедиться, что все контейнеры Offline ELM запустились корректно (имеют статус "running (healthy)"):
Блок кода |
---|
title | Команда проверки статуса контейнеров Offline ELM |
---|
|
$ docker compose ps |
Блок кода |
---|
title | Пример вывода команды при успешном запуске всех контейнеров Offline ELM |
---|
collapse | true |
---|
|
$ docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
elm-token nexus.eltex.loc:9006/elm/pcscd:alpine "/bin/sh -c /usr/loc…" elm-token 28 minutes ago Up 27 minutes (healthy)
elmi-offline-db nexus.eltex.loc:4430/library/postgres:16.2 "docker-entrypoint.s…" elmi-offline-db 30 minutes ago Up 30 minutes (healthy) 0.0.0.0:5437->5432/tcp
elmi-offline-init nexus.eltex.loc:9016/elmi-offline-init:1.4-1 "/bin/sh -c '/usr/lo…" elmi-offline-init 28 minutes ago Up 27 minutes (healthy)
elmi-offline-server nexus.eltex.loc:9016/elmi-offline-server:1.4-1 "/bin/sh -e /usr/loc…" elmi-offline-server 28 minutes ago Up 27 minutes (healthy) 0.0.0.0:8087->8097/tcp, 0.0.0.0:8097->8099/tcp
elmi-offline-web-ui nexus.eltex.loc:9016/elmi-web-ui:1.4-1 "/usr/local/bin/entr…" elmi-offline-web-ui 28 minutes ago Up 27 minutes (healthy) 0.0.0.0:8091->80/tcp, :::8091->80/tcp
telegraf nexus.eltex.loc:4430/library/telegraf:1.30.0 "/entrypoint.sh tele…" telegraf 28 minutes ago Up 27 minutes 8092/udp, 8125/udp, 8094/tcp |
Остановка Offline ELM
Для остановки Offline ELM требуется произвести следующие шаги:
1. Перейти в директорию с файлами работающего Offline ELM.
2. Выполнить команду:
Блок кода |
---|
title | Команда остановки всех контейнеров Offline ELM |
---|
|
$ docker compose down --remove-orphans |
Обновление Offline ELM в рамках версии 1.4
Для обновления Offline ELM в рамках версии 1.4 требуется произвести следующие шаги (показан пример обновления с версии 1.4-1 на 1.4-2):
1. Перейти в директорию с compose-файлами работающего Offline ELM.
2. Остановить Offline ELM командой:
Блок кода |
---|
title | Команда остановки Offline ELM |
---|
|
$ docker compose down --remove-orphans |
3. Произвести резервное копирование всех рабочих файлов в текущей директории:
Блок кода |
---|
title | Пример формирования резервной копии служебных файлов Offline ELM |
---|
|
$ zip -q -r elm_backup.zip elm/ |
После формирования резервной копии всех служебных файлов её рекомендуется перенести в другую директорию на хосте или на удаленный сервер для сохранности сформированной резервной копии.
4. Скопировать в текущую директорию следующие файлы и директории с заменой, если по ним было изменение:
- docker-compose.yml
- docker-compose-cli.yml
5. В .env файле указать новое значение переменной ELM_TAG:
6. Запустить Offline ELM командой:
Блок кода |
---|
title | Команда запуска Offline ELM |
---|
|
$ docker compose up -d |
7. После запуска убедиться, что все Docker-контейнеры сервисов Offline ELM запустились корректно (имеют статус "running (healthy)"):
Блок кода |
---|
title | Команда проверки статуса контейнеров Offline ELM |
---|
|
$ docker compose ps |
Блок кода |
---|
title | Пример вывода команды при успешном запуске всех контейнеров Offline ELM |
---|
collapse | true |
---|
|
$ docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
elm-token pcscd:alpine "/bin/sh -c /usr/loc…" elm-token 7 minutes ago Up 3 minutes (healthy)
elmi-offline-db postgres:16.2 "docker-entrypoint.s…" elmi-offline-db 7 minutes ago Up 7 minutes (healthy) 127.0.0.1:5432->5432/tcp
elmi-offline-init elmi-offline-init:1.4-2 "/bin/sh -c '/usr/lo…" elmi-offline-init 7 minutes ago Up 7 minutes (healthy)
elmi-offline-server elmi-offline-server:1.4-2 "/bin/sh -e /usr/loc…" elmi-offline-server 7 minutes ago Up 2 minutes (healthy) 0.0.0.0:8099->8099/tcp, 127.0.0.1:8080->8097/tcp
elmi-offline-web-ui elmi-web-ui:1.4-2 "/usr/local/bin/entr…" elmi-offline-web-ui 7 minutes ago Up 7 minutes (healthy) 0.0.0.0:8092->80/tcp, :::8092->80/tcp
telegraf telegraf:1.30.0 "/entrypoint.sh tele…" telegraf 7 minutes ago Up 7 minutes 8092/udp, 8125/udp, 8094/tcp |
8. Запустить Offline ELM CLI и, введя команду "show elm" в разделе "main" CLI, убедиться, что версия Offline ELM сервисов стала 1.4-2:
Блок кода |
---|
title | Пример проверки версии сервисов Offline ELM с помощью команды "show elm" |
---|
collapse | true |
---|
|
elmi> show elm
ELM host:
1. Instance: node1
Hostname: ELM standalone
Build version: Version 1.4, build 2, date 26-07-2024 01:48:13 +0700
Status: work
Last updated: 1722220886 (2024-07-29 09:41:26)
Next update: 1722221186 (2024-07-29 09:46:26)
Certificate info:
Valid from: 1721888945 (2024-07-25 13:29:05)
Expiry: 1724571996 (2024-08-25 14:46:36)
Token serial number: 429b439b
elmi> |
Обновление Offline ELM завершено.
Удаление Offline ELM
Для полного удаления Offline ELM с хоста требуется произвести следующие шаги:
1. Перейти в директорию с файлами работающего Offline ELM.
2. Выполнить команду:
Блок кода |
---|
title | Команда для удаления Offline ELM с хоста |
---|
|
$ docker compose down --remove-orphans --rmi all --volumes |
В результате выполнения команды Offline ELM будет остановлен. В случае, если на момент выполнения команды он еще функционировал, будут удалены служебные сети, хранилища и образы в Offline.
3. Удалить оставшиеся от Offline ELM каталоги и служебные файлы:
Блок кода |
---|
title | Удаление оставшихся служебных файлов |
---|
|
# rm -rf .env config/ data/ db/ docker-compose-cli.yml docker-compose.yml log/ share/ |
Offline ELM полностью удален с хоста.
Просмотр логов сервисов Offline ELM
Логи сервисов Offline ELM можно разбить на две группы:
- логи, которые пишутся в отдельные файлы в файловой системе хоста (все логи системы Offline ELM);
- логи, которые пишутся в систему логирования Docker (все логи системы Offline ELM + логи контейнера elm-token).
Данные логи расположены в директории log в рабочем каталоге Offline ELM в следующей иерархии:
Блок кода |
---|
title | Структура файловых логов сервисов Offline ELM |
---|
|
log/
├── elmi-cli
│ ├── db.log
│ ├── debug.log
│ ├── kernel.log
│ └── networking.log
└── elmi-server
├── commerce.log
├── db.log
├── debug.log
├── engine.log
├── hosts.log
├── kernel.log
├── networking.log
├── resources.log
├── security.log
└── users.log
2 directories, 14 files |
Логи разбиты по файлам, в каждый файл пишутся логи соответствующего функционала Offline ELM:
db.log — логи взаимодействия сервиса Offline ELM с БД Offline ELM;
debug.log — отладочные логи сервиса Offline ELM;
engine.log и kernel.log — логи операций сервиса Offline ELM;
hosts.log — логи доступа хостов к Offline ELM;
networking.log — логи сетевого взаимодействия сервиса Offline ELM с другими компонентами системы ELM;
security.log — логи событий безопасности Offline ELM;
Для каждого файла отрабатывает ротация, которая настраивается параметрами "ELM_LOG_FILE_MAX_SIZE" и "ELM_LOG_FILE_MAX_COUNT" в .env файле в рабочем каталоге Offline ELM.
Для просмотра логов можно использовать инструменты Docker или плагина Docker Compose:
Блок кода |
---|
title | Пример вывода логов сервиса elmi-offline-init, записанных в систему логирования Docker |
---|
|
$ docker logs elmi-offline-init
Fri Jul 26 15:26:17 +07 2024: Setting elmi-offline config files
Fri Jul 26 15:26:17 +07 2024: Setting elmi-offline-cli config files
Fri Jul 26 15:26:17 +07 2024: ELM_DB_USER variable has changed
Fri Jul 26 15:26:17 +07 2024: ELM_DB_PASSWORD variable has changed
Fri Jul 26 15:26:27 +07 2024: Connecting to database ... 1
Fri Jul 26 15:26:27 +07 2024: Successfully connected to database
Fri Jul 26 15:26:27 +07 2024: Setting instanceID variable value
Fri Jul 26 15:26:27 +07 2024: Setting instanceID variable value
Fri Jul 26 15:26:27 +07 2024: Docker containers elmi-offline is ready to start |
Более подробно о работе системы логирования Docker можно узнать из официальной документации.
Список переменных окружения Offline ELM
Название параметра | Описание параметра | Значение по умолчанию | Обязательность параметра | Варианты значений/Примечания |
---|
ELM_TAG | Версия используемых ELM образов в формате "<версия ELM>-<номер сборки>" | - | Да | 1.4-1/1.4-2 и т.д. |
ELM_INSTANCE_ID | Определяет основной или резервный сервер | node1 | Нет | node1/node2 |
ELM_SERVER_HOST | IP-адрес хоста, на котором будет работать серверная часть Offline ELM (контейнер elmi-offline-server) | 0.0.0.0 | Нет | - |
ELM_SERVER_PORT | Номер порта для подключения к Offline ELM (контейнер elmi-offline-server) | 8099 | Нет | - |
ELM_DB_HOST | IP-адрес, на котором будет поднят порт для подключения к БД (контейнер elmi-offline-db) | 127.0.0.1 | Нет | - |
ELM_DB_PORT | Номер порта, на котором развернута БД (контейнер elmi-offline-db) | 5432 | Нет | - |
ELM_DB_CONNECT_HOST | Имя хоста (или IP-адрес) для подключения соответствующего приложения к БД (к контейнеру elmi-offline-db) | elmi-offline-db | Нет | - |
ELM_DB_CONNECT_PORT | Номер порта для подключения соответствующего приложения к БД (к контейнеру elmi-offline-db) | 5432 | Нет | - |
ELM_DB_USER | Имя служебного пользователя БД сервера ELM | elm | Нет | - |
ELM_DB_PASSWORD | Пароль служебного пользователя БД ELM | - | Нет | - |
ELM_THREAD_LIMIT | Максимальное количество одновременно поддерживаемых сессий | 10 | Нет | - |
ELM_QUEUE_LIMIT | Максимальный размер очереди клиентов, ожидающих подключения | 100 | Нет | - |
ELM_DOS_FILTER_MAX_REQUESTS_PER_SECOND | Максимальная частота запросов в секунду от одного хоста, превышение которой приведет к блокировке | 50 | Нет | - |
ELM_DOS_FILTER_DELAY_MS | Максимальное время отклика хоста, превышение которого приведет к блокировке | 200 | Нет | - |
ELM_LOG_FILE_MAX_SIZE | Максимальный размер одного log-файла в МБ | 10 | Нет | - |
ELM_LOG_FILE_MAX_COUNT | Максимальное количество log-файлов в ротации | 4 | Нет | - |
ELM_KERNEL_LOG_LEVEL | Уровень логирования логов типа "kernel" для сервисов ELM | info | Нет | info/debug |
ELM_NETWORKING_LOG_LEVEL | Уровень логирования логов типа "networking" для сервисов ELM | info | Нет | info/debug |
ELM_DEBUG_LOG_LEVEL | Уровень логирования логов типа "debug" для сервисов ELM | off | Нет | info/debug |
ELM_ENGINE_LOG_LEVEL | Уровень логирования логов типа "engine" для сервисов ELM | info | Нет | info/debug |
ELM_DB_LOG_LEVEL | Уровень логирования логов типа "db" для сервисов ELM | info | Нет | info/debug |
ELM_USERS_LOG_LEVEL | Уровень логирования логов типа "users" для сервисов ELM | info | Нет | info/debug |
ELM_SECURITY_LOG_LEVEL | Уровень логирования логов типа "security" для сервисов ELM | info | Нет | info/debug |
ELM_HOSTS_LOG_LEVEL | Уровень логирования логов типа "hosts" для сервисов ELM | info | Нет | info/debug |
ELM_COMMERCE_LOG_LEVEL | Уровень логирования логов типа "commerce" для сервисов ELM | info | Нет | info/debug |
ELM_CLI_KERNEL_LOG_LEVEL | Уровень логирования логов типа "kernel" для CLI ELM | error | Нет | error/debug |
ELM_CLI_DEBUG_LOG_LEVEL | Уровень логирования логов типа "debug" для CLI ELM | off | Нет | off/debug |
ELM_CLI_DB_LOG_LEVEL | Уровень логирования логов типа "db" для CLI ELM | error | Нет | error/debug |
ELM_CLI_NETWORKING_LOG_LEVEL | Уровень логирования логов типа "networking" для CLI ELM | error | Нет | error/debug |
ELM_PCSCD_LOG_LEVEL | Уровень логирования логов для демона pcscd | off | Нет | off/debug |
COMMON_TZ | Часовой пояс, используемый для работы всех сервисов | UTC | Нет | - |
ELM_WEB_UI_PORT | Порт web-интерфейса на Docker-хосте | 8092 | Нет | - |
DOCKER_GROUP_ID | Добавление пользователя Docker в контейнер | - | Нет | Docker Daemon Permissions |