| Оглавление |
|---|
1 Подготовка хостов к обновлению
Подсказка ECSS-10 в версии 3.17 поддерживает два типа лицензирования — файловая лицензия (с использованием токена или без него) и ELM-лицензия. В зависимости от типа лицензирования при обновлении будут выполняться разные команды.
Проверить, какой тип используется на вашем SSW, можно следующей командой:
Блок кода title выполняется в CoCon /cluster/storage/ds1/licence/list-licence
При использовании файловой лицензии вывод будет:
Блок кода title файловая лицензия /cluster/storage/ds1/licence/list-licence ┌──┬───────────────────┬────────────┬──────┬───────────────────┬────────────────────┬────────────┐ │Id│Creation date(UTC) │ SSW ID │Active│ Description │Expiration date(UTC)│ Time left │ ├──┼───────────────────┼────────────┼──────┼───────────────────┼────────────────────┼────────────┤ │1 │31.10.2025 14:16:00│ECSS 010070 │* │Eltex SC softswitc │31.12.2026 23:59:59 │112d 21h 31m│ │0 │ │ECSS DEFAULT│ │Default licence │ │ │ └──┴───────────────────┴────────────┴──────┴───────────────────┴────────────────────┴────────────┘
При использовании ELM-лицензии вывод будет:
Блок кода title ELM лицензия /cluster/storage/ds1/licence/list-licence ┌──┬───────────────────┬────────────┬──────┬────────────────┬────────────────────┬────────────┐ │Id│Creation date(UTC) │ SSW ID │Active│ Description │Expiration date(UTC)│ Time left │ ├──┼───────────────────┼────────────┼──────┼────────────────┼────────────────────┼────────────┤ │1 │02.12.2025 13:51:39│ECSS2000000 │* │ECSS ELM License│02.12.2026 13:51:39 │364d 11h 47m│ │0 │01.01.1990 00:00:00│ECSS DEFAULT│ │Default licence │ │ │ └──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────┘
- Подготовка
gluster volumeк процедуре обновления.
В случае недоступности одной из нод кластера могут возникнуть проблемы с файлами. После восстановления работы они будут находиться в сплите, из-за чего вручную придётся запускать синхронизацию между нодами.
Для решения данной проблемы воспользуйтесь параметром cluster.favorite-child-policy.
При его включении все файлы, находящиеся в сплите, будут автоматически синхронизированы между собой по заданному правилу.
Включение данного параметра производится командой:Блок кода title на ecss1 sudo gluster volume set ecss_volume cluster.favorite-child-policy size
Без форматирования title Результат: sudo gluster volume set ecss_volume cluster.favorite-child-policy size volume set: success
Без форматирования title Результат: sudo gluster volume info Volume Name: ecss_volume Type: Replicate Volume ID: 4bc875b1-f966-44e2-9b3f-04f3a7af83f3 Status: Started Snapshot Count: 0 Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: 10.0.10.51:/var/lib/ecss/glusterfs Brick2: 10.0.10.52:/var/lib/ecss/glusterfs Options Reconfigured: cluster.favorite-child-policy: size performance.client-io-threads: off nfs.disable: on transport.address-family: inet storage.fips-mode-rchecksum: on cluster.granular-entry-heal: on
- При обновлении кластера следует обновлять сервера по очереди. Таким образом, при обновлении один из серверов будет всегда запущен и работа сервисов не будет прервана. Для разделения кластера следует использовать инструмент
ecss-controlна обоих серверах (описание команд утилиты приведено в «Приложении М»).
Обмен SIP-сигнализацией происходит через SIP-VRRP IP-адрес. Этот функционал реализован для возможности миграции IP-адреса на другой хост в случае падения, отключения или технического обслуживания основного хоста. Контроль миграции IP-адресов осуществляется сервисомkeepalivedна каждом хосте.
Для перевода трафика на первый сервер (ecss1) необходимо остановитьkeepalivedна втором хосте (ecss2). В этом случае оба SIP-VRRP IP-адреса будут находиться на первом хосте (ecss1). Выполнить следующую команду:Блок кода title на ecss2 sudo systemctl disable --now keepalived.service
- Командой
ifconfigпроверить, что все VRRP IP-адреса находятся на ecss1 (VRRP-SIP1/VRRP-SIP2):Блок кода title на ecss1 ifconfig
- Необходимо замаскировать все ноды на сервере, который обновляется первым, и отключить их автозапуск:
Блок кода title на ecss2 sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm
Информация При выполнении указанной команды будет уведомление.
Без форматирования Warning: The unit file, source configuration file or drop-ins of ecss-ds.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-mycelium.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-mediator.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-core.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-pa-sip.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Эти сообщения не являются ошибкой. Продолжать выполнение процедуры.
Предупреждение Нода sorm идет одна на кластер. Если она запущена на ecss1 при выполнении указанной команды появится уведомление.
Без форматирования Unit /etc/systemd/system/ecss-sorm.service is masked, ignoring.
Это сообщение не является ошибкой. Продолжать выполнение процедуры.
- На ecss1 выполнить разделение SSW на два независимых сервера следующей командой:
Предупреждение Команда
ecss-controlработает со стандартными именами хостов : ecss1/ecss2.
Проверить статус:Блок кода title на ecss1 sudo ecss-control detach
Блок кода title на ecss1 sudo ecss-control status
Без форматирования title Результат: sudo ecss-control detach detach host: ecss2, ip: 10.0.10.52 complete sudo ecss-control status locked ip: 10.0.10.52
2 Подготовка к обновлению сервисов SSW
- Актуализировать репозиторий SSW:
Блок кода title на обоих хостах sudo sh -c "echo deb [arch=amd64] http://archive.eltex.org/ssw/jammy/3.18 stable main extras external > /etc/apt/sources.list.d/eltex-ecss10-stable.list"
- Выполнить обновление пакетов:
Блок кода title на обоих хостах sudo apt update
3 Обновление сервисов SSW на ecss2
Предупреждение title Внимание Выполнить полную резервную копию (см. «Регламентное обслуживание и резервное копирование»). - Обновление PostgreSQL:
- Проверить на каких адресах подключена БД Postgres, выполнить команду:
Блок кода title на ecss2 psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;"
Подсказка Пароль по умолчанию "postgres1"
Блок кода title Пример: psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;" Password for user postgres: node_local_dsn --------------------------------------------------------------------------------------- host=10.0.10.51 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1 host=10.0.10.52 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1 (2 rows) - Выключить docker-контейнер:
Блок кода title на ecss2 sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down
Без форматирования title Пример: sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down [+] down 2/2 ✔ Container ecss-postgres-bdr-ssw-postgres-container-1 Removed ✔ Network ecss-postgres-bdr-ssw_default Removed
- Удалить старый deb-пакет, так как опция upgrade не поддержана:
Блок кода title на ecss2 sudo apt remove ecss-postgres-bdr-ssw
Предупреждение title Важно! Выполнить именно remove, а не purge, так как remove сохраняет директорию volumes с таблицами нашей БД.
Без форматирования title Пример: sudo apt remove ecss-postgres-bdr-ssw Чтение списков пакетов… Готово . . . Следующие пакеты будут УДАЛЕНЫ: ecss-postgres-bdr-ssw . . . Хотите продолжить? [Д/н] y Удаляется ecss-postgres-bdr-ssw (17.1.0.59+ssw) …
- Установить новый deb-пакет:
Блок кода title на ecss2 sudo apt install ecss-postgres-bdr-ssw
Предупреждение title Важно! Во время установки будут заданы вопросы как при первоначальной установке:
Ответы должны точно соответствовать указанным в процедуре, иначе будет выполнена попытка создать новую базу данных, и установка завершится ошибкой.Информация Вопрос Ответ Пример Текущий IP-адрес сетевого интерфейса.
Предупреждение Выберите IP: тот же, что и при первоначальной установке,
так как репликация завязана на конкретные IP.(проверили в пункте "а", в примере 10.0.10.52).
10.0.10.52 (необходимо выбрать) Установка в кластере?
Выберите <Да>, если пакет устанавливается на узле кластера.Да (значение по умолчанию) Является ли этот узел мастером?
Предупреждение title Важно! НЕТ! Иначе он попытается создать новую bdr,
чего сделать не сможет и установка завершится с ошибкой).Нет (значение по умолчанию) IP-адрес, используемый для подключения к кластеру:
Предупреждение title Важно! IP соседней ноды (который указывали при её установке, проверили в пункте "а", в примере 10.0.10.51).
10.0.10.51 (необходимо указать) Блок кода title При успешной установке на этапе поднятия репликации увидим: sudo apt install ecss-postgres-bdr-ssw . . . ============================= Checking replication status ============================= Репликация BDR настроена корректно: данные совпадают. . . . ======================================================= ======================================================= ecss-postgres-bdr-ssw successfully installed/updated! ======================================================= ======================================================= ┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓ ┳┓┳┓┳┓ ┏┓┏┓┓ ┏ ┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓ ┣┫┃┃┣┫ ┗┓┗┓┃┃┃ ┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛ ┻┛┻┛┛┗ ┗┛┗┛┗┻┛
- После установки проверить, что загрузился новый образ и стартовал docker, выполнить команду:
Блок кода title на ecss2 docker ps
Блок кода title Пример: docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 80ef72d3b125 git.eltex.loc:4567/ecss/ecss-postgresbdr:3.18 "/docker-entrypoint.…" 8 minutes ago Up 8 minutes 0.0.0.0:5439->5432/tcp, [::]:5439->5432/tcp ecss-postgres-bdr-ssw-postgres-container-1
- Проверить на каких адресах подключена БД Postgres, выполнить команду:
- Обновление SSW.
- Обновление пакета
ecss-dns-env:Блок кода title на ecss2 sudo apt install ecss-dns-env
- Выполнить обновление пакета
ecss-user:Блок кода title на ecss2 sudo apt install ecss-user
- Выполнить обновление пакета ecss-utils:
Блок кода title на ecss2 sudo apt install ecss-utils
Раскрыть title В случае использования ELM-лицензирования Установить пакет License Provider:
Блок кода title на ecss2 sudo apt install ecss-license-provider
При установке пакета
ecss-license-providerбудут заданы вопросы:Вопрос Ответы Примеры Адрес для соединения с License Provider:
License Provider listen ip:0.0.0.0 (значение по умолчанию) Порт для соединения с License Provider:
License Provider listen port:4321 (значение по умолчанию) Выберите уровень логирования:
Log level:info (значение по умолчанию),
возможные варианты: debug, error, infoКлюч-имя кластера резервирования:
License Provider cluster key:указать уникальное имя
ecss-lm-cluster (значение по умолчанию)Подсказка Менеджеры с одинаковыми именами попытаются собраться в кластер для взаимного резервирования. Данные сохраняются в файле
/etc/ecss/ecss-license-provider/config.env:Без форматирования ECSS_LM_HOST=0.0.0.0 ECSS_LM_PORT=4321 ECSS_LM_LOG_LEVEL=info RELEASE_COOKIE=ecss-abf-lm-cluster
Конфигурация License Provider (LP)
Сервис
ecss-license-providerиспользует два конфигурационных файла:/etc/ecss/ecss-license-provider/config.envи/etc/ecss/ecss-license-provider/config.yaml.В файл
config.envинформация сохраняется в момент установки пакета ecss-license-provider.config.yaml файл содержит основные настройки для подключения к ELM-серверу, откуда брать лицензии, какие лицензии, и куда их потом передавать, все это нужно сконфигурировать вручную.
Для заполнения этих полей откройте файл конфигурацииБлок кода title информация в файле после установки elm_addresses: [] licenses: [] ecss_nodes: []
ecss-elm-adapterиспользуемого в версии 3.17/etc/ecss/ecss-elm-adapter/config.env:Блок кода title на ecss2 cat /etc/ecss/ecss-elm-adapter/config.env ELM_HOST=elm.eltex-co.ru ELM_PORT=8099 ECSS_PRODUCT_ID=ECSS2000000 ECSS_LICENSE_KEY=ssw987654 LOG_LEVEL=info LICENCE_FAIL_TIMER_SECONDS=10 LICENCE_PULL_TIMER_SECONDS=360
В поле
elm_addressesнеобходимо указать список серверов ELM, к которым мы хотим подключаться для получения лицензий.
Первый адрес в списке используется как основной. Дополнительные строки с адресами работают как резерв.
пример:Блок кода title Пример: elm_addresses: - "elm.eltex-co.ru:8099" - "192.168.111.22:8099" - "elm-3.eltex.loc:8099"
Далее задаются лицензии в поле licenses.- id может быть любой, главное, чтобы был уникальный у каждой лицензии. Влияет только на адрес лицензии на самом License Provider (например 0, 1, 2, 3).
- kind. Для SSW поддерживается только SSW (заглавными буквами).
- type выбирается как elm, если запрашивать данную лицензию нужно с ELM-сервера. Если нужно использовать файловую лицензию SSW, то тип выбирается как ecss_license.
- при elm типе необходимо задать поля license_key и product_id для идентификации лицензии.
- при ecss_license типе задаётся поле license, содержащее ключ статической лицензии.
Примечание Параметры license_key = ECSS_LICENSE_KEY и product_id = ECSS_PRODUCT_ID должны быть согласованы с данными, ранее загруженными на ELM-сервере.
Блок ecss_nodes.
В нем необходимо указать данные сервисов, которые будут получать лицензию. Сервис задается тремя параметрами:
- id - идентификатор сервиса. В случае с SSW должен совпадать с ECSS_ID лицензируемого SSW.
- kind - тип лицензируемого сервиса. по аналогии с блоком лицензий поддерживаются типы SSW и AUP. Для SSW поддерживается только SSW.
- license_id - идентификатор лицензии, которая будет отправляться на данный сервис. Соответствует идентификаторам лицензии из блока licenses.
Примечание Два SSW с разными ECSS_ID не могут получить одну и ту же лицензию, конфигурация с таким распределением будет помечена некорректной.
Кроме того, два SSW с одинаковыми ECSS_ID не смогут одновременно получать одну и ту же лицензию с одного License Provider, поэтому крайне важно корректно устанавливать свой ECSS_ID и делать его уникальным как минимум в зоне видимости используемого License Provider.Подсказка Формат ECSS_ID.
Начинается и заканчивается обязательно латинской буквой или цифрой, в теле могут использоваться точки и тире.Без форматирования [A-Za-z0-9][A-Za-z0-9.-][A-Za-z0-9]
Примечание Для SSW, работающего в кластере, указываем только одну запись в блок ecss_nodes на кластер, индивидуально для каждого хоста указывать нельзя. Иначе будут генерироваться два запроса с одинаковым ECSS_ID что недопустимо.
Блок кода title Пример: файла config.yaml на основе данных из файла elm_addresses: - "elm.eltex-co.ru:8099" licenses: - id: 0 kind: SSW type: elm license_key: "ssw987654" product_id: "ECSS2000000" ecss_nodes: - id: eltex1.test kind: SSW license_id: 0
Выполнить перезагрузку сервиса
ecss-license-provider.serviceдля обновления конфигурации из файла/etc/ecss/ecss-license-provider/config.yamlследующей командой:Блок кода title если кластер, то на обоих хостах sudo systemctl restart ecss-license-provider.service
Раскрыть title В случае использования файловой лицензии Никаких дополнительных действий выполнять не требуется.
- Выполнить обновление пакета ecss-node:
Блок кода title на ecss2 sudo apt install ecss-node
Информация ВОПРОСЫ ПРИ УСТАНОВКЕ
ecss-node:Вопрос Ответ Пример Cookie для ноды core: (указать уникальный cookie для core, в примере ecss-core-example)
Предупреждение В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-core-example (необходимо ввести) Cookie для ноды ds: (указать уникальный cookie для ds, в примере ecss-ds-example)
Предупреждение В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-ds-example (необходимо ввести) Cookie для ноды mediator: (указать уникальный cookie для mediator, в примере ecss-mediator-example)
Предупреждение В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-mediator-example (необходимо ввести) Cookie для ноды pa-sip: (указать уникальный cookie для pa-sip, в примере ecss-pa-sip-example)
Предупреждение В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-pa-sip-example(необходимо ввести)Cookie для ноды mycelium: (указать уникальный cookie для mycelium, в примере ecss-mycelium-example)
Предупреждение В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-mycelium-example (необходимо ввести) Cookie для ноды sorm: (указать уникальный cookie для sorm, в примере ecss-sorm-example)
Предупреждение В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-sorm-example(необходимо ввести)Предупреждение Принимаем все изменения файлов конфигурации
- Обновление пакета
- Включаем ноды.
Включить сервисы SSW следующими командами:Блок кода title на ecss2 sudo systemctl unmask ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm
Блок кода title на ecss2 sudo systemctl enable ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm
Предупреждение title Внимание Перед запуском нод SSW изменяем имя кластера (на любое другое, главное, чтобы оно не совпадало с соседом (ecss1)/любой другой потенциальной АТС в вашей сети, иначе он попробует к ней подключиться). Для этого правим в файле
/etc/ecss/ecss-mycelium/mycelium.configстроку "{cluster_name, 'eltex.test'}," для примера на "{cluster_name, 'eltex1.test'},"Блок кода title на ecss2 sudo nano /etc/ecss/ecss-mycelium/mycelium.config
Без форматирования title Пример: [ {mycelium_broker, [ {cluster_name, 'eltex1.test'}, {compress_module, elx_data_nif}, {session_gc_timeout, 3000}, {queue_gc_timeout, infinity} . . . - Запуск SSW на ecss2. Запустить следующие сервисы:
ecss-myceliumБлок кода title на ecss2 sudo systemctl start ecss-mycelium
ecss-dsБлок кода title на ecss2 sudo systemctl start ecss-ds
ecss-core
ecss-mediatorБлок кода title на ecss2 sudo systemctl start ecss-core
Блок кода title на ecss2 sudo systemctl start ecss-mediator
Подсказка Если лицензия поддерживает СОРМ3, то запустить также сервис
ecss-sorm.Блок кода title на ecss2 sudo systemctl start ecss-sorm
Если сервис
ecss-sormоказался замаскирован, то выполнить следующие команды:Блок кода title на ecss2 sudo systemctl unmask ecss-sorm sudo systemctl start ecss-sorm
Подсказка Для корректной работы SORM3 необходимо выполнить команду для SORM-экстрактора. Данную команду необходимо выполнить для каждого домена в SSW.
Блок кода title выполняется в CoCon /domain/<Имя_домена>/sorm3/set extractor_node sorm1@ecss2
панель title Для примера: /domain/test_domain/sorm3/info┌──────────────────┬───────────┬─────────────┐│ Property │ Domain │ Value │├──────────────────┼───────────┼─────────────┤│adaptation │test_domain│undefined ││enabled │test_domain│true ││entrypoint_profile│test_domain│test ││extractor_ip │test_domain│192.168.47.94││extractor_node │test_domain│sorm1@ecss1 │└──────────────────┴───────────┴─────────────┘/domain/test_domain/sorm3/set extractor_node sorm1@ecss2Property "extractor_node" successfully changed from:sorm1@ecss1tosorm1@ecss2./domain/test_domain/sorm3/info┌──────────────────┬───────────┬─────────────┐│ Property │ Domain │ Value │├──────────────────┼───────────┼─────────────┤│adaptation │test_domain│undefined ││enabled │test_domain│true ││entrypoint_profile│test_domain│test ││extractor_ip │test_domain│192.168.47.94││extractor_node │test_domain│sorm1@ecss2 │└──────────────────┴───────────┴─────────────┘Команду повторить для всех доменов в SSW
Предупреждение Пока не запускаем PA-SIP
- Проверить статус сервисов, для этого выполнить в CoCon команду
system-status:Без форматирования title выполняется в CoCon /system-status Checking... ┌─┬───────────────┬────────────────────────┬───────────────┬────────────┬──────┐ │ │ Node │ Release │ Erlang nodes │Mnesia nodes│Uptime│ ├─┼───────────────┼────────────────────────┼───────────────┼────────────┼──────┤ │ │core1@ecss2 │ecss-core-3.18.0.217 │core1@ecss2 │not running │1m 28s│ │ │ds1@ecss2 │ecss-ds-3.18.0.217 │ds1@ecss2 │ds1@ecss2 │1m 32s│ │ │md1@ecss2 │ecss-mediator-3.18.0.217│md1@ecss2 │md1@ecss2 │1m 23s│ │ │mycelium1@ecss2│ecss-mycelium-3.18.0.217│mycelium1@ecss2│not running │1m 37s│ │ │sorm1@ecss2 │ecss-sorm-3.18.0.217 │sorm1@ecss2 │not running │1m 56s│ └─┴───────────────┴────────────────────────┴───────────────┴────────────┴──────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼─────────────┼───────────┼───────────┤ │ core1@ecss2 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:00:14 │ │ │ msr.ecss2 │ 3.17.1.0.27 │ connected │ 00:00:16 │ └─────────────┴───────────┴─────────────┴───────────┴───────────┘
Раскрыть title В случае использования ELM-лицензирования На ecss1 отключить сервис ecss-elm-adapter, выполнив команду:Блок кода title на ecss1 sudo systemctl stop ecss-elm-adapter.service
Выполнить конфигурацию подключения SSW к License Provider следующей командой в CoCon, (в примере License Provider установлен в кластере, IP-адреса хостов 10.0.10.51 и 10.0.10.52. Значение порта из файла
/etc/ecss/ecss-license-provider/config.envпо умолчанию 4321):Блок кода title выполняется в CoCon /system/licence/manager/set --hosts [https://10.0.10.51:4321, https://10.0.10.52:4321]
Подсказка В случае установки License Provider на хостах SSW указывать IP-адреса OAM.
После выполнения проверить статус подключения командой:
Блок кода title выполняется в CoCon /system/licence/manager/show-status ┌───────────────────────┬───────┬─────┐ │ Host │Current│Alive│ ├───────────────────────┼───────┼─────┤ │https://10.0.10.51:4321│* │true │ │https://10.0.10.52:4321│ │true │ └───────────────────────┴───────┴─────┘
Все хосты должны иметь статус alive=true. Один должен быть "current".
- Current - отображает к какому хосту подключён SSW. Если есть подключение, указывается *, если нет - ничего не указано.
- Alive - отображает статус доступности хоста (healthcheck).
Информация title Подключение к License Manager Отсутствие подключения к License Provider или ELM будет равноценно отсутствию доступа к токену, что приведёт к критическим авариям, переходу в аварийный режим по истечению которого, если связь не будет восстановлена, система перейдёт на Default-лицензию.
Это поведение применимо только при работе в elm-режиме.
Если статус к одному из хостов License Provider показан current, можно посылать запрос на загрузку лицензии на SSW командой:
Блок кода title выполняется в CoCon /cluster/storage/ds1/licence/request
Блок кода title type=elm /cluster/storage/ds1/licence/request Licence received [******* ] 6s 2ms Success: Licence parameters applied
Блок кода title type=elm /cluster/storage/ds1/licence/list-licence ┌──┬───────────────────┬────────────┬──────┬────────────────┬────────────────────┬────────────────────┬─────────┐ │Id│Creation date(UTC) │ SSW ID │Active│ Description │Comm. Exp. Date(UTC)│Expiration date(UTC)│Time left│ ├──┼───────────────────┼────────────┼──────┼────────────────┼────────────────────┼────────────────────┼─────────┤ │1 │03.02.2026 16:26:34│ECSS2000000 │* │ECSS ELM License│03.02.2027 16:26:34 │14.03.2026 10:49:12 │1d 6h 59m│ │0 │01.01.1990 00:00:00│ECSS DEFAULT│ │Default licence │ │ │ │ └──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────────────┴─────────┘
Раскрыть title В случае использования файловой лицензии Никаких дополнительных действий выполнять не требуется.
- Обновление пакета
ecss-restfs.Подсказка Принять все новые конфигурационные файлы, выбирая Y. Блок кода title на ecss2 sudo apt install ecss-restfs
- Обновление пакета
ecss-media-server.Блок кода title на ecss2 sudo apt install ecss-media-server
- Обновление пакета
ecss-media-resources:Блок кода title на ecss2 sudo apt install ecss-media-resources
- Обновление пакета
ecss-web-confБлок кода title на ecss2 sudo apt install ecss-web-conf
Раскрыть title Обновление пакетов опциональных сервисов Проверить список установленных сервисов командой:
Блок кода title на ecss2 sudo dpkg -l | grep ecss
Без форматирования title Пример: sudo dpkg -l | grep ecss ii ecss-cc-ui 17.1.0.36+cc-ui amd64 Eltex/ECSS-10 UI and API for call center ii ecss-dns-env 18.0.0 amd64 Eltex/ECSS-10 Configuration settings for domain service ii ecss-media-resources 18.0.0 amd64 Eltex/ECSS-10 Media resources ii ecss-media-server 18.0.7 amd64 Eltex/ECSS-10 Media server ii ecss-node 18.0.217 amd64 Eltex/ECSS-10 Node services ii ecss-peeper-client 17.1.0.23 amd64 Eltex/ECSS-10 peeper client ii ecss-postgres-bdr-ssw 18.0.0+ssw amd64 Eltex/Postgres BDR ii ecss-restfs 18.0.21 amd64 Eltex/ECSS-10 RestFS API interface for filesystem ii ecss-teleconference-ui 17.1.0.23 amd64 Eltex/ECSS-10 UI and API for Teleconference ii ecss-user 18.0.0 amd64 Eltex/ECSS-10 SSW user environment ii ecss-utils 18.0.0 amd64 Eltex/ECSS-10 Utilities for reading binary logs ii ecss-web-conf 18.0.31 amd64 Eltex/ECSS-10 Web configurator
По результатам выполнения команды переустановить пакеты имеющие версию 17.1.* . В данном примере —
ecss-cc-ui/ecss-peeper-client/ecss-teleconference-ui.Обновление пакета
ecss-teleconference-uiБлок кода title на ecss2 sudo apt install ecss-teleconference-ui
Обновление пакета
ecss-crm-serverБлок кода title на ecss2 sudo apt install ecss-crm-server
Обновление пакета
ecss-cc-uiБлок кода title на ecss2 sudo apt install ecss-cc-ui
Обновление пакета
ecss-call-apiБлок кода title на ecss2 sudo apt install ecss-call-api
Обновление пакета
ecss-peeper-clientБлок кода title на ecss2 sudo apt install ecss-peeper-client
Раскрыть title В случае использования ELM-лицензирования Удалить больше не используемый пакет ecss-elm-adapterкомандой:Блок кода title на ecss2 sudo apt purge ecss-elm-adapter
Раскрыть title В случае использования файловой лицензии Никаких дополнительных действий выполнять не требуется.
4 Перевод нагрузки на ecss2
- Запуск сервиса
keepalived
Перед запуском сервисаkeepalivedнеобходимо стартовать сервисecss-pa-sip:Блок кода title на ecss2 sudo systemctl start ecss-pa-sip
Блок кода title на ecss2 sudo systemctl enable --now keepalived
Информация Запуском сервисов
ecss-pa-sipиkeepalivedвыполняется перевод трафика с ecss1 на ecss2. Это первый шаг переключения трафика на ecss2, полный перевод будет после отключения сервисаkeepalivedна ecss1 на следующих шагах. - Подготовить ecss1 к обновлению, для этого перевести весь трафик на ecss2 (команда выполняется на ecss1):
Блок кода title на ecss1 sudo systemctl disable --now keepalived.service
- Командой
ifconfigпроверьте, что все VRRP-адреса (VRRP IP-SIP1 / VRRP IP-SIP2) находятся на ecss2.Блок кода title на ecss2 ifconfig
5 Подготовительные действия на ecss1
Предупреждение title Внимание Выполнить полную резервную копию (см. Регламентное обслуживание и резервное копирование). - После разделения кластера необходимо выключить все ноды на сервере ecss1:
Блок кода title на ecss1 sudo systemctl mask --now ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip ecss-sorm
Информация При выполнении указанной команды будет уведомление.
Без форматирования Warning: The unit file, source configuration file or drop-ins of ecss-ds.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-mycelium.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-mediator.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-core.service changed on disk. Run 'systemctl daemon-reload' to reload units. Warning: The unit file, source configuration file or drop-ins of ecss-pa-sip.service changed on disk. Run 'systemctl daemon-reload' to reload units.
Эти сообщения не являются ошибкой. Продолжать выполнение процедуры.
6 Обновление сервисов SSW на ecss1
- Выполнить на ecss1 объединение в кластер:
Подсказка Команда
ecss-control attachвыполняется на этом шаге для возможности создания репликации БД Postgres. Такое поведение безопасно, потому что нода уже выведена из эксплуатации.Блок кода title на ecss1 sudo ecss-control attach
- Обновление PostgreSQL:
- Проверить, на каких адресах подключена БД Postgres, выполнить команду:
Блок кода title на ecss1 psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;"
Блок кода title Пример: пароль по умолчанию "postgres1" psql -Upostgres -decss_storekeeper_db -h localhost -p5439 -c "SELECT node_local_dsn FROM bdr.bdr_nodes;" Password for user postgres: node_local_dsn --------------------------------------------------------------------------------------- host=10.0.10.51 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1 host=10.0.10.52 port=5439 dbname=ecss_storekeeper_db user=postgres password=postgres1 (2 rows) - Выключить docker-контейнер:
Блок кода title на ecss1 sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down
Без форматирования title Пример: sudo docker compose -f /srv/ecss/ecss-postgres-bdr-ssw/docker-compose.container.yml down [+] down 2/2 ✔ Container ecss-postgres-bdr-ssw-postgres-container-1 Removed ✔ Network ecss-postgres-bdr-ssw_default Removed
- Удалить старый deb-пакет, так как опция upgrade не поддержана:
Блок кода title на ecss1 sudo apt remove ecss-postgres-bdr-ssw
Предупреждение title Важно! Выполнить именно remove, а не purge, так как remove сохраняет директорию volumes с таблицами нашей БД.
Без форматирования title Пример: sudo apt remove ecss-postgres-bdr-ssw Чтение списков пакетов… Готово . . . Следующие пакеты будут УДАЛЕНЫ: ecss-postgres-bdr-ssw . . . Хотите продолжить? [Д/н] y Удаляется ecss-postgres-bdr-ssw (17.1.0.59+ssw) …
- Установить новый deb-пакет:
Блок кода title на ecss1 sudo apt install ecss-postgres-bdr-ssw
Предупреждение title Важно! Во время установки будут заданы вопросы как при первоначальной установке:
Ответы должны точно соответствовать указанным в процедуре, иначе будет выполнена попытка создать новую базу данных, и установка завершится ошибкой.Информация Вопрос Ответ Пример Текущий IP-адрес сетевого интерфейса.
Предупреждение Выберите IP: тот же, что и при первоначальной установке,
так как репликация завязана на конкретные IP.(проверили в пункте "а", в примере 10.0.10.51)
10.0.10.51 (необходимо выбрать) Установка в кластере?
Выберите <Да>, если пакет устанавливается на узле кластера.Да (значение по умолчанию) Является ли этот узел мастером?
Предупреждение НЕТ! (Важно!, иначе он попытается создать новую bdr,
чего сделать не сможет и установка завершится с ошибкой)Нет (значение по умолчанию) IP-адрес, используемый для подключения к кластеру:
Предупреждение IP соседней ноды (который указывали при её установке,
проверили в пункте "а", в примере 10.0.10.52)
10.0.10.52 (необходимо указать) Блок кода title При успешной установке, на этапе поднятия репликации увидим: sudo apt install ecss-postgres-bdr-ssw . . . ============================= Checking replication status ============================= Репликация BDR настроена корректно: данные совпадают. . . . ======================================================= ======================================================= ecss-postgres-bdr-ssw successfully installed/updated! ======================================================= ======================================================= ┏┓┏┓┏┓┏┳┓┏┓┳┓┏┓┏┓ ┳┓┳┓┳┓ ┏┓┏┓┓ ┏ ┃┃┃┃┗┓ ┃ ┃┓┣┫┣ ┗┓ ┣┫┃┃┣┫ ┗┓┗┓┃┃┃ ┣┛┗┛┗┛ ┻ ┗┛┛┗┗┛┗┛ ┻┛┻┛┛┗ ┗┛┗┛┗┻┛
- После установки проверить, что загрузился новый образ и стартовал docker, выполнить команду:
Блок кода title на ecss1 docker ps
Блок кода title Пример: docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f53bd28c78ff git.eltex.loc:4567/ecss/ecss-postgresbdr:3.18 "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 0.0.0.0:5439->5432/tcp, [::]:5439->5432/tcp ecss-postgres-bdr-ssw-postgres-container-1
- Проверить, на каких адресах подключена БД Postgres, выполнить команду:
- Обновление пакета
ecss-dns-env.Блок кода title на ecss1 sudo apt install ecss-dns-env
Подсказка При обновлении принимать новые конфигурационные файлы -Y. - Обновление пакета
ecss-user:Блок кода title на ecss1 sudo apt install ecss-user
- Обновление пакета
ecss-utils:Блок кода title на ecss1 sudo apt install ecss-utils
Раскрыть title В случае использования ELM-лицензирования Установить пакет License Provider:
Блок кода title на ecss2 sudo apt install ecss-license-provider
При установке пакета
ecss-license-providerбудут заданы вопросы:Вопрос Ответы Примеры Адрес для соединения с License Provider:
License Provider listen ip:0.0.0.0 (значение по умолчанию) Порт для соединения с License Provider:
License Provider listen port:4321 (значение по умолчанию) Выберите уровень логирования:
Log level:info (значение по умолчанию),
возможные варианты: debug, error, infoКлюч-имя кластера резервирования:
License Provider cluster key:указать уникальное имя
ecss-lm-cluster (значение по умолчанию)Подсказка Менеджеры с одинаковыми именами попытаются собраться в кластер для взаимного резервирования. Какие службы должны быть перезапущены? ecss-license-provider.service (значение по умолчанию)
Данные сохраняются в файле
/etc/ecss/ecss-license-provider/config.env:Без форматирования ECSS_LM_HOST=0.0.0.0 ECSS_LM_PORT=4321 ECSS_LM_LOG_LEVEL=info RELEASE_COOKIE=ecss-abf-lm-cluster
Конфигурация License Provider (LP)
Сервис
ecss-license-providerиспользует два конфигурационных файла:/etc/ecss/ecss-license-provider/config.envи/etc/ecss/ecss-license-provider/config.yaml.В файл
config.envинформация сохраняется в момент установки пакетаecss-license-provider.config.yamlфайл содержит основные настройки для подключения к ELM-серверу, откуда брать лицензии, какие лицензии, и куда их потом передавать, все это нужно сконфигурировать вручную.
Для заполнения этих полей откройте файл конфигурацииБлок кода title информация в файле после установки elm_addresses: [] licenses: [] ecss_nodes: []
ecss-elm-adapterиспользуемого в версии 3.17/etc/ecss/ecss-elm-adapter/config.env:Блок кода title на ecss2 cat /etc/ecss/ecss-elm-adapter/config.env ELM_HOST=elm.eltex-co.ru ELM_PORT=8099 ECSS_PRODUCT_ID=ECSS2000000 ECSS_LICENSE_KEY=ssw987654 LOG_LEVEL=info LICENCE_FAIL_TIMER_SECONDS=10 LICENCE_PULL_TIMER_SECONDS=360
В поле
elm_addressesнеобходимо указать список серверов ELM, к которым мы хотим подключаться для получения лицензий. Первый адрес в списке используется как основной. Дополнительные строки с адресами работают как резерв.Подсказка Адрес ELM-сервера Элтекс - "elm.eltex-co.ru:8099".
пример:
- "elm.eltex-co.ru:8099"
- "192.168.111.22:8099"
- "elm-3.eltex.loc:8099"
Далее задаются лицензии в поле licenses.- id может быть любой, главное, чтобы был уникальный у каждой лицензии. Влияет только на адрес лицензии на самом License Provider (например 0, 1, 2, 3).
- kind. Для SSW поддерживается только SSW (заглавными буквами).
- type выбирается как elm, если запрашивать данную лицензию нужно с ELM-сервера. Если нужно использовать файловую лицензию SSW, то тип выбирается как ecss_license.
- при elm типе необходимо задать поля license_key и product_id для идентификации лицензии.
- при ecss_license типе задаётся поле license содержащее ключ статической лицензии.
Примечание Параметры license_key = ECSS_LICENSE_KEY и product_id = ECSS_PRODUCT_ID должны быть согласованы с данными ранее загруженными на ELM-сервере.
Блок ecss_nodes.
В нем необходимо указать данные сервисов, которые будут получать лицензию. Сервис задается тремя параметрами:
- id - идентификатор сервиса. В случае с SSW должен совпадать с ECSS_ID лицензируемого SSW.
- kind - тип лицензируемого сервиса. по аналогии с блоком лицензий поддерживаются типы SSW и AUP. Для SSW поддерживается только SSW.
- license_id - идентификатор лицензии, которая будет отправляться на данный сервис. Соответствует идентификаторам лицензии из блока licenses.
Примечание Два SSW с разными ECSS_ID не могут получить одну и ту же лицензию, конфигурация с таким распределением будет помечена некорректной.
Кроме того, два SSW с одинаковыми ECSS_ID не смогут одновременно получать одну и ту же лицензию с одного License Provider, поэтому крайне важно корректно устанавливать свой ECSS_ID и делать его уникальным как минимум в зоне видимости используемого License Provider.Подсказка Формат ECSS_ID.
Начинается и заканчивается обязательно латинской буквой или цифрой, в теле могут использоваться точки и тире.Без форматирования [A-Za-z0-9][A-Za-z0-9.-][A-Za-z0-9]
Примечание Для SSW, работающего в кластере, указываем только одну запись в блок ecss_nodes на кластер, индивидуально для каждого хоста указывать нельзя. Иначе будут генерироваться два запроса с одинаковым ECSS_ID что недопустимо.
Блок кода title Пример: файла config.yaml на основе данных из файла elm_addresses: - "elm.eltex-co.ru:8099" licenses: - id: 0 kind: SSW type: elm license_key: "ssw987654" product_id: "ECSS2000000" ecss_nodes: - id: eltex1.test kind: SSW license_id: 0
Выполнить перезагрузку сервиса
ecss-license-provider.serviceдля обновления конфигурации из файла/etc/ecss/ecss-license-provider/config.yamlследующей командой:Блок кода title если кластер, то на обоих хостах sudo systemctl restart ecss-license-provider.service
Раскрыть title В случае использования файловой лицензии Никаких дополнительных действий выполнять не требуется.
- Обновление пакета
ecss-node:Блок кода title на ecss1 sudo apt install ecss-node
Информация title на ecss1 ВОПРОСЫ ПРИ УСТАНОВКЕ
ecss-node:Вопрос Ответ Пример Cookie для ноды core: (указать уникальный cookie для core, в примере ecss-core-example)
Предупреждение В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-core-example (необходимо ввести) Cookie для ноды ds: (указать уникальный cookie для ds, в примере ecss-ds-example)
Предупреждение В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-ds-example (необходимо ввести) Cookie для ноды mediator: (указать уникальный cookie для mediator, в примере ecss-mediator-example)
Предупреждение В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-mediator-example (необходимо ввести) Cookie для ноды pa-sip: (указать уникальный cookie для pa-sip, в примере ecss-pa-sip-example)
Предупреждение В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-pa-sip-example(необходимо ввести)Cookie для ноды mycelium: (указать уникальный cookie для mycelium, в примере ecss-mycelium-example)
Предупреждение В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-mycelium-example (необходимо ввести) Cookie для ноды sorm: (указать уникальный cookie для sorm, в примере ecss-sorm-example)
Предупреждение В кластерной конфигурации cookie должны быть одинаковые для нод одного типа.
ecss-sorm-example(необходимо ввести)Предупреждение Принимаем все изменения файлов конфигурации
- Включить сервисы SSW:
Блок кода title на ecss1 sudo systemctl unmask ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip
Блок кода title на ecss1 sudo systemctl enable ecss-ds ecss-mycelium ecss-mediator ecss-core ecss-pa-sip
Предупреждение title Внимание Перед запуском нод SSW, изменяем имя кластера (на имя указанное для сервера ecss2(на шаге 3.4). Для этого правим в файле
/etc/ecss/ecss-mycelium/mycelium.configстроку "{cluster_name, 'eltex.test'}," для примера на "{cluster_name, 'eltex1.test'},"Блок кода title на ecss1 sudo nano /etc/ecss/ecss-mycelium/mycelium.config
Без форматирования title Пример: [ {mycelium_broker, [ {cluster_name, 'eltex1.test'}, {compress_module, elx_data_nif}, {session_gc_timeout, 3000}, {queue_gc_timeout, infinity} . . . - На ecss1 запустите сервис mycelium и в CoCon проверьте, что сервис поднялся и видно ноды mycelium хостов ecss1/ ecss2:
Блок кода title на ecss1 sudo systemctl start ecss-mycelium
Без форматирования title выполняется в CoCon /system-status Checking... ┌─┬───────────────┬────────────────────────┬───────────────────────────────┬─────────────────────┬───────┐ │ │ Node │ Release │ Erlang nodes │ Mnesia nodes │Uptime │ ├─┼───────────────┼────────────────────────┼───────────────────────────────┼─────────────────────┼───────┤ │ │core1@ecss2 │ecss-core-3.18.0.249 │core1@ecss1,core1@ecss2 │not running │12m 12s│ │ │ds1@ecss2 │ecss-ds-3.18.0.249 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │12m 12s│ │ │md1@ecss2 │ecss-mediator-3.18.0.249│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │12m 12s│ │ │mycelium1@ecss1│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running │12m 14s│ │ │mycelium1@ecss2│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running │12m 13s│ │ │sip1@ecss2 │ecss-pa-sip-3.18.0.249 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│12m 13s│ └─┴───────────────┴────────────────────────┴───────────────────────────────┴─────────────────────┴───────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼─────────────┼───────────┼───────────┤ │ core1@ecss2 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:10:50 │ │ │ msr.ecss2 │ 3.18.0.7 │ connected │ 00:10:51 │ └─────────────┴───────────┴─────────────┴───────────┴───────────┘
- На ecss1 запустите сервис ds и в CoCon проверить, что сервис ds доступен на обоих хостах ecss1/ ecss2:
Блок кода title на ecss1 sudo systemctl start ecss-ds
Без форматирования title выполняется в CoCon /system-status Checking... ┌─┬───────────────┬────────────────────────┬───────────────────────────────┬─────────────────────┬───────┐ │ │ Node │ Release │ Erlang nodes │ Mnesia nodes │Uptime │ ├─┼───────────────┼────────────────────────┼───────────────────────────────┼─────────────────────┼───────┤ │ │core1@ecss2 │ecss-core-3.18.0.249 │core1@ecss1,core1@ecss2 │not running │12m 12s│ │ │ds1@ecss1 │ecss-ds-3.18.0.249 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │12m 14s│ │ │ds1@ecss2 │ecss-ds-3.18.0.249 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │12m 12s│ │ │md1@ecss2 │ecss-mediator-3.18.0.249│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │12m 12s│ │ │mycelium1@ecss1│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running │12m 14s│ │ │mycelium1@ecss2│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running │12m 13s│ │ │sip1@ecss2 │ecss-pa-sip-3.18.0.249 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│12m 13s│ └─┴───────────────┴────────────────────────┴───────────────────────────────┴─────────────────────┴───────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼─────────────┼───────────┼───────────┤ │ core1@ecss2 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:10:50 │ │ │ msr.ecss2 │ 3.18.0.7 │ connected │ 00:10:51 │ └─────────────┴───────────┴─────────────┴───────────┴───────────┘
- Далее такими же действиями запустить сервисы: ecss-mediator,
ecss-pa-sip,ecss-coreследующими командами:Блок кода title на ecss1 sudo systemctl start ecss-core
Блок кода title на ecss1 sudo systemctl start ecss-mediator
Проверить статус в CoCon:Блок кода title на ecss1 sudo systemctl start ecss-pa-sip
Без форматирования title Результат: /system-status Checking... ┌─┬───────────────┬────────────────────────┬───────────────────────────────┬─────────────────────┬───────┐ │ │ Node │ Release │ Erlang nodes │ Mnesia nodes │Uptime │ ├─┼───────────────┼────────────────────────┼───────────────────────────────┼─────────────────────┼───────┤ │ │core1@ecss1 │ecss-core-3.18.0.249 │core1@ecss1,core1@ecss2 │not running │12m 14s│ │ │core1@ecss2 │ecss-core-3.18.0.249 │core1@ecss1,core1@ecss2 │not running │12m 12s│ │ │ds1@ecss1 │ecss-ds-3.18.0.249 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │12m 14s│ │ │ds1@ecss2 │ecss-ds-3.18.0.249 │ds1@ecss1,ds1@ecss2 │ds1@ecss1,ds1@ecss2 │12m 12s│ │ │md1@ecss1 │ecss-mediator-3.18.0.249│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │12m 14s│ │ │md1@ecss2 │ecss-mediator-3.18.0.249│md1@ecss1,md1@ecss2 │md1@ecss1,md1@ecss2 │12m 12s│ │ │mycelium1@ecss1│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running │12m 14s│ │ │mycelium1@ecss2│ecss-mycelium-3.18.0.249│mycelium1@ecss1,mycelium1@ecss2│not running │12m 13s│ │ │sip1@ecss1 │ecss-pa-sip-3.18.0.249 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│12m 14s│ │ │sip1@ecss2 │ecss-pa-sip-3.18.0.249 │sip1@ecss1,sip1@ecss2 │sip1@ecss1,sip1@ecss2│12m 13s│ └─┴───────────────┴────────────────────────┴───────────────────────────────┴─────────────────────┴───────┘ All services are started. Active media resource selected list specific: ┌─────────────┬───────────┬─────────────┬───────────┬───────────┐ │ Node │ MSR │ MSR │ Cc-status │ Cc-uptime │ │ │ │ version │ │ │ ├─────────────┼───────────┼─────────────┼───────────┼───────────┤ │ core1@ecss1 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:10:51 │ │ │ msr.ecss2 │ 3.18.0.7 │ connected │ 00:10:48 │ │ core1@ecss2 │ msr.ecss1 │ 3.17.1.0.27 │ connected │ 00:10:50 │ │ │ msr.ecss2 │ 3.18.0.7 │ connected │ 00:10:51 │ └─────────────┴───────────┴─────────────┴───────────┴───────────┘
- Активация сервиса
keepalived.Блок кода title на ecss1 sudo systemctl enable --now keepalived
Раскрыть title В случае использования ELM-лицензирования Выполнить конфигурацию подключения SSW к License Provider следующей командой в CoCon, (в примере License Provider установлен в кластере, IP-адреса хостов 10.0.10.51 и 10.0.10.52. значение порта из файла
/etc/ecss/ecss-license-provider/config.envпо умолчанию 4321):Блок кода title выполняется в CoCon /system/licence/manager/set --hosts [https://10.0.10.51:4321, https://10.0.10.52:4321]
После выполнения проверить статус подключения командой:
Блок кода title выполняется в CoCon /system/licence/manager/show-status ┌───────────────────────┬───────┬─────┐ │ Host │Current│Alive│ ├───────────────────────┼───────┼─────┤ │https://10.0.10.51:4321│* │true │ │https://10.0.10.52:4321│ │true │ └───────────────────────┴───────┴─────┘
Все хосты должны иметь статус alive=true. Один должен быть "current".
- Current - отображает к какому хосту подключён SSW. Если есть подключение, указывается *, если нет - ничего не указано.
- Alive - отображает статус доступности хоста (healthcheck).
Информация title Подключение к License Manager Отсутствие подключения к License Provider \ ELM будет равноценно отсутствию доступа к токену, что приведёт к критическим авариям, переходу в аварийный режим по истечению которого, если связь не будет восстановлена, система перейдёт на Default-лицензию.
Это поведение применимо только при работе в elm-режиме.
Если статус к одному из хостов License Provider показан current, можно посылать запрос на загрузку лицензии на SSW командой:
Блок кода title выполняется в CoCon /cluster/storage/ds1/licence/request
Блок кода title type=elm /cluster/storage/ds1/licence/request Licence received [******* ] 6s 2ms Success: Licence parameters applied
Блок кода title type=elm /cluster/storage/ds1/licence/list-licence ┌──┬───────────────────┬────────────┬──────┬────────────────┬────────────────────┬────────────────────┬─────────┐ │Id│Creation date(UTC) │ SSW ID │Active│ Description │Comm. Exp. Date(UTC)│Expiration date(UTC)│Time left│ ├──┼───────────────────┼────────────┼──────┼────────────────┼────────────────────┼────────────────────┼─────────┤ │1 │03.02.2026 16:26:34│ECSS2000000 │* │ECSS ELM License│03.02.2027 16:26:34 │14.03.2026 10:49:12 │1d 6h 59m│ │0 │01.01.1990 00:00:00│ECSS DEFAULT│ │Default licence │ │ │ │ └──┴───────────────────┴────────────┴──────┴────────────────┴────────────────────┴────────────────────┴─────────┘
Раскрыть title В случае использования файловой лицензии Никаких дополнительных действий выполнять не требуется.
- Обновление пакета
ecss-restfs:Блок кода title на ecss1 sudo apt install ecss-restfs
- Обновление пакета
ecss-media-server:
Актуализировать конфигурацию:Блок кода title на ecss1 sudo apt install ecss-media-server
Проверить и при необходимости исправить файл:Блок кода title на ecss1 sudo dpkg-reconfigure ecss-media-server
/etc/ecss/ecss-media-server/config.xmlРаскрыть title пример Без форматирования title на ecss1 <?xml version="1.0" encoding="utf-8"?> <config date="05:27:38 07.12.2024"> <general log-level="3" log-rotate="yes" max-calls="8192" max-vid-calls="8192" max-in-group="512" load-sensor="media" load-delta="10" calls-delta="100" spool-dir-size="100M" log-name="msr.log" log-path="/var/log/ecss/media-server" use-srtp="disabled" enable-ice-transport="no" ice-update="no" aggressive-ice="yes" stun-server="" suspicious-mode="no"/> <transport bind-addr="10.0.20.82" port="5040" transport="udp+tcp"/> <!-- By default configured public TURN-server --> <turn-server use-turn="no" host="numb.viagenie.ca" user="webrtc@live.com" password="muazkh"/> <media mixer-clock-rate="8000" use-vad="no" cng-level="0" jb-size="60" rtcp-timeout="0" rtp-timeout="350" udp-src-check="no" cn-multiplier="3" port-start="12000" port-range="2048" tias-in-sdp="no" thread-cnt="2" vid-enc-threads="2" vid-dec-threads="2" video-conf-layout="evenly" keyframe-interval="1000" vid-decode-delay="100" silence-threshold="-30" dtmf-flash-disable="no" video-dscp="0" other-dscp="0" dummy-video-src="/usr/share/ecss-media-server/video/dummy_video.yuv" video-enc-width="640" video-enc-height="360" finalsilence="1000" rtcp-stat-dump="yes" dtmf-tg-fpc-loop="10" dtmf-tg-fit="1" dtmf-tg-fot="2" dtmf-tg-volume="12288"/> <codec pcma="3" pcmu="2" ilbc="0" gsm="0" g722="3" g726="0" g729="1" speex="5" l16="0" g7221="6" opus="0" h264="1" h263-1998="2" t38="1" tel-event-pt="0"/> <accounts> <!-- <dynamic msr_name="msr.name" realm="sip:127.0.0.1:5000" dtmf_mode="rfc+inband+info" auth_name="user" auth_password="password" /> --> </accounts> <pbyte> <mcc bind-addr="10.0.20.82" port="5700"/> </pbyte> <conf_dir path="/etc/ecss/ecss-media-server/conf.d"/> <metrics enable="no"/> <rtp> <auto addr-v4=""/> </rtp> </config> - Обновление пакета
ecss-media-resources:Блок кода title на ecss1 sudo apt install ecss-media-resources
- Обновление пакета
ecss-web-conf:Блок кода title на ecss1 sudo apt install ecss-web-conf
Раскрыть title Обновление пакетов опциональных сервисов Проверить список установленных сервисов командой:
Блок кода title на ecss1 sudo dpkg -l | grep ecss
Без форматирования title Пример: sudo dpkg -l | grep ecss ii ecss-cc-ui 17.1.0.53+cc-ui amd64 Eltex/ECSS-10 UI and API for call center ii ecss-dns-env 18.0.0 amd64 Eltex/ECSS-10 Configuration settings for domain service ii ecss-license-master 1.0.77 amd64 Eltex/ECSS-10 license master ii ecss-media-resources 18.0.0 amd64 Eltex/ECSS-10 Media resources ii ecss-media-server 18.0.7 amd64 Eltex/ECSS-10 Media server ii ecss-node 18.0.249 amd64 Eltex/ECSS-10 Node services ii ecss-peeper-client 17.1.0.23 amd64 Eltex/ECSS-10 peeper client ii ecss-postgres-bdr-ssw 18.0.0+ssw amd64 Eltex/Postgres BDR ii ecss-restfs 18.0.22 amd64 Eltex/ECSS-10 RestFS API interface for filesystem ii ecss-teleconference-ui 17.1.0.31 amd64 Eltex/ECSS-10 UI and API for Teleconference ii ecss-user 18.0.0 amd64 Eltex/ECSS-10 SSW user environment ii ecss-utils 18.0.0 amd64 Eltex/ECSS-10 Utilities for reading binary logs ii ecss-web-conf 18.0.31 amd64 Eltex/ECSS-10 Web configurator
По результатам выполнения команды переустановить пакеты имеющие версию 17.1.* . В данном примере —
ecss-cc-ui/ecss-peeper-client/ecss-teleconference-ui.Обновление пакета
ecss-teleconference-uiБлок кода title на ecss1 sudo apt install ecss-teleconference-ui
Обновление пакета
ecss-cc-uiБлок кода title на ecss1 sudo apt install ecss-cc-ui
Обновление пакета
ecss-peeper-clientБлок кода title на ecss1 sudo apt install ecss-peeper-client
Раскрыть title В случае использования ELM-лицензирования Удалить больше не используемый пакет ecss-elm-adapterкомандой:Блок кода title на ecss1 sudo apt purge ecss-elm-adapter
Раскрыть title В случае использования файловой лицензии Никаких дополнительных действий выполнять не требуется.








