Описание
Сервис представляет собой интерфейс для взаимодействия компонентов платформы и внешними SMS-шлюзами, Call-центрами и серверами электронной почты. Служит для отправки уведомлений пользователям платформы, а также пользователям Wi-Fi.
Управление сервисом
Установка сервиса
apt-get install eltex-ngw
Способы запуска/остановки
Действие | Команда | Ответ |
---|---|---|
Проверка состояния | systemctl status eltex-ngw | Сервис запущен Active: active (running) Cервис не запущен Active: failed |
Запуск сервиса | systemctl start eltex-ngw | Сервис успешно запущен Active: active (running) |
Остановка сервиса | systemctl stop eltex-ngw | Сервис успешно остановлен Active: failed |
Перезапуск сервиса | systemctl restart eltex-ngw | Сервис успешно перезапущен Active: active (running) |
Создание пользователя базы данных | eltex-ngw create-db-user | |
Удаление базы данных | eltex-ngw remove-db |
Конфигурация
/etc/eltex-ngw/application.conf
Содержит основные настройки сервиса.
// Server configuration server { port = 8040 # порт, который слушает сервис eltex-ngw } sms { // Incoming (user to service) sms config incoming.config = "smsc.conf" # выбор конфигурации для исходящих сообщений // Outgoing (service to user) sms config outgoing.config = "smsc.conf" # выбор конфигурации для входящих сообщений // Sms gateway pool settings # настройка пула до смс шлюза pool { min = 1 max = 20 waitTimeout = 5s } } call { // Incoming (user to service) call config incoming.config = "sbc.conf" # выбор конфигурации для входящих звонков // Outgoing (service to user) call config outgoing.config = "/smg.conf" # выбор конфигурации для исходящих звонков // Call gateway pool settings pool { min = 1 max = 20 waitTimeout = 5s } } email { // Outgoing (service to user) email config outgoing.config = "email.conf" # выбор конфигурации для электронной почты pool { min = 1 max = 20 waitTimeout = 5s } } database { host = localhost # адрес базы данных port = 3306 # порт name = eltex_ngw # название базы данных user = javauser # логин для доступа к бд password = javapassword # пароль для доступа к бд pool { // Time to wait for a connection connectionTimeout = 10s min = 1 max = 10 } # настройки планировщика заданий по очистке старых сообщений в базе данных // Configure the lifetime of different tables' content cleanup { // incoming events events = 365d # время хранения событий // sms messages = 365d # время хранения sms // email emails = 365d # время хранения электронных писем // files files = 7d # время хранения файлов // limit deletions by this number (0 if no limit) limit = 0 // cleanup schedule cron, e.g. "0 0 3 ? * *" # настройка времени запуска по cron // set to "-" to disable cron = "-" # включение планировщика, по умолчанию выключен } }
/etc/eltex-ngw/gateway.d/
каталог содержит конфигурационные файлы для подключения к различным шлюзам.
Для подключения к различным смс-шлюзам создан набор шаблонов конфигураций, которые находятся в каталоге /etc/eltex-ngw/gateway.d/. Если среди предложенных шаблонов и смс-шлюзов Вы не нашли свой, то обратитесь в техподдержку для интеграции с Вашим шлюзом.
SMS-центр - smsc_gate.conf.
Kaspi Bank - kaspib_gate.conf (Индивидуальная интеграция).
Seven Sky - 7sky_gate.conf.
Связной загрузка - zagruzka_gate.conf.
SMS - шлюз с поддержкой SMPP - smpp_gate.conf.
GSM-шлюз NetPing SMS - netping_gate.conf.
GSM-шлюз Fargo maestro 100 - serial_port.conf.
Банк Левобережный - levob_gate.conf (Индивидуальная интеграция).
Связьбанк шлюз - sviaz_bank_gate.conf (Индивидуальная интеграция).
rtk_sbc.conf - исходящий звонок.
smg_gate.conf - входящий звонок.
РТК - rtk_gate.conf (Индивидуальная интеграция).
Возможность интеграции с другими шлюзами уточняйте в техподдержке компании.
/etc/default/eltex-ngw
Содержит параметры инициализации сервиса.
- Количество памяти, выделяемое приложению при старте сервиса:
# Initial size of Java heap JAVA_INIT_HEAP=16m
- Максимальное количество памяти, которое может арендовать сервис:
# Maximum size of Java heap JAVA_MAX_HEAP=128m
- Дополнительные опции запуска java:
# Additional arguments to pass to java JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/eltex-ngw"
/etc/eltex-ngw/log4j2.xml
Содержит параметры логирования.
- Интервал автоматического перечитывания конфигурации логгера:
<Configuration monitorInterval="600">
- Базовая директория хранения логов:
<Property name="baseDir">/var/log/eltex-ngw</Property>
- Максимально допустимый размер файла (при его превышении создается новый файл. а старый архивируется):
<Property name="maxFileSize">20 MB</Property>
- Суммарный размер логов (текущий файл + архивные). При его превышении наиболее старые файлы будут удаляться:
<Property name="accumulatedFileSize">100 GB</Property>
- Срок хранения логов, файлы модифицированные раннее этого срока будут удаляться:
<Property name="lastModified">4d</Property>
- Максимальное количество архивных файлов, при его превышении наиболее старые файлы будут перезаписываться:
<Property name="maxCount">10</Property>
- Блок настройки перенаправления логов в Graylog (уровень логирования, адрес, порт):
<Property name="gelfLevel">OFF</Property> <Property name="gelfHost">udp:lab3-test.eltex.loc</Property> <Property name="gelfPort">12201</Property>
- Уровень логирования:
<Root level="ERROR">
Докеризация сервиса
Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл docker-compose.yml
version: "2.4" volumes: softwlc_logs: driver: local services: ngw: container_name: ngw image: hub.eltex-co.ru/softwlc/eltex-ngw:1.19-<tag> network_mode: host ports: - 1814:1814 - 8040:8040 volumes: - "/etc/eltex-ngw:/etc/eltex-ngw"
На данный момент нельзя конфигурировать настройки смс-шлюза через переменные окружения, то для применения необходимых настроек нужно сделать маппинг конфигурационных файлов ранее установленной deb-версии.
Некоторые параметры можно сконфигурировать через переменные окружения представленные ниже. Для этого необходимо создать файл .env и разместить его рядом с docker-compose.yml, указав в последнем необходимые переменные.
NGW_PORT=8040 NGW_SMS_INCOMING_CONF=smsc.conf NGW_SMS_OUTGOING_CONF=smsc.conf NGW_CALL_INCOMING_CONF= NGW_CALL_OUTGOING_CONF= NGW_EMAIL_OUTGOING_CONF= NGW_DB_HOST=<IP-address> NGW_DB_PORT=3306 NGW_DB_NAME=eltex_ngw NGW_DB_USER=javauser NGW_DB_PASSWORD=javapassword NGW_DB_POOL_CONNECTION_TIMEOUT=10s NGW_DB_POOL_MIN_IDLE=1 NGW_DB_POOL_SIZE=10 NGW_DB_CLEANUP_EVENTS=365d NGW_DB_CLEANUP_MESSAGES=365d NGW_DB_CLEANUP_EMAILS=365d NGW_DB_CLEANUP_FILES=7d NGW_DB_CLEANUP_LIMIT=0 NGW_DB_CLEANUP_CRON=-
Возможные переменные окружения
Запуск сервиса- NGW_PORT - Grpc порт, который будет слушать сервис.
- JAVA_INIT_HEAP - Xms JVM опция.
- JAVA_MAX_HEAP - Xmx JVM опция.
- JAVA_OPTS - JVM опции (может переопределить все остальные параметры по умолчанию).
- NGW_SMS_INCOMING_CONF - конфигурационный файл для идентификации пользователя по входящему SMS (от пользователя).
- NGW_SMS_OUTGOING_CONF - конфигурационный файл для идентификации пользователя по исходящему SMS (пользователю).
- sms.pool.waitTimeout - таймаут получения соединения из пула.
- sms.pool.min - минимальное число idle соединений.
- sms.pool.max - размер пула соединений.
Настройки звонков
- NGW_CALL_INCOMING_CONF - конфигурационный файл для идентификации пользователя по входящему звонку (от пользователя).
- NGW_CALL_OUTGOING_CONF - конфигурационный файл для идентификации пользователя по исходящему звонку (пользователю).
- call.pool.waitTimeout - таймаут получения соединения из пула.
- call.pool.min - минимальное число idle соединений.
- call.pool.max - размер пула соединений.
Настройки email
- NGW_EMAIL_OUTGOING_CONF - конфигурационный файл для исходящей почты.
- email.pool.waitTimeout - таймаут получения соединения из пула.
- email.pool.min - минимальное число idle соединений.
- email.pool.max - размер пула соединений.
Настройки взаимодействия с БД
- NGW_DB_HOST - хост подключения к БД.
- NGW_DB_PORT - порт подключения к БД.
- NGW_DB_NAME - имя БД.
- NGW_DB_USER - имя пользователя БД.
- NGW_DB_PASSWORD - пароль пользователя БД.
- NGW_DB_POOL_CONNECTION_TIMEOUT - таймаут получения соединения из пула.
- NGW_DB_POOL_MIN_IDLE - минимальное число idle соединений.
- NGW_DB_POOL_SIZE - размер пула соединений с БД.
- NGW_DB_CLEANUP_EVENTS - время жизни событий в БД.
- NGW_DB_CLEANUP_MESSAGES - время жизни сообщений в БД.
- NGW_DB_CLEANUP_EMAILS - время жизни email в БД.
- NGW_DB_CLEANUP_FILES - время жизни файлов, отправленных по email, в БД.
- NGW_DB_CLEANUP_LIMIT - лимит удалений за раз.
- NGW_DB_CLEANUP_CRON - расписание очистки cron.