Установка платформы
Версия ПО 1.21
Рекомендуемые характеристики сервера
Система Eltex SC строится по клиент-серверной архитектуре. Серверную часть рекомендуется устанавливать на многопроцессорный компьютер под управлением OS Ubuntu 20.
Производительность сервера зависит от числа пользователей, которые будут зарегистрированы на платформе. Рекомендуемые характеристики сервера для определенного числа абонентов приведены в таблице ниже.
Число абонентов | до 5 000 | до 10 000 | до 20 000 | |
---|---|---|---|---|
Число аппаратных серверов | 1 | 1 | 2 | 2 |
CPU (потоки, частота) | 4T 3.0 GHz | 8T 3.0 GHz | 4T 3.0 GHz X2 | 8T 3.0 GHz X2 |
RAM, ГБ | 10 | 18 | 10+10 | 18+18 |
HDD, ГБ | 1000 | 2000 | 1000+1000 | 2000+2000 |
Внимание!
Установка Eltex SC на сервер, не отвечающий минимальным системным требованиям, ведет к неработоспособности платформы!
Поддерживаемые дистрибутивы: Ubuntu 20.04.
С версии 1.19.4 установка через deb-пакеты не осуществляется.
Информацию по установке более ранних версий платформы Eltex SC (1.19.3 и ниже) можно найти по ссылке Архив Eltex SC.
Установка платформы Eltex SC
Поддерживаемые дистрибутивы: Ubuntu 20.04.
В инструкции приведена установка платформы Eltex SC на операционную систему Ubuntu 20.04.
Перед развертыванием необходимо установить Ansible и необходимые для его работы компоненты.
Рекомендуется устанавливать Ansible из официального репозитория проекта.
Ansible — система управления конфигурациями, написанная на языке программирования Python, с использованием декларативного языка разметки для описания конфигураций.
Используется для автоматизации настройки и развертывания программного обеспечения, в частности для ПО Eltex SC.
Установка Ansible
Перед развертыванием необходимо установить Ansible и необходимые для его работы компоненты. Рекомендуется устанавливать Ansible из официального репозитория проекта.
Пример установки в консоли:
apt update apt install software-properties-common add-apt-repository --yes --update ppa:ansible/ansible apt install ansible
Выполните проверку версии (должна быть не менее v2.9):
ansible --version
Добавление коллекций и подготовка конфигурации
После установки Ansible добавьте необходимые для его работы коллекции.
Пример добавления в консоли:
ansible-galaxy collection install community.general ansible-galaxy collection install community.crypto ansible-galaxy collection install community.docker
Настройка сервера
1) После установки Ansible подготовьте конфигурацию.
Файлы конфигурации направляются в виде архива tar.gz, который необходимо распаковать в директорию /etc с правами root .
Пример:
tar -C /etc -xvf ansible-iot-1.21.tar.gz
После распаковки архива все пакеты и зависимости будут развернуты в директории на текущем сервере.
Файлы конфигурации и плейбуки (скрипты/конфигурации) Ansible будут расположены в директории /etc/ansible-iot-1.21
2) Далее отредактируйте файл /etc/ansible-iot-1.21/inventory
Откройте файл в любом доступном текстовом редакторе, например, nano. Укажите пароль от root в переменной ansible_sudo_pass:
Далее в примере для пользователя root используется пароль rootpasswd
При инсталляции необходимо указать валидный пароль!
[default] localhost ansible_connection=local ansible_sudo_pass=rootpasswd
3) Далее настройте параметры доступа к платформе.
Для базовой установки достаточно отредактировать файлы конфигурации /etc/ansible-iot-1.21/vars/default.yml и /etc/ansible-iot-1.21/vars/service_parameters.yml.
Для этого откройте файл в любом доступном текстовом редакторе, например, nano. Укажите корректный IP-адрес или доменное имя в переменной server_name:
server_name: ip_адрес_сервера use_external_mongodb: false external_mongodb_addr: "{{ server_name }}" external_mongodb_port: 27017 web_http_port: 80 web_https_port: 443 use_https_web_from_core: true web_enable_certbot: false web_certbot_email: test@email.com mail_smtp_submitter: test@email.com mail_smtp_password: password mail_smtp_auth: "true" mail_smtp_host: email.com mail_smtp_port: 587 flussonic_url: "" flussonic_api_key: "" flussonic_operator_id: "" flussonic_admin_login: "" install_dir: /storage/iot
Для функций саморегистрации, регистрации демонстрационных учетных записей, а также для процедуры восстановления пароля может потребоваться активация почтовых оповещений через e-mail. Для этого потребуется указать:
- mail_smtp_submitter — учетная запись e-mail;
- mail_smtp_password — пароль от учетной записи e-mail;
- mail_smtp_auth — проверка подлинности smtp (включена по умолчанию);
- mail_smtp_host — адрес SMTP-сервера;
- mail_smtp_port — SMTP-порт сервера.
Описание параметров конфигурации в файле vars/default.yml:
- server_name — доменное имя (IP-адрес) сервера, на котором будет производиться развертывание
- use_external_mongodb — если выставлен в true, будет использоваться внешняя MongoDB;
Внимание!
При указании true в значении параметра use_external_mongodb MongoDB должна быть настроена, а параметры подключения — указаны в external_mongodb_addr и external_mongodb_port.
- external_mongodb_addr — адрес внешней MongoDB;
- external_mongodb_port — порт внешней MongoDB;
- web_http_port — порт HTTP, по которому будет осуществляться доступ в web;
- web_https_port — порт HTTPS, по которому будет осуществляться доступ в web;
- use_https_web_from_core — использовать HTTPS для доступа из API к web;
При указании true в значении параметра use_https_web_from_core будет использован порт, указанный в web_https_port . При указании false будет использован HTTP и порт, указанный в web_http_port.
- web_enable_certbot — использовать certbot для получения сертификатов Let's Encrypt;
- web_certbot_email — email владельца домена. Необходим для подтверждения валидности домена при получении сертификата Let's Encrypt.
- mail_smtp_submitter — учетная запись e-mail (опционально);
- mail_smtp_password — пароль от учетной записи e-mail (опционально);
- mail_smtp_auth — проверка подлинности SMTP (включена по умолчанию) (опционально);
- mail_smtp_host — адрес SMTP-сервера (опционально);
- mail_smtp_port — SMTP-порт сервера (опционально);
- flussonic_url — хост Watcher'a сервера Flussonic (опционально);
- flussonic_api_key — ключ API, используемый для аутентификации запросов;
- flussonic_operator_id — идентификатор оператора (опционально);
- flussonic_admin_login — логин администратора (опционально);
- install_dir — путь до директории, в которую будет произведена установка платформы (если такая директория не существует, то она будет создана);
--- iot_release: "1.21" registry: hub.eltex-co.ru services: 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
Описание параметров конфигурации в файле vars/service_parameters.yml:
- iot_release — версия релизных core & web;
- registry — имя репозитория docker registry, хранящего docker-образы для развертывания. Менять не рекомендуется;
- services — список сервисов для перезапуска (при запуске плейбука services_restart.yml). Можно оставить пустым, а при запуске передавать параметром командной строки (опционально).
- iot_core_log_level — уровень лога;
- export_mongo_port — проброс портов внутреннего сервиса MongoDB из контейнера docker для доступа к БД из внешней сети;
- export_mqtt_broker_port — проброс портов внутреннего сервиса MQTT-брокера из контейнера docker для доступа к API ядра из внешней сети;
- export_olapservice_port — проброс портов внутреннего сервиса OLAP-брокера из контейнера docker для доступа к API ядра из внешней сети;
- export_olapservice_db_port — проброс портов внутреннего сервиса ClickHouse из контейнера docker для доступа к БД из внешней сети;
- export_ngw_port — проброс портов внутреннего сервиса NGW;
- without_core — нужно ли выполнить установку без сервиса core ;
- without_web — нужно ли выполнить установку без сервиса web;
4) После этого можно запустить установку:
cd /etc/ansible-iot-1.21 ansible-playbook install.yml
5) Выполните проверку статуса контейнеров:
docker ps
Вывод команды docker ps | ||||||
CONTAINER ID | IMAGE | COMMAND | CREATED | STATUS | PORTS | NAMES |
---|---|---|---|---|---|---|
2bed00cc8fce | hub.eltex-co.ru/iot/iot-double-web:1.21 | /docker-entrypoint.… | 2 minutes ago | Up 2 minutes | iot_web_1 | |
7da2459eaebf | hub.eltex-co.ru/iot/iot-core:1.21 | java -Dspring.profi… | 2 minutes ago | Up 2 minutes | 0.0.0.0:8069-8073->8069-8073/tcp, :::8069-8073->8069-8073/tcp, 0.0.0.0:8078->8078/tcp, :::8078->8078/tcp, 0.0.0.0:9900->9900/tcp, :::9900->9900/tcp iot_core_1 | iot_core_1 |
ee6a8bb69b81 | hub.eltex-co.ru/iot/iot-mqttbroker-mongo:latest | java -cp @/app/jib-… | 2 minutes ago | Up 2 minutes | 0.0.0.0:8083->8083/tcp, :::8083->8083/tcp, 0.0.0.0:8883->8883/tcp, :::8883->8883/tcp | iot-mqtt-broker |
82378129b51a | hub.eltex-co.ru/softwlc/eltex-ngw:1.18 | /usr/sbin/ngw_start… | 2 minutes ago | Up 2 minutes | 0.0.0.0:8040->8040/tcp, :::8040->8040/tcp | iot_ngw-sc_1 |
db768b63d849 | mongo | docker-entrypoint.s… | 2 minutes ago | Up 2 minutes | 0.0.0.0:27017->27017/tcp, :::27017->27017/tcp | iot_db_1 |
Платформа будет доступна по адресу: http://[IP-адрес/домен вашего сервера Eltex SC]
Данный адрес был ранее указан в переменной server_name файла конфигурации /etc/ansible-iot-1.21/vars/default.yml
Порты доступа к API платформы можно изменить только в случае редактирования соответствующих настроек в файле конфигурации.
6) Добавьте файл лицензий.
Подробное описание процесса добавления файла лицензий доступно в документации Интерфейс администратора в разделе Лицензии.
Время использования платформы и количество добавляемых устройств ограничивается типом лицензии, которая приобретается заказчиком.
Установка платформы Eltex SC с внешней БД mongo
В случае развертывания внешней БД mongo, т.е. при инсталляции с внешним процессом/службой mongodb, необходимо:
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) Подготовить конфигурацию:
tar -C /etc -xvf ansible-iot-1.21.tar.gz
После распаковки архива все пакеты и зависимости будут развернуты в директории на текущем сервере.
Файлы конфигурации и плейбуки (скрипты/конфигурации) Ansible будут расположены в директории /etc/ansible-iot-1.21.
5) Далее отредактируйте файл /etc/ansible-iot-1.21/inventory.
Откройте файл в любом доступном текстовом редакторе, например, nano. Укажите пароль от root в переменной ansible_sudo_pass:
Далее в примере для пользователя root используется пароль rootpasswd
При инсталляции необходимо указать валидный пароль!
[default] localhost ansible_connection=local ansible_sudo_pass=rootpasswd
6) Настройте параметры доступа к платформе, в том числе параметры для работы с внешним сервисом БД. Для этого отредактируйте файлы конфигурации /etc/ansible-iot-1.21/vars/default.yml и /etc/ansible-iot-1.21/vars/service_parameters.yml.
Откройте файл default.yml в любом доступном текстовом редакторе, например, nano. Укажите корректный IP-адрес или доменное имя в переменной server_name.
Для параметра use_external_mongodb установите значение true.
server_name: ip_адрес_сервера use_external_mongodb: true external_mongodb_addr: "{{ server_name }}" external_mongodb_port: 27017 web_http_port: 80 web_https_port: 443 use_https_web_from_core: true web_enable_certbot: false web_certbot_email: test@email.com mail_smtp_submitter: test@email.com mail_smtp_password: password mail_smtp_auth: "true" mail_smtp_host: email.com mail_smtp_port: 587 flussonic_url: "" flussonic_api_key: "" flussonic_operator_id: "" flussonic_admin_login: "" install_dir: /storage/iot
Внимание!
При указании true в значении параметра use_external_mongodb MongoDB должна быть настроена, а параметры подключения — указаны в:
- external_mongodb_addr (по умолчанию используется адрес, указанный в server_name);
- external_mongodb_port.
7) Откройте файл default.yml в любом доступном текстовом редакторе, например, nano. Для параметра export_mongo_port необходимо установить значение true.
--- iot_release: "1.21" registry: hub.eltex-co.ru services: iot_core_log_level: info export_mongo_port: true export_mqtt_broker_port: false export_olapservice_port: false export_olapservice_db_port: false export_ngw_port: false without_core: false without_web: false
8) После этого можно запустить установку:
cd /etc/ansible-iot-1.21 sudo ansible-playbook install.yml
Платформа будет доступна по адресу: http://[IP-адрес/домен вашего сервера Eltex SC]
Данный адрес был ранее указан в переменной server_name файла конфигурации /etc/ansible-iot-1.21/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"]}'
Или обновить все контейнеры из репозитория:
ansible-playbook services_update.yml
Применение новой или измененной конфигурации:
ansible-playbook install.yml
Расположение конфигурационных файлов
В /etc/ansible-iot-1.21/templates располагаются конфигурации для ядра, web и сервера e-mail/sms-рассылок:
- default-for-docker.yml.j2
- eltex-sc-web.j2
- notification.properties.j2
Директория хранения журналов работы платформы: /storage/iot/core/var/log/eltex-sc/server.log
Файлы журналов разбиваются на части по размеру. Каждая часть сохраняется в файл с именем: server-YYYY-MM-DD.NN.log, где YYYY-MM-DD — дата, а NN — номер части.
Внимание!
При изменении конфигурации требуется повторный запуск install.yml:
ansible-playbook install.yml
Следует учесть, что некоторые конфигурационные параметры дублируют файл конфигурации /etc/ansible-iot-1.21/vars/default.yml (например параметры flussonic-сервера). При запуске платформы параметры, заданные в файле конфигурации /etc/ansible-iot-1.21/vars/default.yml, имеют наивысший приоритет по отношению к другим файлам конфигурации, а также ведут к их перезаписи.
Содержимое конфигурационного файла default-for-docker.yml.j2:
testData: environment: false fileStorage: path: "/var/lib/eltex-sc/files" logger: mongodb: ERROR springdata: ERROR controllerGateTCP: port: 8069 controllerGate: port: 8070 controllerGateSecurity: port: 8072 api: port: 8071 sslPort: 8073 ui: port: {{ web_http_port }} mqttBroker: enabled: true host: "broker" port: 8883 apiPort: 8083 remoteAccessURL: "{{ server_name }}:8883"
olapservice: host: "olapservice" port: 8023 hystrix: eventlog: timeoutInMilliseconds: 1000 requestVolumeThreshold: 20 errorThresholdPercentage: 50 sleepWindowInMilliseconds: 5000 defaultUrl: "{{ web_sc_uri }}" electricMeterScheduler: cron: "0 0/30 * * * ?" services: ngw: host: "ngw-sc" port: 8040 push: serverKey: dictionary: path: "dict.json" languageInterface: language: "ru" hz: instance: name: "iot-core-hz-instance" group: name: "iot-core" password: "11111" network: port: "5705" mjollnir: sync-period: "0 0 23 1/1 * ?" login: "platform" password: "platform" url: "http://92.125.152.58:8078/api/v1" iot-core: host: "{{ mongodb_addr }}" port: {{ mongodb_port }} user: "" password: "" database: "iot-core"
file-storage: host: "{{ mongodb_addr }}" port: {{ mongodb_port }} user: "" password: "" database: "iot-fs" license-storage: host: "{{ mongodb_addr }}" port: {{ mongodb_port }} user: "" password: "" database: "iot-licenses" eventlog: host: "{{ mongodb_addr }}" port: {{ mongodb_port }} user: "" password: "" database: "iot-events" test-base: host: "localhost" port: 27018 monitoring-system: countAttempt: 3 delayAttempt: 0 kafka: enabled: false bootstrap-servers: "localhost:9092" video: flussonic: url: "{{ flussonic_url }}" apiKey: "{{ flussonic_api_key }}" operator_id: "{{ flussonic_operator_id }}" admin_login: "{{ flussonic_admin_login }}" fake_camera_url: "rtsp://34.227.104.115/vod/mp4:BigBuckBunny_115k.mov" ssl: key: "/etc/ssl/private/eltex-sc-api.key" crt: "/etc/ssl/certs/eltex-sc-api.crt" proxy: enabled: false host: "" port: 8050
billing: cron: "0 0 0 * * ?" ftp: host: "127.0.0.1" port: 21 login: "user" password: "password" workdir: "test" notifications: duplicate_delay_sec: 0 antispam_time_sec: 0 delay_push_time_millisec: 250 guard: deviceRequestDelay: 15000 swagger: enable: false key: "" controller: delay_answer_from_control_millisec: 12000
Параметры конфигурационного файла:
- testData — порт сервера;
- controllerGate port — порт сервера, к которому подключаются контроллеры, по умолчанию 8070;
- controllerGateSecurity port — порт сервера, к которому подключаются контроллеры c использованием сертификата SSL, по умолчанию 8072;
- api port — порт сервера для взаимодействия с API платформы через веб-интерфейс или мобильное приложение;
- api sslPort — порт сервера для взаимодействия с API платформы через веб-интерфейс или мобильное приложение с использованием SSL-сертификата;
- ui — порт, указываемый при формировании ссылок в письмах оповещений и т.д., например для функционала Восстановление пароля;
- defaultUrl — адрес платформы при формировании ссылок в письмах оповещений и т.д., например для функционала Восстановление пароля;
- services — настройки внешних сервисов для работы с платформой;
- logger — уровень логирования сервера. Для включения режима debug выставить у mongodb: DEBUG;
- electricMeterScheduler — параметр, отвечающий за автоматический опрос устройства платформой (опрос выполняется каждые 30 минут, начиная от начала часа по умолчанию). Пример: cron: 3 0/1 * * * ? — опрос каждые 3 минуты;
- electricMeterArchiveScheduler — параметр, отвечающий за автоматический опрос архива устройства платформой;
- mqttBroker — настройка сервиса MQTT;
- video — настройка видеосервиса Flussonic;
- proxy — настройка прокси-сервера;
- billing — настройка сервиса биллинга;
- guard — настройка задержки перед постановкой на охрану;
- swagger — сервис для взаимодействия и просмотра API платформы Eltex SC. Для доступа необходимо обратиться к :8071/api/v1/swagger-ui.html#/admin-logger-api-controller.
- controller: delay_answer_from_control_millisec — настройка задержки ожидания ответа от контроллера;
- notifications — настройка защиты сервиса push-уведомлений.
Параметры:
- duplicate_delay_sec — период времени, в течение которого будет блокироваться дубликат сообщения (полностью совпадающий), задается в секундах;
- antispam_time_sec — период времени, в течение которого будет блокироваться отправка последующих однотипных сообщений (не полностью совпадающих, контроллер вне доступа 1, 2 и тд.), задается в секундах;
- delay_push_time_millisec — задержка между отложенными push-уведомлениями, задается в миллисекундах.
Порты, используемые платформой по умолчанию:
- 8069 — порт для подключения контроллеров Ethernet в режиме TCP-клиент к платформе;
- 8070 — WS-порт для подключения контроллеров к платформе;
- 8071 — HTTP-порт API-платформы;
- 8072 — WSS-порт для подключения контроллеров к платформе;
- 8073 — HTTPS-порт API-платформы;
- 8883 — порт для подключения к MQTT-брокеру.
По окончании установки и конфигурирования сервер Eltex SC готов к работе. Взаимодействие с платформой происходит через веб-интерфейсы пользователей и администратора, а также через мобильное приложение.
Во всех случаях, чтобы войти в платформу, нужно указать ее адрес и номер порта. В общем случае в адресную строку браузера вводится следующее: <Адрес сервера Eltex SC>.
Чеклист
Проверить занятость ядер процессора и оперативной памяти
htop
Проверить занятость физического места на диске
df -h
Проверить соединения контроллеров Z-Wave или датчиков Wi-Fi с платформой
netstat -na | grep 8070 netstat -na | grep 8883
Параметры, на которые следует обратить внимание:
- Состояние соединений:
- ESTABLISHED, LISTEN — норма;
- LAST_ACK — связь с контроллером уже потеряна, рядом должно быть переоткрытое соединение с того же IP;
- TIME_WAIT, CLOSE_WAIT — соединение зависло, неудачное закрытие;
- 2-ая колонка — очередь принятых сервером пакетов;
- 3-я колонка — очередь пакетов, отосланных на контроллеры;
- 5-я колонка — IP-адреса контроллеров.
Необходимо следить, чтобы пакеты не копились в очереди на контроллер. Если такое происходит, значит веб-сокет этого контроллера недоступен, и нужно посмотреть в логах платформы, что случилось и как давно.
Проверить наличие ошибок в логе
Логи платформы по умолчанию находятся в /storage/iot/core/var/log/eltex-sc/server*. Они разбиваются на части по размеру. Чтобы проверить все журналы на наличие некоторого параметра за определенную дату (например за 15 января 2022 года) и записать результаты в файл, нужно выполнить команду:
grep <значение для поиска> server-2022-01-15* > <имя файла для вывода>
Если требуется, можно дописать следующие опции после значения для поиска:
- -i — не чувствителен к регистру;
- -n — номера строк;
- -h — подавляет запись имени файла перед каждой строкой в результирующем файле;
- -A — количество строк после совпадения;
- -B — количество строк до совпадения.
Общий вид команды:
grep -i -n -A 5 -B 2 error server-2022-01-15* > errors.log
Ключевые слова для поиска:
- ERROR;
- ID или IP контроллера;
- PONG — ключевое слово, которое записывается, если контроллер не отвечает.
Проверить доступность веб-интерфейса
Самый простой способ проверить доступность веб-интерфейса платформы — открыть его в браузере (по IP или доменному имени — в зависимости от настроек сети и сервера).
Можно проверить доступность API платформы. Для этого в адресной строке браузера к URL веб-интерфейса платформы нужно дописать:
<Адрес сервера Eltex SC>:<порт API>/api/v1/version
где порт API — вышеуказанный порт доступа к API по HTTP (по умолчанию 8071/8073). Платформа должна моментально вернуть данные об установленной версии платформы, версии API и текущем времени на сервере в формате JSON.
Пример вывода:
{ "version" : "1.21-3116", "api" : "1.0", "currentTime" : "2021-12-29T17:54:16.278+07:00[Asia/Novosibirsk]" }
Настройка почтовых e-mail и sms-оповещений eltex-notification-gw (eltex-ngw)
Описание
Сервис представляет собой интерфейс для взаимодействия компонентов платформы c внешними SMS-шлюзами, call-центрами и серверами электронной почты. Служит для отправки уведомлений пользователям платформы, а также пользователям Wi-Fi.
Конфигурация
/etc/ansible-iot-1.21/templates/notification.properties.j2
Основной конфигурационный файл содержит параметры:
Ссылка на конфигурационный файл для подключения к SMS-шлюзу (для отправки SMS пользователям):
sms.gate.outgoing.sms.config=smsc_gate.conf
Ссылка на конфигурационный файл для идентификации пользователя по отправленным им SMS:
sms.gate.incoming.sms.config=
Ссылка на конфигурационный файл для идентификации пользователя по исходящим от него звонкам:
sms.gate.incoming.call.config=
Настройка размера очереди SMS на отправку и времени ожидания отправки:
sms.gate.pool.size=50 sms.gate.pool.wait.millis=5000
Настройка размера очереди и времени ожидания отправки, ссылка на конфигурационный файл для авторизации по входящему звонку:
call.gate.outgoing.call.config= call.gate.pool.size=50 pool.wait.millis=5000
Порт, прослушиваемый сервисом для приема запросов на отправку сообщений:
server.port=8040
Настройка подключения к MongoDB для хранения журнала отправки сообщений:
mongodb.host={{ mongodb_addr }} mongodb.port={{ mongodb_port }} mongodb.name=notification-gw mongodb.fsfiles.store.period=7
Подключение к серверу электронной почты:
mail.smtp.submitter={{ mail_smtp_submitter }} mail.smtp.password={{ mail_smtp_password }} mail.smtp.auth={{ mail_smtp_auth }} mail.smtp.host={{ mail_smtp_host }} mail.smtp.port={{ mail_smtp_port }} mail.smtp.sendpartial=true mail.smtp.starttls.enable=false mail.smtp.connectiontimeout=5000 mail.gate.pool.size=20 mail.pool.wait.millis=10000
mail.smtp.password
Если в вашем пароле используются спецсимволы типа: " [ \ ^ $ . | ? * + ( )", их необходимо экранировать, иначе пароль будет неверным!
Пример 1: пароль "326P%1E\" при экранировании должен выглядеть: "326P%1E\\";
Пример 2: пароль "326P%1E^" при экранировании должен выглядеть: "326P%1E\^".
Для включения шифрования соединения с почтовым сервером нужно указать опцию:
mail.smtp.starttls.enable=true
Переход с http на https
Справка по сертификатам
Пример конвертирования сертификата из PKCS#1 в PKCS#8, letsencrypt:
openssl pkcs8 -topk8 -inform PEM -outform PEM -nocrypt -in путь_до_ключа -out имя_для_нового_ключа.
Способ определения типа сертификата
# head -1 /tmp/eltex-sc-api.key -----BEGIN PRIVATE KEY----- # head -1 /etc/ssl/private/eltex-sc-api.key -----BEGIN RSA PRIVATE KEY-----
- BEGIN PRIVATE KEY — кодировка PKCS#8;
- BEGIN RSA PRIVATE KEY — кодировка PKCS#1.