Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Версия ПО 1.29

Минимальные системные требования

Платформа Eltex SC (Eltex Smart Cloud) разработана для организации единой системы управления, конфигурирования и мониторинга устройств Интернета вещей (датчиков, электросчетчиков, web-камер и т.п.). Использование данной системы с графическим web-интерфейсом и мобильным приложением позволяет:

  • управлять учетными записями пользователей (добавление, изменение, удаление);
  • осуществлять мониторинг состояния устройств умного дома;
  • получать уведомления о событиях;
  • создавать сценарии работы устройств в доме.

Минимальные системные требования сервера (минимально необходимая конфигурация для запуска ядра платформы с микросервисами):

  • число аппаратных серверов — 1;
  • процессор — i5 3,0 ГГц;
  • оперативная память — 8 ГБ;
  • место на диске — 1000 ГБ;
  • производительность дискового массива (чтение/запись) — 2000 IOPS.

Установка платформы Eltex SC

В инструкции приведена установка платформы Eltex SC версии 1.29 на операционную систему Ubuntu 20.04. Информацию по установке более ранних версий платформы Eltex SC (1.28 и ниже) можно найти по ссылке: Архив Eltex SC.


С версии 1.19.4 установка через deb-пакеты не осуществляется.

Установка Eltex SC на сервер, не отвечающий минимальным системным требованиям, может привести к неработоспособности платформы или увеличить время обработки запросов.

Перед развертыванием платформы необходимо установить Ansible и необходимые для ее работы компоненты. Ansible рекомендуется устанавливать из официального репозитория проекта.

Ansible — система управления конфигурациями, написанная на языке программирования Python с использованием декларативного языка разметки для описания конфигураций. Система используется для автоматизации настройки и развертывания программного обеспечения, в частности для ПО Eltex SC.


Для установки платформы выполните следующие шаги:

1. Установите Ansible на сервер Ubuntu 20.04. 

Пример установки через консоль:

Установка Ansible
apt update
apt install --install-recommends linux-generic-hwe-20.04-edge
apt install software-properties-common
add-apt-repository --yes --update ppa:ansible/ansible
apt install ansible


Более подробная информация по установке Ansible доступна по ссылке.


2. Выполните проверку версии (должна быть не ниже v2.9):

Проверка версии Ansible
ansible --version


3. После установки Ansible добавьте необходимые для ее работы коллекции.

Пример добавления коллекций:

Установка
ansible-galaxy collection install community.general
ansible-galaxy collection install community.crypto
ansible-galaxy collection install community.docker


4. Подготовьте конфигурацию.

Для получения файлов конфигурации обратитесь с запросом в Коммерческий отдел ЭЛТЕКС.
Файлы конфигурации будут направлены вам в виде архива tar.gz, который необходимо распаковать в директорию 
/etc с правами root.

Пример распаковки архива:

Распаковка архива с конфигурацией
tar -C /etc -xvf ansible-iot-1.29.tar.gz


После распаковки архива все пакеты и зависимости будут развернуты в директории на текущем сервере.

Файлы конфигурации и плейбуки (скрипты/конфигурации) Ansible будут расположены в директории /etc/ansible-iot-1.29.


5. Отредактируйте файл /etc/ansible-iot-1.29/inventory.

Откройте файл в любом доступном текстовом редакторе, например nano. Укажите пароль пользователя root в переменной ansible_sudo_pass:

Далее в примере для пользователя root используется пароль rootpasswd.

При установке задайте свой пароль.

Пример задания пароля:

Содержимое файла inventory
[iot]
localhost	ansible_connection=local	ansible_sudo_pass=rootpasswd
[elk]
localhost	ansible_connection=local	ansible_sudo_pass=rootpasswd
[monitoring]
localhost	ansible_connection=local	ansible_sudo_pass=rootpasswd


6. Далее необходимо настроить параметры доступа к платформе Eltex SC.

MongoDB версии 5 и выше работает только на процессорах с поддержкой AVX. Узнать, поддерживает ли ваш процессор AVX, можно с помощью команды:

lscpu | grep avx

Если ответ оказался пустым, ваш процессор не поддерживает AVX. Используйте MongoDB версии 4.

Если в ответе вернулся список флагов, можно использовать MongoDB версии 5 и выше.

Для базовой установки достаточно отредактировать файл конфигурации /etc/ansible-iot-1.29/vars/default.yml.

Откройте файл в любом доступном текстовом редакторе, например nano. Укажите корректный IP-адрес или доменное имя для доступа к платформе в переменной server_Name:  

При переходе с MongoDB 4 на MongoDB 6 требуется сначала перейти на MongoDB 5 и только потом перейти на MongoDB 6.

Или в файле /vars/default.yml для параметра version задать значение «5», запустить ansible-playbook install_iot.yml, затем задать значение «6» и снова запустить ansible-playbook install_iot.yml

Содержимое конфигурационного файла vars/default.yml
---
# Параметры установки платформы.
iot:
  # Имя (IP-адрес) сервера, на котором будет производиться развертывание платформы IoT.
  # Возможно использование 'localhost', если все манипуляции производятся локально.
  #  ВАЖНО!!! В 'serverName' нужно прописывать то имя (IP-адрес), по которому будет доступны платформа.
  # Если указать 'localhost', то будет доступ только через 'localhost'!
  serverName: "my.test.server"
  # Содержит путь до директории, в которую будет произведена установка.
  installDir: /storage/iot

# Параметры установки сервисов логирования (Elasticsearch + Logstash + Kibana).
elk:
  # Нужно ли добавлять в платформу appender, отправляющий логи в logstash.
  # В нем нет необходимости, если ELK не развернут или не настроен; это лишь спровоцирует сообщения об ошибках отправки
  # в логах платформы.
  enable: false
  # Имя (IP-адрес) сервера, на котором будет развернут ELK.
  # По умолчанию совпадает с 'iot.serverName', что предполагает установку рядом с платформой (на том же хосте).
  # В таком случае хосты в инвентаре в группах [iot] и [monitoring] должны совпадать.
  serverName: "{{ iot.serverName }}"
  # Директория для установки системы логирования.
  installDir: /storage/elk

# Параметры установки сервисов мониторинга (Prometheus + Grafana).
monitoring:
  # Имя (IP-адрес) сервера, на котором будет развернуты сервисы мониторинга (Prometheus + Grafana).
  # По умолчанию совпадает с 'iot.serverName', что предполагает установку рядом с платформой (на том же хосте).
  # В таком случае хосты в инвентаре в группах [iot] и [elk] должны совпадать.
  serverName: "{{ iot.serverName }}"
  # Директория для установки системы мониторинга.
  installDir: /storage/monitoring

# Параметры MongoDB.
mongodb:
  # Версия MongoDB. На старом железе, не поддерживающем оптимизацию, нужно выставить значение `4`.
  version: 6
  external:
    # Если выставлен в true, будет использоваться внешняя MongoDB.
    # ВАЖНО!!! MongoDB должна быть настроена, а параметры подключения нужно указать в 'addr' и 'port'.
    enable: false
    # Адрес внешней MongoDB.
    addr: "{{ iot.serverName }}"
    # Порт внешней MongoDB.
    port: 27017

# Параметры WEB.
web:
  # Имя (IP-адрес) сервера, на котором будет развернут WEB.
  # По умолчанию совпадает с 'iot.serverName', что предполагает установку рядом с платформой (на том же хосте).
  serverName: "{{ iot.serverName }}"
  # Порт HTTP, по которому будет осуществляться доступ в WEB.
  httpPort: 80
  # Порт HTTPS, по которому будет осуществляться доступ в WEB.
  httpsPort: 443
  # Автоматически перенаправлять запросы по порту HTTP на порт HTTPS
  redirectHttpToHttps: true
  nginx:
    # Максимальное число соединений, которые одновременно может открыть рабочий процесс
    worker_connections: 1024
  certbot:
    # Использовать ли certbot для получения сертификатов Let's Encrypt.
    enable: false
    # Email владельца домена. Необходим для подтверждения валидности домена при получении сертификата Let's Encrypt.
    email: test@email.com

# Параметры сервера отправки email.
mail:
  smtp:
    submitter: test@email.com
    password: "password"
    senderPrefix: "Сервер Eltex-SC"
    auth: "true"
    host: email.com
    port: 587
    # Протокол шифрования, используемый при подключении к серверу. Допустимые значения: none, starttls, ssl.
    protection: starttls

# Параметры платформы IoT core.
core:
  # Ссылка на политику конфиденциальности
  privacyPolicyUrl: "my.test.privacy"

  # Уровень отладки внутри IoT Core.
  logLevel: INFO

  # Порты платформы для подключения zway-контроллеров.
  ctlGate:
    port: 8070
    tcpPort: 8069
    sslPort: 8072

  # Порты API платформы.
  api:
    port: 8071
    sslPort: 8073

  # Уровень сложности капчи: easy, medium, hard
  captchaLevel: "easy"

  server:
    # Нужно ли использовать HTTPS при формировании ссылок к WEB ('true' по умолчанию, при этом будет использован порт,
    # указанный в 'web.httpsPort'). Если поставить в 'false', будет использован HTTP и порт, указанный в 'web.httpPort'.
    useHttpsForUi: true
    # Нужно ли использовать HTTPS при формировании ссылок к ресурсам самой платформы (например, прошивки).
    useHttpsForApi: false
    # Нужно ли использовать HTTPS при формировании ссылок на фото с камер наблюдения.
    useHttpsForCameraLinks: true
    # Нужно ли использовать 'web.serverName' вместо 'iot.serverName' и 'web.httpPort'/'web.httpsPort'
    # вместо 'core.api.port'/'core.api.sslPort' при формировании ссылок к API.
    useUiProxyForApi: false

  # Параметры для управления доступностью саморегистрации.
  selfRegistration:
    allow: true
    allowDemo: true
    allowSocialNetworks: false

  push:
    firebase:
      enabled: false
    apns:
      enabled: false

  # Параметры для работы с видеосерверами
  video:
    # Параметры Flussonic.
    flussonic:
      url: ""
      apiKey: ""
      operatorId: ""
      adminLogin: ""
      motion:
        enabled: false
    # Параметры видеосервера eltex
    eltex_server:
      url: ""
      apiKey: ""
      operatorId: ""
      adminLogin: ""

  acquiring:
    # Период после завершения действия последней подписки, в течение которого услуга продолжает (ограниченно) действовать
    advancePeriod: 3
    paykeeper:
      url: "CHANGE_ME"
      secret: "PaykeeperSecretChangeMe"

  # Паремтры клиентских регистраций (через соцсети).
  clientRegistrations:
    google:
      enable: true
      clientId: "GoogleClientIdChangeMe"
      clientSecret: "GoogleClientSecretChangeMe"
    microsoft:
      enable: true
      clientId: "MicrosoftClientIdChangeMe"
      clientSecret: "MicrosoftClientSecretChangeMe"
    apple:
      enable: true
      clientId: "AppleClientIdChangeMe"
      keyId: "AppleKeyIdChangeMe"
      teamId: "AppleTeamIdChangeMe"
    yandex:
      enable: true
      clientId: "YandexClientIdChangeMe"
      clientSecret: "YandexClientSecretChangeMe"
    vk:
      enable: true
      clientId: "VkClientIdChangeMe"
      clientSecret: "VkClientSecretChangeMe"
    mailRu:
      enable: true
      clientId: "MailRuClientIdChangeMe"
      clientSecret: "MailRuClientSecretChangeMe"

  # Параметры навыка Яндекс для интеграции с Умным домом (Алисой). Отображается в карточке навыка.
  yandexSkill:
    # Параметры для Basic Authentication.
    clientId: "YandexClientIdChangeMe"
    password: "PasswordChangeMe"
    # Id навыка, который необходимо указывать при отправке уведомлений.
    skillId: ""
    # OAuth-токен, который необходимо указывать при отправке уведомлений.
    oauthToken: ""

  # Параметры проекта умного дома Сбера для интеграции с Салютом. Отображается в карточке проекта.
  sberSkill:
    # Параметры для Basic Authentication.
    clientId: "SberClientIdChangeMe"
    password: "PasswordChangeMe"
    # Bearer-токен, который необходимо указывать при отправке уведомлений.
    bearerToken: ""

  # Параметры проекта умного дома Mail.ru для интеграции с Марусей. Отображается в карточке проекта/приложения.
  marusyaSkill:
    # Параметры для Basic Authentication.
    clientId: "MarusyaClientIdChangeMe"
    password: "PasswordChangeMe"
    # App ID, который был назначен приложению VK при создании.
    appId: "MarusyaAppIdChangeMe"
    # OAuth-токен, который необходимо указывать при отправке уведомлений.
    oauthToken: ""

  # Настройки ИК-пульта.
  irc:
    # Время ожидания ИК команды от пользователя (мс).
    recTimeout: 15000
    # Таймаут записи команды (отсутствия фронтов) (мс).
    cmdTimeout: 100
    # Путь до базы ИК сигналов IRDB.
    irdbPath: "CHANGE_ME"

Таблица описания значений в файле настроек /vars/default.yml

iot:Параметры установки платформы.
serverName: "my.test.server"

Имя (IP-адрес) сервера, на котором будет производиться развертывание платформы IoT. Возможно использование 'localhost', если все манипуляции производятся локально.

В 'serverName' нужно прописывать то имя (IP-адрес), по которому будет доступна платформа. Если указать 'localhost', то платформа будет доступна только через 'localhost'.

installDir: /storage/iotПуть до директории, в которую будет произведена установка.
elk:Параметры установки сервисов логирования (Elasticsearch + Logstash + Kibana).
enable: falseПараметр, позволяющий добавить в платформу appender, отправляющий логи в logstash. В нем нет необходимости, если ELK не развернут или не настроен: это спровоцирует сообщения об ошибках отправки в логах платформы.
serverName: "{{ iot.serverName }}"Имя (IP-адрес) сервера, на котором будет развернут ELK. По умолчанию совпадает с 'iot.serverName', что предполагает установку рядом с платформой (на том же хосте). В таком случае хосты в инвентаре в группах [iot] и [monitoring] должны совпадать.
installDir: /storage/elkДиректория для установки системы логирования.
monitoring:Параметры установки сервисов мониторинга (Prometheus + Grafana).
serverName: "{{ iot.serverName }}"Имя (IP-адрес) сервера, на котором будет развернуты сервисы мониторинга (Prometheus + Grafana). По умолчанию совпадает с 'iot.serverName', что предполагает установку рядом с платформой (на том же хосте). В таком случае хосты в инвентаре в группах [iot] и [elk] должны совпадать.
installDir: /storage/monitoringДиректория для установки системы мониторинга.
mongodb:Параметры MongoDB.
version: 6Версия MongoDB.
external
enable: false

Параметр для использования внешней MongoDB. Если выставлен в true, будет использоваться внешняя MongoDB.

MongoDB должна быть настроена, а параметры подключения — указаны в 'addr' и 'port'.

addr: "{{ iot.serverName }}"Адрес внешней MongoDB.
port: 27017Порт внешней MongoDB.
web:Параметры WEB.
serverName: "{{ iot.serverName }}"Имя (IP-адрес) сервера, на котором будет развернут WEB. По умолчанию совпадает с 'iot.serverName', что предполагает установку рядом с платформой (на том же хосте).
httpPort: 80Порт HTTP, по которому будет осуществляться доступ в WEB.
httpsPort: 443Порт HTTPS, по которому будет осуществляться доступ в WEB.
redirectHttpToHttps: trueПараметр для перенаправления HTTP запросов на HTTPS.
nginx:
worker_connections: 1024Максимальное число соединений, которое одновременно может открыть рабочий процесс.
certbot:
enable: falseПараметр, позволяющий использовать certbot для получения сертификатов Let's Encrypt.
email: test@email.comEmail владельца домена. Необходим для подтверждения валидности домена при получении сертификата Let's Encrypt.
mail:Параметры сервера отправки email.
smtp:
submitter: test@email.comУчетная запись email.
password: "password"Пароль от учетной записи email.
auth: "true"Проверка подлинности SMTP (включена по умолчанию).
senderPrefix: "Сервер Eltex-SC"Имя отправителя.
host: email.comАдрес SMTP-сервера.
port: 587SMTP-порт сервера.
protection: starttlsПротокол шифрования, используемый при подключении к серверу. Допустимые значения: none, starttls, ssl.
core:Параметры платформы IoT Core.
privacyPolicyUrl: "my.test.privacy"Ссылка на политику конфиденциальности.
logLevel: INFOУровень отладки внутри IoT Core.
ctlGate:Порты платформы для подключения zway-контроллеров.
port: 8070WS-порт для подключения контроллеров к платформе.
tcpPort: 8069Порт для подключения контроллеров Ethernet к платформе в режиме TCP-клиент.
sslPort: 8072WSS-порт для подключения контроллеров к платформе.
api:Порты API платформы.
port: 8071HTTP-порт API-платформы.
sslPort: 8073HTTPS-порт API-платформы.
captchaLevel: "easy"Уровень сложности CAPTCHA: easy, medium, hard.
server:
useHttpsForUi: trueПараметр, позволяющий использовать HTTPS при формировании ссылок к WEB ('true' по умолчанию, при этом будет использован порт, указанный в 'web.httpsPort'). Если поставить в 'false', будет использован HTTP и порт, указанный в 'web.httpPort'.
useHttpsForApi: falseПараметр, позволяющий использовать HTTPS при формировании ссылок к ресурсам самой платформы (например, прошивки).
useHttpsForCameraLinks: trueПараметр, позволяющий использовать HTTPS при формировании ссылок на фото с камер наблюдения.
useUiProxyForApi: falseПараметр, позволяющий использовать 'web.serverName' вместо 'iot.serverName' и 'web.httpPort'/'web.httpsPort' вместо 'core.api.port'/'core.api.sslPort' при формировании ссылок к API.
selfRegistration:Параметры для управления доступностью самостоятельной регистрации.
allow: trueДоступность самостоятельной регистрации.
allowDemo: trueДоступность самостоятельной регистрации демо-аккаунтов.
allowSocialNetworks: falseДоступность самостоятельной регистрации через соцсети.
push:Включение/выключение push-сообщений.

firebase:

enabled: false

Включение/выключение push-сообщений для Android.

apns:

enabled: false

Включение/выключение push-сообщений для iOS.
video:Параметры для работы с видеосерверами.
flussonic:Параметры Flussonic.
url: ""URL сервера Flussonic.
apiKey: ""Ключ API.
operatorId: ""ID оператора.
adminLogin: ""Логин администратора.

motion:

enabled: false

Доступность фиксации движения.
eltex_server:Параметры видеосервера Eltex.
url: ""URL сервера Eltex.
apiKey: ""Ключ API.
operatorId: ""ID оператора.
adminLogin: ""Логин администратора.
acquiring:
advancePeriod: 3Период после завершения действия последней подписки, в течение которого услуга продолжает (ограниченно) действовать.
paykeeper:Настройки сервиса оплаты paykeeper.
url: "CHANGE_ME"URL сервиса paykeeper.
secret: "PaykeeperSecretChangeMe"Секрет сервиса paykeeper.
clientRegistrations:Параметры клиентских регистраций (через соцсети).
yandex:Наименование соцсети.
enable: trueДоступность самостоятельной регистрации через соцсеть.
clientId: "YandexClientIdChangeMe"ID клиента.
clientSecret: "YandexClientSecretChangeMe"Секрет клиента.
yandexSkill:Параметры навыка Яндекс для интеграции с Умным домом (Алисой). Отображаются в карточке навыка.

clientId: "YandexClientIdChangeMe"

password: "PasswordChangeMe"

Параметры для Basic Authentication.
skillId: ""ID навыка, который необходимо указывать при отправке уведомлений.
oauthToken: ""OAuth-токен, который необходимо указывать при отправке уведомлений.
irc:Настройки ИК-пульта.
recTimeout: 15000Время ожидания ИК-команды от пользователя в мс.
cmdTimeout: 100Таймаут записи команды (отсутствия фронтов) в мс.
irdbPath: "CHANGE_ME"Путь до базы ИК-сигналов IRDB.

Для функций самостоятельной регистрации, регистрации демонстрационных учетных записей, а также для процедуры восстановления пароля может потребоваться активация почтовых оповещений через email.

7. После этого можно запустить установку:

Установка
cd /etc/ansible-iot-1.29
ansible-playbook install_iot.yml


Платформа будет доступна по адресу: http://[Адрес вашего сервера Eltex SC].

Адрес сервера был ранее указан в переменной server_Name файла конфигурации /etc/ansible-iot-1.29/vars/default.yml.

Порты доступа к API платформы можно изменить только в случае редактирования соответствующих настроек в файле конфигурации.

Содержимое файла конфигурации доступно в полной документации к Eltex SC.

Конфигурации для ядра: /etc/ansible-iot-1.29/templates/iot/default-for-docker.yml.j2 и веб-сервера: /etc/ansible-iot-1.29/templates/iot/web/base_config.

Директория хранения журналов работы платформы: /storage/iot/core/var/log/eltex-sc/server.log.

Первый вход на платформу Eltex SC

Для доступа к платформе через web-интерфейс используйте адрес сервера Eltex SC, указанный ранее в конфигурации /etc/ansible-iot-1.29/vars/default.yml.

  1. В адресной строке вашего браузера введите: http://[Адрес вашего сервера Eltex SC]. Откроется страница авторизации.
  2. Введите имя пользователя и пароль в соответствующие поля. Нажмите кнопку Войти.

Данные учетной записи «Администратор»:

Логин: admin
Пароль: Test18plat34Form

                                                                                                                                                                                                                                                


Более подробная документация доступна по ссылке v1.29_Установка платформы или в разделе «Документы и файлы» на официальном сайте ЭЛТЕКС: Платформа Eltex SC.
  • Нет меток