Версия ПО 1.26
Минимальные системные требования
Платформа Eltex SC (Eltex Smart Cloud) разработана для организации единой системы управления, конфигурирования и мониторинга устройств Интернета вещей (датчиков, электросчетчиков, web-камер и т.п.). Использование данной системы с графическим web-интерфейсом и мобильным приложением позволяет:
- управлять учетными записями пользователей (добавление, изменение, удаление);
- осуществлять мониторинг состояния устройств умного дома;
- получать уведомления о событиях;
- создавать сценарии работы устройств в доме.
Минимальные системные требования сервера (минимально необходимая конфигурация для запуска ядра платформы с микросервисами):
- число аппаратных серверов — 1;
- процессор — i5 3,0 ГГц;
- оперативная память — 8 ГБ;
- место на диске — 1000 ГБ;
- производительность дискового массива (чтение/запись) — 2000 IOPS.
Установка платформы Eltex SC
В инструкции приведена установка платформы Eltex SC версии 1.26 на операционную систему Ubuntu 20.04. Информацию по установке более ранних версий платформы Eltex SC (1.25 и ниже) можно найти по ссылке: Архив Eltex SC.
С версии 1.19.4 установка через deb-пакеты не осуществляется.
Установка Eltex SC на сервер, не отвечающий минимальным системным требованиям, может привести к неработоспособности платформы или увеличить время обработки запросов.
Перед развертыванием платформы необходимо установить Ansible и необходимые для ее работы компоненты. Ansible рекомендуется устанавливать из официального репозитория проекта.
Ansible — система управления конфигурациями, написанная на языке программирования Python с использованием декларативного языка разметки для описания конфигураций. Система используется для автоматизации настройки и развертывания программного обеспечения, в частности для ПО Eltex SC.
Для установки платформы выполните следующие шаги:
1. Установите Ansible на сервер Ubuntu 20.04.
Пример установки через консоль:
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 --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.26.tar.gz
После распаковки архива все пакеты и зависимости будут развернуты в директории на текущем сервере.
Файлы конфигурации и плейбуки (скрипты/конфигурации) Ansible будут расположены в директории /etc/ansible-iot-1.26.
5. Отредактируйте файл /etc/ansible-iot-1.26/inventory.
Откройте файл в любом доступном текстовом редакторе, например nano. Укажите пароль пользователя root в переменной ansible_sudo_pass:
Далее в примере для пользователя root используется пароль rootpasswd.
При установке задайте свой пароль.
Пример задания пароля:
[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.
Для базовой установки достаточно отредактировать файл конфигурации /etc/ansible-iot-1.26/vars/default.yml.
Откройте файл в любом доступном текстовом редакторе, например nano. Укажите корректный IP-адрес или доменное имя для доступа к платформе в переменной server_name:
--- # Параметры установки платформы 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: 5 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: false certbot: # Использовать ли certbot для получения сертификатов Let's Encrypt enable: false # E-mail владельца домена. Необходим для подтверждения валидности домена при получении сертификата Let's Encrypt email: test@email.com # Параметры сервера отправки email (NGW) mail: smtp: submitter: test@email.com password: "password" senderPrefix: "Сервер Eltex-SC" auth: "true" host: email.com port: 587
# Параметры платформы IoT core core: # Уровень отладки внутри IoT Core logLevel: INFO # Порты платформы для подключения контроллеров Z-Way ctlGate: port: 8070 tcpPort: 8069 sslPort: 8072 # Порты API платформы api: port: 8071 sslPort: 8073 # Уровень сложности CAPTCHA: 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 # Параметры для работы с видеосерверами video: # Параметры Flussonic. flussonic: url: "" apiKey: "" operatorId: "" adminLogin: "" # Параметры видеосервера eltex eltex_server: url: ""
# Параметры навыка Яндекс для интеграции с Умным домом (Алисой). Отображается в карточке навыка 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: "" --- # Параметры установки платформы 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: 5 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: false certbot: # Использовать ли certbot для получения сертификатов Let's Encrypt enable: false # Email владельца домена. Необходим для подтверждения валидности домена при получении сертификата Let's Encrypt email: test@email.com # Параметры сервера отправки email (NGW) mail: smtp: submitter: test@email.com password: "password" senderPrefix: "Сервер Eltex-SC" auth: "true" host: email.com port: 587 # Параметры платформы IoT core core: # Уровень отладки внутри IoT Core logLevel: INFO # Порты платформы для подключения контроллеров Z-Way ctlGate: port: 8070 tcpPort: 8069 sslPort: 8072 # Порты API платформы api: port: 8071 sslPort: 8073 # Уровень сложности для CAPTCHA: 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 # Параметры для работы с видеосерверами video: # Параметры Flussonic flussonic: url: "" apiKey: "" operatorId: "" adminLogin: "" # Параметры видеосервера eltex eltex_server: url: "" # Параметры навыка Яндекс для интеграции с Умным домом (Алисой). Отображаются в карточке навыка 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: ""
Для функций самостоятельной регистрации, регистрации демонстрационных учетных записей, а также для процедуры восстановления пароля может потребоваться активация почтовых оповещений через e-mail. Для этого потребуется указать:
mail:
smtp:
submitter — учетная запись e-mail;
password — пароль от учетной записи e-mail;
auth — проверка подлинности smtp (включена по умолчанию);
senderPrefix — имя отправителя;
host — адрес smtp-сервера;
port — smtp-порт сервера.
7. После этого можно запустить установку:
cd /etc/ansible-iot-1.26 ansible-playbook install_iot.yml
Платформа будет доступна по адресу: http://[Адрес вашего сервера Eltex SC].
Адрес сервера был ранее указан в переменной server_name файла конфигурации /etc/ansible-iot-1.26/vars/default.yml.
Порты доступа к API платформы можно изменить только в случае редактирования соответствующих настроек в файле конфигурации.
Содержимое файла конфигурации доступно в полной документации к Eltex SC.
Конфигурации для ядра: /etc/ansible-iot-1.26/templates/iot/default-for-docker.yml.j2 и веб-сервера: /etc/ansible-iot-1.26/templates/iot/web/base_config.
Директория хранения журналов работы платформы: /storage/iot/core/var/log/eltex-sc/server.log.
Первый вход на платформу Eltex SC
Для доступа к платформе через web-интерфейс используйте адрес сервера Eltex SC, указанный ранее в конфигурации /etc/ansible-iot-1.26/vars/default.yml.
- В адресной строке вашего браузера введите: http://[Адрес вашего сервера Eltex SC]. Откроется страница авторизации.
- Введите имя пользователя и пароль в соответствующие поля. Нажмите кнопку Войти.
Данные учетной записи «Администратор»:
Логин: admin
Пароль: Test18plat34Form