...
A Shared Block | ||
---|---|---|
| ||
|
Рекомендуемые характеристики сервера
Система Eltex SC строится по клиент-серверной архитектуре. Серверную часть рекомендуется устанавливать на многопроцессорный компьютер под управлением OS Ubuntu 20.
...
Примечание |
---|
Минимально необходимая конфигурация для запуска ядра платформы с микросервисами. |
Установка платформы Eltex SC
В инструкции описан процесс установки платформы Eltex SC версии 1.23 на операционную систему Ubuntu 20.04. Информацию по установке более ранних версий платформы Eltex SC (1.22 и ниже) можно найти по ссылке: Архив Архив Eltex SC.
Примечание |
---|
С версии 1.19.4 установка через deb-пакеты не осуществляется. |
...
Блок кода | ||||
---|---|---|---|---|
| ||||
cd /etc/ansible-iot-1.23 ansible-playbook install.yml |
Примечание |
---|
Если ранее использовалась версия платформы Eltex SC c подключением внешней БД MongoDB, необходимо удалить запись о репозитории mongodb.org из APT (например, /etc/apt/sources.list.d/mongodb-org-4.4.list). |
8. Выполните проверку статуса контейнеров: Scroll Pagebreak
...
Порты доступа к API платформы можно изменить только в случае редактирования соответствующих настроек в файле конфигурации.
9. Добавьте файл лицензий.
Подробное описание процесса добавления файла лицензий доступно в документации Интерфейс администратора в разделе Лицензии.
Примечание |
---|
Время использования платформы и количество добавляемых устройств ограничивается типом лицензии, которая приобретается заказчиком. |
Установка платформы Eltex SC с внешней БД MongoDB
В случае развертывания внешней БД MongoDB, т.е. при установке платформы Eltex SC с внешним процессом/службой mongodb:
Примечание |
---|
Доступ к репозиториям репозиториям mongodb.org может может быть ограничен. В случае проблем с установкой пакетов необходимо использовать зеркало репозитория или вручную установить deb-пакеты (например, доступные в публичном репозитории). |
1. Установите необходимые зависимости и сервис MongoDB (например версии 4.4):
Блок кода | ||
---|---|---|
| ||
sudo apt-get update sudo apt-get upgrade sudo apt-get install -y software-properties-common gnupg build-essential net-tools dkms wget https://www.mongodb.org/static/pgp/server-4.4.asc sudo apt-key add server-4.4.asc echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list sudo apt-get update sudo apt-get install -y mongodb-org sudo service mongod start sudo service mongod status |
2. В файле /etc/mongod.conf в секции net укажите:
Блок кода | ||||
---|---|---|---|---|
| ||||
port: 27017 bindIp: 0.0.0.0 |
И перезапустите сервис mongod:
Блок кода | ||
---|---|---|
| ||
sudo service mongod restart sudo service mongod status |
3. Установите Установите Ansible на сервер:
Блок кода | ||
---|---|---|
| ||
sudo add-apt-repository --yes --update ppa:ansible/ansible sudo apt install ansible sudo ansible-galaxy collection install community.general sudo ansible-galaxy collection install community.crypto sudo ansible-galaxy collection install community.docker |
4. Подготовьте конфигурацию: Scroll Pagebreak
Блок кода | ||
---|---|---|
| ||
tar -C /etc -xvf ansible-iot-1.23.tar.gz |
...
Файлы конфигурации и плейбуки (скрипты/конфигурации) Ansible будут расположены в директории /etc/ansible-iot-1.23.
5. Отредактируйте файл /etc/ansible-iot-1.23/inventory.
Откройте файл в любом доступном текстовом редакторе, например например nano. Укажите пароль от root в переменной ansible_sudo_pass:
Примечание |
---|
Далее в примере для пользователя root используется пароль rootpasswd При установке задайте свой пароль. |
...
Блок кода | ||||
---|---|---|---|---|
| ||||
[default] localhost ansible_connection=local ansible_sudo_pass=rootpasswd |
6. Настройте параметры доступа к платформе, в том числе параметры для работы с внешним сервисом БД. Для этого отредактируйте файлы конфигурации /etc/ansible-iot-1.23/vars/default.yml и /etc/ansible-iot-1.23/vars/service_parameters.yml.
Откройте файл default.yml в любом доступном текстовом редакторе, например nano. Укажите корректный IP-адрес или доменное имя в переменной server_name. Scroll Pagebreak
...
Блок кода | ||||||
---|---|---|---|---|---|---|
| ||||||
iot_release: 1.23 registry: hub.eltex-co.ru container_name_suffix: "" network_name_suffix: "" db_mapped_port: 27017 mqtt_broker_external_mapped_port: 8883 mqtt_broker_internal_mapped_port: 8083 olapservice_mapped_port: 8023 olapservice_db_mapped_port: 8123 ngw_mapped_port: 8040 core_ctlgate_tcp_mapped_port: 8069 core_ctlgate_mapped_port: 8070 core_ctlgate_ssl_mapped_port: 8072 core_api_mapped_port: 8071 core_api_ssl_mapped_port: 8073 services: with_distro_preparing_step: true iot_core_log_level: info export_mongo_port: false export_mqtt_broker_port: false export_olapservice_port: false export_olapservice_db_port: false export_ngw_port: false without_core: false without_web: false testdata_enable: false swagger_enable: false iot_core_db: iot-core iot_fs_db: iot-fs iot_licenses_db: iot-licenses iot_events_db: iot-events mqtt_broker_db: iot-broker olap_service_db: iotcore mjollnir_url: "http://92.125.152.58:8078/api/v1" script_step_delay: 2 script_critical_repetition: 2 script_max_delay: 10 script_stoppable: true |
Scroll Pagebreak |
---|
8. После этого можно запустить установку:
Блок кода |
---|
cd /etc/ansible-iot-1.23 sudo ansible-playbook install.yml |
...
Подсказка |
---|
Платформа будет доступна по адресу: http://[Адрес вашего сервера Eltex SC] Адрес сервера был ранее указан в переменной server_name файла конфигурации /etc/ansible-iot-1.23/vars/default.yml |
9. Добавьте файл лицензий.
Подробное описание процесса добавления файла лицензий доступно в документации Интерфейс администратора в разделе Лицензии.
Примечание |
---|
Время использования платформы и количество добавляемых устройств ограничивается типом лицензии, которая приобретается заказчиком. |
Работа с контейнерами
В процессе обслуживания можно осуществлять перезапуск контейнеров:
Блок кода | ||
---|---|---|
| ||
ansible-playbook services_restart.yml --extra-vars '{"services":["web", "core", "broker", "olapservice"]}' |
В квадратных скобках нужно перечислить сервисы, которые необходимо перезапустить (в примере это "web", "core", "broker", "olapservice"). Если не указать параметр "services" через --extra-vars, то будут перезапущены все сервисы.
Аналогичным образом можно остановить часть контейнеров:
Блок кода | ||
---|---|---|
| ||
ansible-playbook services_stop.yml --extra-vars '{"services":["web", "core", "broker", "olapservice"]}' |
...
Параметры конфигурационного файла:
- testData — порт сервера;
- fileStorage — путь до хранилища загружаемых файлов (внутри контейнера Docker);
- logger — уровень логирования сервера. Для включения режима debug необходимо выставить mongodb: DEBUG;
- controllerGateTCP — порт сервера, к которому подключаются контроллеры Ethernet в режиме TCP-клиента;
- controllerGate port — порт сервера, к которому подключаются контроллеры (по умолчанию 8070);
- controllerGateSecurity port — порт сервера, к которому подключаются контроллеры c использованием сертификата SSL, по умолчанию 8072;
- api port — порт сервера для взаимодействия с API платформы через веб-интерфейс или мобильное приложение;
- api sslPort — порт сервера для взаимодействия с API платформы через веб-интерфейс или мобильное приложение с использованием SSL-сертификата;
- ui port — порт, указываемый при формировании ссылок в письмах оповещений и т.д., например для функционала "Восстановление пароля";
- mqttBroker — настройка сервиса MQTT;
- olapservice — настройка сервиса OLAP (доступ до контейнера Docker);
- server name — доменное имя сервера, на котором развернута платформа и/или UI;
- electricMeterScheduler — параметр, отвечающий за автоматический опрос устройства платформой (по умолчанию опрос выполняется каждые 30 минут, начиная от начала часа). Пример: cron: 3 0/1 * * * ? — опрос каждые 3 минуты;
- electricMeterArchiveScheduler — параметр, отвечающий за автоматический опрос архива устройства платформой;
- services — настройки внешних сервисов (Eltex NGW, Google FCM, Apple APNS) для работы системы рассылки оповещений на платформе;
- video — настройка видеосервиса Flussonic;
- ssl — путь до сертификатов SSL (внутри контейнера Docker);
- proxy — настройка прокси-сервера;
- billing — настройка сервиса биллинга;
- notifications — настройка защиты сервиса push-уведомлений.
Параметры:
- duplicate_delay_sec — период времени, в течение которого будет блокироваться дубликат сообщения (полностью совпадающий), задается в секундах;
- antispam_time_sec — период времени, в течение которого будет блокироваться отправка последующих однотипных сообщений (не полностью совпадающих, например "Контроллер вне доступа 1", "Контроллер вне доступа 2" и т. д.), задается в секундах;
- delay_push_time_millisec — задержка между отложенными push-уведомлениями, задается в миллисекундах.
- guard — настройка задержки перед постановкой на охрану;
- swagger — сервис для взаимодействия и просмотра API платформы Eltex SC. Для доступа необходимо обратиться к сервису :8071/api/v1/swagger-ui/.
- controller: delay_answer_from_control_millisec — настройка задержки ожидания ответа от контроллера;
...
Во всех случаях для входа в платформу необходимо указать ее адрес и номер порта. В общем случае в адресную строку браузера вводится следующее: <Адрес сервера Eltex SC>.
Проверка работоспособности платформы
В данном разделе представлен чек-лист для проверки работоспособности платформы.
...
Блок кода | ||||
---|---|---|---|---|
| ||||
{ "version" : "1.23-3477", "api" : "1.0", "currentTime" : "2022-07-25T09:24:12.544842Z[Etc/UTC]" } |
Настройка сервиса eltex-notification-gw (eltex-ngw)
Сервис eltex-notification-gw представляет собой интерфейс для отправки e-mail и sms-оповещений пользователям платформы. Eltex-notification-gw обеспечивает взаимодействие компонентов платформы с внешними SMS-шлюзами, call-центрами и серверами электронной почты.
...
Примечание |
---|
mail.smtp.password Если в вашем пароле используются спецсимволы типа: " [ \ ^ $ . | ? * + ( )", их необходимо экранировать знаком "\", иначе пароль будет неверным! Пример 1: пароль "326P%1E\" при экранировании должен выглядеть следующим образом: "326P%1E\\"; Пример 2: пароль "326P%1E^326P%1E^" при экранировании должен выглядеть следующим образом: "326P%1E\^". |
...
Подсказка |
---|
Для включения шифрования соединения с почтовым сервером укажите опцию: mail.smtp.starttls.enable=true |
Переход с http на https
Примечание |
---|
Ваш сертификат должен иметь формат PKCS#8. |
...