Версия ПО 1.33
Минимальные системные требования
Платформа ELIS (Eltex IoT System) разработана для организации единой системы управления, конфигурирования и мониторинга устройств Интернета вещей (датчиков, Wi-Fi реле, камер и т. п.). Использование данной системы с графическим веб-интерфейсом и мобильным приложением позволяет:
- управлять учетными записями пользователей (добавление, изменение, удаление);
- осуществлять мониторинг состояния устройств умного дома;
- получать уведомления о событиях;
- создавать сценарии работы устройств в доме.
Минимальные системные требования сервера (минимально необходимая конфигурация для запуска ядра платформы с микросервисами):
- число аппаратных серверов — 1;
- процессор — i5 3,0 ГГц с поддержкой AVX;
- оперативная память — 8 ГБ;
- место на диске — 1000 ГБ;
- производительность дискового массива (чтение/запись) — 2000 IOPS.
Установка платформы ELIS
В инструкции приведена установка платформы ELIS версии 1.33 на операционную систему Ubuntu 20.04. Информацию по установке более ранних версий платформы ELIS (1.32 и ниже) можно найти по ссылке: Архив ELIS.
С версии 1.19.4 установка через deb-пакеты не осуществляется.
Установка ELIS на сервер, не отвечающий минимальным системным требованиям, может привести к неработоспособности платформы или увеличить время обработки запросов.
Перед развертыванием платформы необходимо установить Ansible и необходимые для ее работы компоненты. Ansible рекомендуется устанавливать из официального репозитория проекта.
Ansible — система управления конфигурациями, написанная на языке программирования Python с использованием декларативного языка разметки для описания конфигураций. Система используется для автоматизации настройки и развертывания программного обеспечения, в частности для ПО ELIS.
Для установки платформы выполните следующие шаги:
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.33.tar.gz
После распаковки архива все пакеты и зависимости будут развернуты в директории на текущем сервере.
Файлы конфигурации и плейбуки (скрипты/конфигурации) Ansible будут расположены в директории /etc/ansible-iot-1.33.
5. Отредактируйте файл /etc/ansible-iot-1.33/inventory.
Откройте файл в любом доступном текстовом редакторе, например nano. Укажите пароль пользователя root в переменной ansible_sudo_pass:
Далее в примере для пользователя root используется пароль rootpasswd.
При установке задайте свой пароль.
Пример задания пароля:
[iot] localhost ansible_connection=local ansible_sudo_pass=rootpasswd [mqtt_broker] localhost ansible_connection=local ansible_sudo_pass=password [elk] localhost ansible_connection=local ansible_sudo_pass=rootpasswd [monitoring] localhost ansible_connection=local ansible_sudo_pass=rootpasswd
6. Далее необходимо настроить параметры доступа к платформе ELIS.
MongoDB версии 5 и выше работает только на процессорах с поддержкой AVX. Узнать, поддерживает ли ваш процессор AVX, можно с помощью команды:
lscpu | grep avx
Если ответ оказался пустым, ваш процессор не поддерживает AVX. Используйте MongoDB версии 4.
Если в ответе вернулся список флагов, можно использовать MongoDB версии 5 и выше.
Для базовой установки достаточно отредактировать файл конфигурации /etc/ansible-iot-1.33/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: | Параметры установки платформы. |
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.com | Email владельца домена. Необходим для подтверждения валидности домена при получении сертификата 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: 587 | SMTP-порт сервера. |
protection: starttls | Протокол шифрования, используемый при подключении к серверу. Допустимые значения: none, starttls, ssl. |
core: | Параметры платформы ELIS. |
privacyPolicyUrl: "my.test.privacy" | Ссылка на политику конфиденциальности. |
knowledgeBaseUrl: "IoT" | Ссылка на базу знаний. |
logLevel: INFO | Уровень отладки внутри ELIS. |
ctlGate: | Порты платформы для подключения zway-контроллеров. |
port: 8070 | WS-порт для подключения контроллеров к платформе. |
tcpPort: 8069 | Порт для подключения контроллеров Ethernet к платформе в режиме TCP-клиент. |
sslPort: 8072 | WSS-порт для подключения контроллеров к платформе. |
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. |
user: "PaykeeperUsernameChangeMe" | Пользователь сервиса paykeeper. |
password: "PaykeeperPasswordChangeMe" | Пароль сервиса paykeeper. |
clientRegistrations: | Параметры клиентских регистраций (через соцсети). |
yandex: | Наименование соцсети. |
enable: true | Доступность самостоятельной регистрации через соцсеть. |
clientId: "YandexClientIdChangeMe" | ID клиента. |
clientSecret: "YandexClientSecretChangeMe" | Секрет клиента. |
vk: | Наименование соцсети. |
enable: true | Доступность самостоятельной регистрации через соцсеть. |
clientId: "VkClientIdChangeMe" | ID клиента. |
clientSecret: "VkClientSecretChangeMe" | Секрет клиента. |
mailRu | Наименование соцсети. |
enable: true | Доступность самостоятельной регистрации через соцсеть. |
clientId: "mailRuClientIdChangeMe" | ID клиента. |
clientSecret: "mailRuClientSecretChangeMe" | Секрет клиента. |
yandexSkill: | Параметры навыка Яндекс для интеграции с Умным домом (Алисой). Отображаются в карточке навыка. |
clientId: "YandexClientIdChangeMe" password: "PasswordChangeMe" | Параметры для Basic Authentication. |
skillId: "" | ID навыка, который необходимо указывать при отправке уведомлений. |
oauthToken: "" | OAuth-токен, который необходимо указывать при отправке уведомлений. |
sberSkill: | Параметры проекта умного дома Сбера для интеграции с Салютом. Отображаются в карточке проекта. |
clientId: "SberClientIdChangeMe" password: "PasswordChangeMe" | Параметры для Basic Authentication. |
bearerToken: "" | Bearer-Token, который необходимо указывать при отправке уведомлений. |
marusyaSkill: | Параметры проекта умного дома Mail.ru для интеграции с Марусей. Отображаются в карточке проекта/приложения. |
clientId: "MarusyaClientIdChangeMe" password: "PasswordChangeMe" | Параметры для Basic Authentication. |
appID | App ID, который был назначен приложению VK при создании. |
oauthToken: "" | OAuth-токен, который необходимо указывать при отправке уведомлений. |
irc: | Настройки ИК-пульта. |
recTimeout: 15000 | Время ожидания ИК-команды от пользователя в мс. |
cmdTimeout: 100 | Таймаут записи команды (отсутствия фронтов) в мс. |
irdbPath: "CHANGE_ME" | Путь до базы ИК-сигналов IRDB. |
Для функций самостоятельной регистрации, регистрации демонстрационных учетных записей, а также для процедуры восстановления пароля может потребоваться активация почтовых оповещений через email.
7. После этого можно запустить установку:
cd /etc/ansible-iot-1.33 ansible-playbook install_iot.yml
Платформа будет доступна по адресу: http://[Адрес вашего сервера ELIS].
Адрес сервера был ранее указан в переменной server_Name файла конфигурации /etc/ansible-iot-1.33/vars/default.yml.
Порты доступа к API платформы можно изменить только в случае редактирования соответствующих настроек в файле конфигурации.
Содержимое файла конфигурации доступно в полной документации к ELIS.
Конфигурации для ядра: /etc/ansible-iot-1.33/templates/iot/docker-compose/base_config.yml.j2 и веб-сервера: /etc/ansible-iot-1.33/templates/iot/web/base_config.
Директория хранения журналов работы платформы: /storage/iot/core/var/log/eltex-sc/server.log.
Первый вход на платформу ELIS
Для доступа к платформе через web-интерфейс используйте адрес сервера ELIS, указанный ранее в конфигурации /etc/ansible-iot-1.33/vars/default.yml.
- В адресной строке вашего браузера введите: http://[Адрес вашего сервера ELIS]. Откроется страница авторизации.
- Введите имя пользователя и пароль в соответствующие поля. Нажмите кнопку Войти.
Данные учетной записи «Администратор»:
Логин: admin
Пароль: Test18plat34Form