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

Описание


В состав SoftWLC включен WEB-портал, с помощью которого реализуется модель авторизации hotspot-клиентов. Неизвестный системе пользователь может свободно (без получения заранее логина и пароля) подключиться к точке доступа, но при попытке выйти в интернет через браузер пользователь перенаправляется на страницу WEB-портала, на которой может по выбору пройти процедуру авторизации или получения авторизационных данных (например, с помощью SMS). В процессе выполнения процедур авторизации абонент может наблюдать рекламные сообщения в виде баннеров, кастомизированных в соответствии с требованиями оператора.

Для кастомизации WEB-портала в SoftWLC включен Конструктор Порталов, с помощью которого пользователи могут настраивать сценарии работы и внешний вид порталов, используемых при Hotspot-авторизации. Пользователи Конструктора могут создавать и удалять порталы, выбирать их фон и содержание (текст, изображения), устанавливать различные режимы и сценарии авторизации для каждого из порталов. Сам по себе Конструктор не выполняет никаких действий в цепочке предоставления услуги абонентом. Это инструмент, служащий исключительно для настройки.

GUI Конструктора Порталов доступен по следующему URL: http://<IP-адрес Конструктора>:8080/epadmin

Логин и пароль авторизации для доступа к настройкам портала указываются при установке инсталляционного пакета портала в системе. Управлениями учетными записями и правами доступа возможно в системе «Личный кабинет Wi-Fi».

В Конструкторе порталов существует возможность настройки работы Портала, как с точками доступа Элтекс, так и c BRAS (ESR-1000), который используется для подключения к платформе точек доступа сторонних производителей. В случае работы с BRAS в Конструкторе порталов дополнительно необходима настройка в разделах "Взаимодействие с BRAS" и "Доступ к PCRF".

Установка производится с помощью пакета eltex-portal-constructor.

Управление сервисом


Установка

apt-get install eltex-portal-constructor

Способы запуска/остановки

ДействиеКомандаОтвет
Проверка состоянияservice eltex-portal-constructor status

Сервис запущен

Active: active (running)

Cервис не запущен

Active: failed

Запуск сервисаservice eltex-portal-constructor start

Сервис успешно запущен

Active: active (running)

Остановка сервисаservice eltex-portal-constructor stop

Сервис успешно остановлен

Active: failed

Перезапуск сервисаservice eltex-portal-constructor restart

Сервис успешно перезапущен

Active: active (running)





Конфигурация


/etc/eltex-portal-constructor/application.conf

Основной конфигурационный файл. Пример дефолтной конфигурации:

/etc/eltex-portal-constructor/application.conf
login {
    # Количество попыток входа в панель администратора до наступления блокировки
    maxAttemptsLogin = 3
    maxAttemptsIP = 5
    # Количество минут блокировки после достижения максимального числа попыток входа в панель администратора
    blockTime = 5m
}

database {
    host = localhost
    port = 3306
    name = ELTEX_PORTAL
    user = javauser
    password = javapassword

    pool {
        # Time to wait for a connection
        connectionTimeout = 10s
        # Time to wait for connection validation
        validationTimeout = 3s

        min = 1
        max = 10
    }

    cache {
        # Limit of cached simple entries count (for each query type)
        maxEntries = 1000
        # Limit of total cached portal resources size
        maxResourceBytes = 32m
        # Maximum time to retain items in the cache
        expireTime = 30s
    }

    jdbc {
        properties {
            useSSL = false
        }
    }
}

sso {
    enabled = false

    # enable or disable local login
    localLoginAllowed = true

    # rtk, keycloak
    provider = rtk

    # Must be in double quotes. Only for 'rtk' provider
    version = "1.0"

    rest {
        scheme = http
        host = localhost
        port = 80
        sso_api_path = /apiman-gateway/b2b_test
    }
    auth {
        scheme = http
        host = localhost
        port = 80
        authentication_path = /auth/realms/b2b/protocol/openid-connect/auth
        logout_path = /auth/realms/b2b/protocol/openid-connect/logout
    }


    params {
        client_id = id
        # URL of epadmin, URL must be in double quotes (!!!)
        redirect_uri = "http://localhost:8080/epadmin/sso"
        client_secret = secret
    }
}

jetty {
    http.port = 9001
    https {
        port = 9444
        keystorePass = 12345
        keystoreFile = /etc/eltex-portal-constructor/localhost.pfx
        keystoreType = PKCS12
        keyAlias = 1
        ciphers = [
            TLS_RSA_WITH_AES_128_CBC_SHA256
            TLS_RSA_WITH_AES_128_CBC_SHA
            TLS_RSA_WITH_AES_256_CBC_SHA256
            TLS_RSA_WITH_AES_256_CBC_SHA
        ]
    }
    multipart {
        maxFileSize = 100MB
        maxRequestSize = 100MB
    }
}

validation {
    public_key = /etc/eltex-doors/keys/public.pem
}

logging {
  host = localhost
  port = 9099
}


ПараметрыОписание
login - настройки защиты от подбора паролей

maxAttemptsLogin

Количество попыток авторизации под одним и тем же логином, после которого будет включена капча.

maxAttemptsIP

Количество попыток авторизации с одного IP-адреса, при превышении попытки авторизации с этого адреса будут блокироваться.

blockTime

Время блокировки IP-адреса.
database - настройки работы с БД
hostАдрес сервера БД.
portПорт, на который сервер БД принимает входящее подключение.
nameНазвание БД.
userИмя пользователя БД.
passwordПароль пользователя БД.
pool

Управление соединениями к БД.

connectionTimeout - время жизни коннекта при бездействии.

validationTimeout - интервал проверки бездействующих коннектов.

min - минимальное количество коннектов.

max - максимальное количество коннектов.

cache

Настройки кэширования.

maxEntries - максимальное количество элементов в кэше.

maxResourceBytes - размер кэша.

expireTime - время хранения данных в кэше.

jdbc

Дополнительные настройки подключения к БД

useSSL - включить/выключить SSL.

sso

Блок настроек взаимодействия с SSO.

enable - включение/выключение взаимодействия.

rest - блок настроек хоста и путей методов rest-сервера.

auth - блок настроек хоста и путей методов auth-сервера.

params - блок настроек идентификационной информации для SSO.

jettyБлок настроек взаимодействия с  jetty.
validation

Блок настроек валидации токенов для взаимодействия с другими сервисами SWLC.

public_key - путь до публичного ключа.

logging

Блок настроек для доступа к eltex-logging-service

host - адрес сервиса  eltex-logging-service

port - порт, на котором запущен  eltex-logging-service


/etc/eltex-portal-constructor/log4j2.xml

Файл настроек логирования.

/etc/eltex-portal-constructor/log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>

<Configuration monitorInterval="10">

    <Properties>
        <Property name="rootLevel">${env:LOG_LEVEL:-ERROR}</Property>

        <Property name="baseDir">/var/log/eltex-portal-constructor</Property>
        <Property name="maxFileSize">20 MB</Property>
        <Property name="accumulatedFileSize">10 GB</Property>
        <Property name="lastModified">4d</Property>
        <Property name="maxCount">20</Property>
        <Property name="logPattern">%d{ISO8601} [%t] %-5p %logger{12} %C{1}.%M(line:%L). %m%n</Property>

        <Property name="consoleLevel">${env:CONSOLE_LEVEL:-OFF}</Property>

        <Property name="gelfLevel">${env:GELF_LEVEL:-OFF}</Property>
        <Property name="gelfHost">${env:GELF_HOST:-udp:lab3-test.eltex.loc}</Property>
        <Property name="gelfPort">${env:GELF_PORT:-12201}</Property>
    </Properties>

    <Appenders>

        <Console name="STDERR" target="System.err">
            <PatternLayout pattern="${logPattern}"/>
        </Console>

        <RollingFile name="RollingFile"
                     fileName="${baseDir}/portal-constructor.log"
                     filePattern="${baseDir}/log/portal-constructor-%i.log.gz">
            <PatternLayout pattern="${logPattern}"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
                <OnStartupTriggeringPolicy />
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}">
                <Delete basePath="${baseDir}" maxDepth="3">
                    <IfFileName glob="*/portal-constructor-*.log.gz">
                        <IfAny>
                            <IfAccumulatedFileSize exceeds="${accumulatedFileSize}"/>
                            <IfLastModified age="${lastModified}"/>
                        </IfAny>
                    </IfFileName>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <RollingFile name="UserActionsRollingFile"
                     fileName="${baseDir}/user-actions.log"
                     filePattern="${baseDir}/log/user-actions-%i.log.gz">
            <PatternLayout pattern="${logPattern}"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
                <OnStartupTriggeringPolicy />
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}">
                <Delete basePath="${baseDir}" maxDepth="3">
                    <IfFileName glob="*/user-actions-*.log.gz">
                        <IfAny>
                            <IfAccumulatedFileSize exceeds="${accumulatedFileSize}"/>
                            <IfLastModified age="${lastModified}"/>
                        </IfAny>
                    </IfFileName>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <Gelf name="Gelf" host="${gelfHost}" port="${gelfPort}" version="1.1" facility="eltex-portal-constructor"
              extractStackTrace="true" originHost="%host{fqdn}" maximumMessageSize="8192" >
            <Field name="thread" pattern="%t"/>
            <Field name="level" pattern="%level"/>
            <Field name="severity" pattern="%-5level"/>
            <Field name="logger" pattern="%logger{12}"/>
            <Field name="location" pattern="%C{1}.%M(line:%L)"/>
        </Gelf>

    </Appenders>


    <Loggers>
        <Root level="${rootLevel}">
            <AppenderRef ref="RollingFile"/>
            <AppenderRef ref="STDERR" level="${consoleLevel}"/>
            <AppenderRef ref="Gelf" level="${gelfLevel}"/>
        </Root>

        <Logger name="UserActionsLogger" additivity="false" level="INFO">
            <AppenderRef ref="UserActionsRollingFile"/>
            <AppenderRef ref="Gelf" level="${gelfLevel}"/>
        </Logger>

        <Logger name="io.grpc.netty"               level="ERROR"/>
        <Logger name="net.jradius"                 level="ERROR"/>
        <Logger name="org.jooq"                    level="ERROR"/>
        <Logger name="com.zaxxer"                  level="ERROR"/>
        <Logger name="org.eclipse.jetty"           level="ERROR"/>
        <Logger name="org.springframework"         level="ERROR"/>
        <Logger name="org.eltex.portal.objectpool" level="ERROR"/>
        <Logger name="org.apache"                  level="ERROR"/>
        <Logger name="jndi"                        level="ERROR"/>

        <Logger name="org.jooq.impl.DefaultConnectionProvider" level="OFF"/>

    </Loggers>

</Configuration>

  • Автоматическое перечитывание конфигурации логгера:
<Configuration monitorInterval="10">
  • Уровень логирования:
<Property name="rootLevel">${env:LOG_LEVEL:-ERROR}</Property>
  • Базовая директория хранения логов:
<Property name="baseDir">/var/log/eltex-portal-constructor</Property>
  • Максимально допустимый размер файла (при его превышении создается новый файл. а старый архивируется):
<Property name="maxFileSize">20 MB</Property>
  • Суммарный размер логов (текущий файл + архивные). При его превышении наиболее старые файлы будут удаляться:
<Property name="accumulatedFileSize">10 GB</Property
  • Срок хранения логов, файлы модифицированные раннее этого срока будут удаляться:
<Property name="lastModified">4d</Property>
  • Максимальное количество архивных файлов, при его превышении наиболее старые файлы будут перезаписываться:
<Property name="maxCount">20</Property>
  • Блок настройки перенаправления логов в Graylog (уровень логирования, адрес, порт):
<Property name="gelfLevel">${env:GELF_LEVEL:-OFF}</Property>
<Property name="gelfHost">${env:GELF_HOST:-udp:lab3-test.eltex.loc}</Property>
<Property name="gelfPort">${env:GELF_PORT:-12201}</Property>

Важно!

С версии 1.21 при авторизации более не используется взаимодействие с "eltex-auth-service".

При выполнении обновления с предыдущих версии из файла конфигурации: /etc/eltex-portal-constructor/application.conf необходимо удалить строки:

auth-service {
    host = localhost
    port = 21812
    timeout = 10s
    retries = 3
    secret = eltex
    # pap, chap, mschapv2
    protocol = pap
}

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

Формат логов в КП

Логи событий безопасности сохраняются в файл /var/log/eltex-portal-constructor/user-actions.log

Пример лога: 

Пример лога
2023-03-30 20:35:30,471 INFO  [login: "admin", role: "null", user_ip: "10.25.96.118", host_ip: "10.25.96.46"][object_type: "portal common settings", action: "PORTAL_SETTINGS_EDIT", portal_name: "test4_izmenennui", msg: "'country.code.preferred' old_value='["Angola/244","Benin/229"]' new_value='["Angola/244"]'; 'mac.store.period' old_value='PT744H' new_value='PT768H'; 'locale.default' old_value='en' new_value='ru'"]


Описание структуры лога:

  • Дата и время в формате 'yyyy-MM-dd HH:mm:ss.SSS';
  • Уровень логирования: уровень логов не влияет на фактическое логирование. Действия будут логироваться при любом выставленном уровне логирования;
  • Два блока в квадратных скобках:
    1) [атрибуты пользователя и исходного хоста]:

                 login - логин пользователя;

                 role - роль пользователя (логируется только при авторизации через SSO, так как при обычной авторизации есть прямое соответствие между логином пользователя и его ролью);

                 user_ip - IP-адрес пользователя;

                 host_ip -  IP-адрес исходного хоста;

            2) [набор параметров, однозначно определяющий событие]:

                object_type - место логируемого события (вкладка)

                action - логируемое событие

                portal_name - название портала (используется при логировании действий, связанных с конкретным порталом)

                msg -  дополнительная информация для некоторых типов событий, например "старое/новое значение" ("true / false")

Структура блока:

  • Разделитель между параметром (ключом) и его значением: двоеточие;
  • Разделитель между парами ключ-значение: запятая;
  • Ключ пишется без кавычек, значение в кавычках (login: "admin").

Таблица с описанием всех возможных object_type

object_type

Вкладка в КП

System action
Системное сообщение. Не относится к действиям пользователя. Например, старт сервиса.
User
Страница авторизации/username→Выход 
gallery image
Галерея
Portal Constructor settings
Системные настройки → Конструктор порталов
Alert settings
Системные настройки → Уведомления
alert destination
Системные настройки → Уведомления → Список адресов получателей
NBI access settings
Системные настройки → Доступ к NBI
NGW access settings
Системные настройки → Доступ к NGW
BRAS access settings
Системные настройки → Взаимодействие с BRAS
PCRF access settings
Системные настройки → Доступ к PCRF
Mercury access settings
Системные настройки → Доступ к Mercury
Ted access settings
Системные настройки → Доступ к Ted
Mobile ID platform access settings
Системные настройки → Доступ к Papaya
Wi-Fi Customer Cub settings
Системные настройки → Личный кабинет
ESIA settings
Системные настройки → Вход через ЕСИА
SATS settings
Системные настройки → Интеграция с АТС Смольного
Volga platform access settings
Системные настройки → Доступ к платформе Волга
Payment service settings
Системные настройки → Настройки сервиса оплаты
SPAR platform access settings
Системные настройки → Доступ к платформе SPAR
SMART platform access settings
Системные настройки → Доступ к платформе SMART
portal common settings
Порталы → (portal_name) → Общие настройки
portal language settings
Порталы → (portal_name) → Языковые настройки
portal advertising settings
Порталы → (portal_name) → Рекламные площадки
schedule
Порталы → (portal_name) → Работа по расписанию
tariffs
Порталы → (portal_name) → Тарифы → Тарифы
BRAS tariffs
Порталы → (portal_name) → Тарифы → Специальные тарифы BRAS
poll
Порталы → (portal_name) → Опросы
portal payment settings
Порталы → (portal_name) → Сервисы оплаты
portal appearance
Порталы → (portal_name) → Внешний вид
portal
Порталы → Создать/копировать/изменить/удалить портал

Таблица с описанием всех возможных action

ActionОписание
PORTAL_CONSTRUCTOR_START
Старт Eltex Portal Constructor
AUTHORIZATION
Авторизация (успешная или неуспешная)
LOGOUT
Событие выхода или протухание сессии
EPADMIN_SETTINGS_EDIT
Изменение настроек Конструктора порталов
ALERT_SETTINGS_EDIT
Изменение настроек Уведомлений
NBI_SETTINGS_EDIT
Изменение настроек доступа к NBI
NGW_SETTINGS_EDIT
Изменение настроек доступа к NGW
BRAS_SETTINGS_EDIT
Изменение настроек взаимодействия с BRAS
PCRF_SETTINGS_EDIT
Изменение настроек доступа к PCRF
MERCURY_SETTINGS_EDIT
Изменение настроек доступа к Mercury
TED_SETTINGS_EDIT
Изменение настроек доступа к Ted
WIFI_CC_SETTINGS_EDIT
Изменение настроек доступа к Личному кабинету
ESIA_SETTINGS_EDIT
Изменение настроек входа через ЕСИА
SATS_SETTINGS_EDIT
Изменение настроек интеграции с АТС Смольного
VOLGA_SETTINGS_EDIT
Изменение настроек доступа к платформе "Волга"
PAYMENT_SETTINGS_EDIT
Изменение настроек сервиса оплаты
SPAR_SETTINGS_EDIT
Изменение настроек доступа к платформе SPAR
SMART_SETTINGS_EDIT
Изменение настроек доступа к платформе SMART
MOBILE_ID_SETTINGS_EDIT
Изменение настроек доступа к Papaya
ALERT_DESTINATION_CREATE
Добавление получателя в список адресов получателей (Ситемные настройки → Уведомления)
ALERT_DESTINATION_EDIT
Редактирование получателя в списке адресов получателей (Системные настройки → Уведомления)
ALERT_DESTINATION_DELETE
Удаление получателя из списка адресов получателей (Системные настройки → Уведомления)
GALLERY_IMAGE_CREATE
Загрузка нового изображения в Галерею
GALLERY_IMAGE_EDIT
Редактирование существующего изображения в Галерее
GALLERY_IMAGE_DELETE
Удаление изображения из галереи
PORTAL_CREATE
Создание нового портала
PORTAL_COPY
Копирование существующего портала
PORTAL_EDIT
Редактирование существующего портала
PORTAL_DELETE
Удаление портала
PORTAL_SETTINGS_EDIT
Изменение общих настроек конкретного портала
LANG_SETTINGS_EDIT
Изменение языковых настроек конкретного портала
ADV_SETTINGS_EDIT
Изменение рекламных настроек конкретного портала
PAYMENT_SETTINGS_EDIT
Изменение настроек оплаты конкретного портала
APPEARANCE_EDIT
Изменение настроек внешнего вида конкретного портала
SCHEDULE_CREATE
Добавление нового расписания для конкретного портала
SCHEDULE_EDIT
Редактирование существующего расписания для конкретного портала
SCHEDULE_DELETE
Удаление расписания конкретного портала
TARIFFS_EDIT
Изменение настроек тарифов для конкретного портала
BRAS_TARIFFS_EDIT
Изменение настроек специальных тарифов BRAS для конкретного портала
POLL_CREATE
Добавление нового опроса конкретному порталу
POLL_EDIT
Редактирование опроса у конкретного портала
POLL_DELETE
Удаление опроса у конкретного портала


Системные настройки в GUI


В данном разделе содержатся системные настройки Конструктора Порталов, а так же настройки для интеграции Eltex Portal и Конструктора Порталов с сервисами и платформами (авторизация через ЕСИА, АТС Смольного, рекламная платформа Волга, API SPAR, API SMART).




Конструктор порталов




Настройки страницы Конструктора порталов.

Параметры:

  • Заголовок страницы – название страницы, отображаемое в заголовке страницы.
  • Значок (favicon) – значок, отображаемый в заголовке.
  • Время сессии (мин) – время бездействия пользователя, после которого http-сессия будет разорвана и потребуется повторная авторизация.
  • Хост портала - адрес сервиса Eltex Portal, нужен для отправки команды на перечитывание данных (применения изменений на виртуальных порталах без перезапуска tomcat). Данная настройка необходима, если Конструктор и Портал установлены на разных серверах.
  • Порт портала - порт, который прослушивает сервис Eltex Portal. Если Конструктор и Портал установлены на разных серверах, то между ними должны проходить пакеты в порту 8080 в случае наличия firewall.
  • Настройки контента - установка ограничений на размер, разрешение и продолжительность загружаемых медиафайлов.


Уведомления


Уведомления администраторов системы об ошибках в работе портала. Уведомления отправляются по почте и SMS.

При добавлении нового получателя нужно выбрать способ отправки. Уведомление может быть отправлено по:

  • SNMP
  • Email
  • SMS


Типы уведомлений

SNMP

Электронная почта


SMS


Система оповещения предназначена для оповещения пользователей SoftWLC о проблемах на WEB-портале. Для добавления нового хоста (тип SNMP) следует указать следующие данные:

  • Хост – адрес сервера -получателя трапов;
  • Порт – номер порта, прослушиваемого получателем, как правило, используется номер 162;
  • Community – строка символов, в которой содержится пароль в открытом виде.
  • Тип PDU – TRAP или INFORM;
  • Время ожидания ответа (сек) – время, в течение которого ожидается ответ от получателя, действителен только для INFORM;
  • Количество попыток – количество попыток отправки сообщений типа INFORM с интервалом, равным таймауту.




Доступ к NBI


Интерфейс для взаимодействия между компонентами SoftWLC.

Для корректного функционирования портала необходимо настроить его связь с EMS сервером через Northbound Interface. Это позволяет Конструктору Порталов получать из EMS все необходимые сведения, например список тарифных планов и их параметры.

Параметры:

  • Протокол – протокол передачи данных к NBI (HTTP или HTTPS). Зависит от настроек NBI на сервере NBI.
  • Хост – адрес сервера NBI.
  • Порт – порт, прослушиваемый сервером NBI.
  • Путь к WSDL – адрес расположения WSDL-файла на сервере. Как правило, это всегда "/axis2/services/RadiusNbiService?wsdl".
  • Имя пользователя – логин пользователя.
  • Пароль – пароль пользователя.



Доступ к NGW


Интерфейс для работы с SMS-шлюзами.

Здесь настраиваются параметры связи Конструктора Порталов с Notification Gateway. Эта связка необходима Конструктору для считывания с NGW информации о поддержке различных типов авторизаций. В результате, если NGW, например, не настроен на авторизацию по входящему звонку, то Конструктор не будет предлагать пользователю этот элемент настройки.

Параметры:

  • Хост – адрес сервера NGW. Если Конструктор и NGW установлены на одном сервере, то значение должно быть "localhost".
  • Порт – порт, прослушиваемый сервером NGW.



Взаимодействие с BRAS


Настройка доступа к BRAS.

Когда установлен флаг "Взаимодействие с BRAS", включается поддержка BRAS на стороне портала.  После активации в настройках портала станут доступны тарифные планы PCRF.

Подробнее о настройке BRAS здесь: BRAS. Руководство по настройке.

Доступ к PCRF


Настройка взаимодействия с PCRF. Обеспечивает доступ к управлению и системе тарификации сессий абонентов, подключенных через BRAS.

Параметры:

  • Хост – адрес сервера PCRF.
  • Порт – порт, прослушиваемый сервером PCRF.
  • Таймаут чтения – время (сек), которое ждёт портал, пока не получит ответ от PCRF.
  • Таймаут записи – время (сек) на отправку сообщения от портала к PCRF.


Доступ к Mercury



Настройка доступа к сервису  управления портальными учетными записями eltex-mercury.

Параметры:

  • Хост – адрес сервера Mercury.
  • Порт – порт, прослушиваемый сервисом Mercury.


Доступ к Ted



Настройка доступа к сервису  управления портальными учетными записями eltex-ted.

Параметры:

  • URL – адрес сервера Ted.
  • Таймаут – период ,по истечению которого, сервис считается недоступным.
  • Максимальное число соединений – количество одновременно работающих коннектов, которое может поднять сервис eltex-portal для взаимодействия с сервисом Ted.
  • Время хранения MAC-адресов пользователей гостиниц  – количество дней , по истечению которых , MAC-адрес удаляется из базы данных.

Личный кабинет


Ссылка для перехода в Личный кабинет пользователя. Отображается на панели управления Конструктором.

Параметры:

  • Протокол - протокол, по которому происходит взаимодействие с ЛК (HTTP/HTTPS).
  • Хост – адрес сервера ЛК, по которому пользователи могут подключиться из внешней сети.
  • Порт – порт, прослушиваемый сервером ЛК.


Вход через ЕСИА


Настройка интеграции с ЕСИА (авторизация через госуслуги).

Параметры:

  • Тип среды ЕСИА - Промышленная или тестовая.
  • Мнемоника системы - Идентификатор системы в ЕСИА.
  • Области доступа (scope) - действия, которые может выполнять система (в данном случае Eltex Portal) от имени пользователя.
  • Сертификат и ключ (контейнер PKC#12) - сертификат системы, зарегистрированный в ЕСИА при подаче заявки.
  • Пароль от контейнера PKC#12 - приватный ключ от контейнера с сертификатом.

Интеграция с АТС Смольного


Настройка интеграции с АТС Смольного  для проведения MAC-авторизации совместно с общей базой данных других провайдеров.

Параметры:

  • Включить интеграцию - глобальное включение возможности интеграции для портала. Для каждого виртуального портала необходимо установить дополнительный флаг активации этой функции.
  • URL - адрес для интеграции.
  • Идентификатор NAS - индивидуальный идентификатор, используемый в запросах на сервис авторизации.
  • Секретное слово для NAS - последовательность, используемая для отправки запросов на сервис авторизации.
  • Максимальное количество соединений - количество одновременно работающих коннектов, которое может поднять сервис eltex-portal для взаимодействия с системой авторизации АТС Смольного.
  • Таймаут соединения в миллисекундах - время ожидания ответа от сервиса авторизации.

Доступ к платформе Волга



Настройка доступа к серверу опросов :

v1.20_Polly



Настройка сервиса оплаты:
  • Максимальное количество соединений - максимальное количество одновременный подключений в сторону сервиса оплаты.
  • Таймаут соединения - время, через которое произойдёт разрыв подключения к сервису оплаты.

Доступ к платформе SPAR

Настройка доступа к API SPAR.

v1.33_Настройка интеграции с API SPAR

Доступ к платформе SMART

Настройка доступа к API SMART.

v1.33_Настройка интеграции с API SMART

Галерея



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

Поиск выполняется сразу по полям таблицы: Название, Домен, Описание.


Добавление/изменение/выгрузка изображений/видео



Добавить изображение или видео в галерею можно при настройке виртуальных порталов (при выборе картинок) и непосредственно в Галерее. Процесс добавления медиафайла в Галерее:

  1. Нажать кнопку "Загрузить"
  2. В открывшемся окне выбрать нужное изображение/видео на ПК
  3. Указать домен ресурса и добавить описание. Домен ресурса – домен видимости изображения для пользователя Конструктора Портала. Пользователи Конструктора портала могут видеть те изображения, домен которых совпадает с доменом роли учетной записи пользователя или является его поддоменом. Дефолтные изображения в Конструкторе порталов, которые присутствуют в нем с момента инсталляции и не имеют доменов, видны всем пользователям Конструктора Порталов.

После этого новое изображение/видео добавится в галерею.

Уже загруженное изображение/видео можно изменить. Для этого нужно выделить один из элементов галереи и нажать кнопку "Изменить". Если выбрать несколько элементов, то кнопка "Изменить" будет неактивна.

При изменении имени, домена, изображения или описания, привязка данного элемента к порталам сохраняется. Таким образом, можно установить один и тот же элемент на несколько различных порталов, а потом изменить изображение/видео сразу на всех элементах.

Для скачивания загруженного  изображения/видео нужно  выделить  один из элементов галереи и нажать кнопку "Выгрузить". Если выбрать несколько элементов, то кнопка "Выгрузить" будет неактивна.


Удаление изображений/видео



Чтобы удалить файл из галереи, нужно выбрать удаляемый файл и нажать кнопку "Удалить".

В процессе удаления произойдет проверка на использование где-нибудь этого изображение/видео.  Если изображение/видео нигде не используется, то появится сообщение об успешном удалении.

Если некоторые из удаляемых изображений уже где-либо задействованы, то отобразится ошибка, в которой будет указан список виртуальных порталов, на которых они используются.


Стартовая страница



Приветственная страница конструктора порталов. В Dashboard'е отображаются данные:

  • Имя, фамилия, логин пользователя.
  • Роль пользователя (не отображается для пользователя 'admin').
  • Время последней авторизации пользователя.
  • Количество доступных (находящихся в домене пользователя) порталов.
  • Количество порталов без тарифных планов (авторизация пользователей на этих порталах невозможна).


Личный Кабинет


Кнопка "Личный Кабинет" в боковой панели Конструктора Порталов предназначена для быстрого и удобного для пользователя перемещения между Конструктором Порталов и Личным Кабинетом. Т.к. авторизация в Конструкторе и ЛК производится через одну систему: Auth Service, то по нажатию на данную кнопку в новой вкладке браузера у пользователя открывается ЛК, при чем авторизация в ЛК уже не требуется, она автоматически производится.


Порталы


Создание нового портала




Создать новый портал можно, нажав кнопку "Создать новый портал" в боковой панели Конструктора. При создании нового портала необходимо указать его Имя и Домен. Имя портала потребуется при конфигурирование параметра Virtual Portal Name SSID точки доступа, чтобы привязать этот SSID к созданному кастомизированному под клиента порталу. Домен портала будет определять пользователей Конструктора, которые смогут его видеть (домен портала должен совпадать с доменом учетной записи пользователя Конструктора или быть его поддоменом). WEB-портал может содержать неограниченное количество страниц (порталов), обладающих уникальной кастомизацией для соответствующего клиента.

По умолчанию после инсталляции в Конструкторе присутствует портал "Default". Для редактирования этот портал доступен только для Администратора Конструктора Порталов. Когда в Конструкторе создается новый портал, по умолчанию он содержит в себе все настройки идентичные порталу "Default". Поэтому Администратор может настроить портал "Default" таким образом, чтобы другие порталы при создании уже были преднастроены и требовали минимальных действий при кастомизации.

Копирование портала


Копирование   портала  осуществляется с помощью нажатия на пиктограмму
Копирование включает в себя :

  • Настройки портала.
  • Внешний вид портала.
  • Домен портала.



Общие настройки


Вкладка "Общие"

Основные

Рабочее расписание - расписание, по которому выбранный портал активирует свою работу.

Основной язык – язык, который по умолчанию используется при открытии портала на клиентском устройстве, если язык, используемый на устройстве, не поддерживается порталом. Определение языка выполняется по заголовкам, передаваемым пользовательским устройством (поле Accept-Language). Многие устройства передают несколько языков в этом поле, в случае если один из передаваемых языков поддерживается порталом, будет отображаться язык из этого списка вместо основного.

Длина генерируемого пароля – количество символов в пароле, генерируемом порталом автоматически при регистрации пользователя.

Время свободного повторного входа –  время, в течение которого, пользователь не будет возвращаться на портал (страница "Добро пожаловать"), при повторном подключение (актуально для схемы включения через BRAS).

Время хранения MAC-адреса пользователя  – задает период хранения MAC-адреса пользователя. При повторном подключении,  система автоматически распознает пользователя,  без повторной регистрации на портале.

Добавлять идентификатор сессии в URL перенаправления  – включает уникальный идентификатор сессии пользователя при выполнении финального редиректа с портала на внешний сайт. Выполняется подстановка идентификатора сессии в URL в следующих местах: при переходе с финальной страницы и при клике по баннеру на странице "поздравления"

Разрешить смену тарифа - включает страницу смены тарифа после прохождения клиентом его портальных сценариев.

Включить интеграцию с АТС Смольного - включает проверку наличия MAC-адреса пользователя в базе данных АТС Смольного. Флаг становится доступным только при глобальном включении интеграции с АТС Смольного.

Отображать пользовательское соглашение - выбор места.

Включить автопереход на странице "Поздравление" - включает автопереход на странице "Поздравление" (при условии, что в разделе "Общие" → "Страницы" включено отображение страницы "Поздравление").

Таймаут автоперехода на странице "Поздравление", с. - таймаут, по истечении которого будет выполнен автопереход.

Если на странице "Внешний вид" включена демонстрация финального промо баннера и его таймаут больше таймаута автоперехода на странице "Поздравление" - финальный промо баннер будет демонстрироваться в течении его таймаута, после чего будет сразу осуществлен автопереход.

Включить автопереход после закрытия баннера на странице "Поздравление" - при условии, что на странице "Внешний вид" включена демонстрация финального промо баннера, будет выполнен автопереход сразу после окончания его демонстрации.


Рекламная рассылка

Спрашивать согласие пользователей на рассылку - функция позволяет настроить предоставление услуги, по выбору пользователя или только с подтверждением согласия пользователя на рекламную рассылку.

Обязательное поле - функция позволяет не предоставлять услугу при отказе пользователя.  Поле появляется при активации параметра "Спрашивать согласие на рассылку".


Дополнительные параметры при регистрации

Запрашивать дополнительные параметры при регистрации – функция позволяет собрать дополнительные данные о пользователях: имя, фамилию, адрес электронной почты. Если установлен флаг “Обязательное поле”, то пользователю придется заполнять эти поля в обязательном порядке. (Не поддерживается одновременно с активированным сервисом оплаты).

После активации параметра, станет доступна возможность выбора запрашиваемых полей.


Подтверждение возраста

Запрашивать дополнительные параметры при регистрации - функция позволяет настроить предоставление услуги пользователям, подтвердившим на портале достижения определенного возраста.

После активации параметра, становятся доступны дополнительные поля:

Обязательное поле - подтверждение возраста становится обязательным, в случае отказа, услуга не будет предоставляться.

Возраст - ограничение возраста.


Вкладка "Режим работы"


Вкладка отвечает за выбор порядка прохождения авторизации пользователя на портале.

Основные

Вход через ЕСИА (Госуслуги) - включает на портале форму авторизации пользователя через Единую Систему Идентификации и Аутентификации. Опция активна только в случае, если проведена интеграция Notification GW с ЕСИА.

Регистрация - пользователь Wi-Fi на странице портала будет иметь возможность авторизации в системе, только подтвердив свой номер телефона (например, указав его в на портале и получив SMS с паролем). У пользователя не будет возможности ввести на портале сразу полученный заранее логин и пароль. Режим характерен для классических Hotspot с авторизацией по звонку или SMS.

Авторизация - пользователь Wi-Fi сможет авторизоваться на портале, только если он будет иметь заранее выданные логин и пароль, которые он введет в форму на портале. Будет отсутствовать возможность пройти авторизацию путем подтверждения своего номера телефона по звонку или SMS. Генерирует и выдает логины и пароли пользователям обычно Администратор организации.

PMS авторизация - пользователь Wi-Fi сможет авторизоваться на портале, только если он будет иметь заранее выданные логин и пароль, которые он введет в форму на портале. Будет отсутствовать возможность пройти авторизацию путем подтверждения своего номера телефона по звонку или SMS. Логином и паролем являются данные при заселении в гостиницы.


Подтверждение личности

Выбор вариантов подтверждения пользователем своего номера телефона. Одновременно можно активировать на портале несколько вариантов, тогда пользователь сможет выбрать для себя наиболее оптимальный способ.

Режим демонстрации - демо-режим, который не требует интеграции Notification GW с какими-либо системами и работает "из коробки". С помощью этого режима можно посмотреть работу портала на начальном этапе инсталляции всей системы. При выборе этого режима пользователь должен ввести на портале свой номер телефона, после чего откроется страница портала, в которой поле "Логин" уже будет заполнено его номером телефона, а поле "Пароль" также будет заполнено автоматически сгенерированным паролем. Для авторизации пользователю будет достаточно нажать кнопку "Подключиться", при этом никаких SMS высылать\получать не нужно.

Данный режим не гарантирует идентификацию абонента, т.к. он может ввести номер НЕ своего телефона, тем самым обеспечив свою анонимность. Данный режим рекомендуется использовать только для демонстрации, а не в реальной эксплуатации, т.к. это может противоречить законодательству страны, где предоставляется услуга, например Постановление Правительства Российской Федерации от 31.07.2014 № 758

SMS пользователю - подтверждение номера телефона путем получения пользователем SMS с паролем. Пользователь на портале должен ввести свой номер телефона, после чего система генерирует для него пароль и высылает пользователю по SMS. Пользователь на странице портала вводит этот пароль (поле "Логин" уже предзаполнено его номером телефона) и тем самым авторизовывается, подтверждая, что этот номер действительно принадлежит ему. Режим требует интеграции Notification GW с SMS-шлюзом оператора, через который будут отправляться SMS.

SMS от пользователя - подтверждение номера телефона путем отправки пользователем SMS с паролем на настроенный номер.

Звонок пользователю - подтверждение (регистрация)  учетной записи пользователя при помощи обратного звонка на номер пользователя.

Звонок от пользователя - подтверждение (регистрация) учетной записи пользователя при помощи совершаемого им звонка.

Вход через Fan ID - подтверждение (регистрация) учетной записи пользователя при помощи "паспорта болельщика".


Вкладка "Отправка SMS"


Раздел для настройки параметров отправки SMS при авторизации на портале.

Основные


Код страны по умолчанию – номера телефонов пользователей-иностранцев имеют префикс, отличный от "+7". На портале пользователь имеет возможность выбора префикса своей страны. В данной настройке выбирается префикс, который пользователь будет видеть по умолчанию после открытия портала.

Урезать SSID в SMS – опция, уменьшающая длину отправляемого пользователю SMS за счет уменьшения длины названия SSID (если его имя слишком длинное), чтобы уместить все в одно сообщение. Это приводит к экономии на отправке SMS.

Если пользователь выбирает  на портале английский язык, то максимальная длина одного сообщения будет составлять 160 символов, для всех остальных языков максимальная длина одного сообщения 70 символов.

Количество секунд между попытками получения SMS - число секунд между попытками отправки SMS пользователю.

Выбор кода страны

Разрешить выбор кода страны - включает\выключает на портале возможность выбора кода страны. Если опция выключена, то пользователь сможет указать свой номер телефона только с префиксом, установленным по умолчанию. Обычно опцию включают, если ожидается, что на портале будут проходить авторизацию иностранцы.

Страны в начале списка - настройка перечня телефонных кодов стран, которые будут отображаться сверху списка всех кодов. Опция появляется в Общих настройках портала только при активации опции "Разрешить выбор кода страны". Обычно данная опция применяется, чтобы вынести вверх списка телефонные коды тех стран, которые чаще всего используются при авторизации на портале. В результате, большинству пользователей не приходится пролистывать весь список кодов - нужные префиксы они находят сразу, наверху списка.


Вкладка "Безопасность"


Раздел для настройки параметров безопасности портальной авторизации.

Пароли

Длина генерируемого пароля - длина генерируемого пароля при регистрации клиента WiFi на портале.

Хранение паролей пользователей - выбор способа сохранения паролей пользователей в БД. Можно выбрать "Простой текст" - пароль сохраняется в открытом виде или "NT хеширование" - пароль сохраняется в виде хеша NTLM.

Списки доступа

    

Список доступа по MAC - выбор списка доступа по MAC, составленного в ЛК.

Список доступа по телефонному номеру - выбор списка доступа по номеру телефона, составленного в ЛК.

Списки доступа  позволяют ограничить доступ к порталу по MAC-адресу клиента или телефонному номеру. Существует два вида списков:

  • Белые - все адреса/номера из списка имеют доступ к порталу, остальные нет. Если МАС-адрес/телефонный номер клиента отсутствует в белом списке, при редиректе на портал, он получит страницу портала, с пояснением что его он не находится в белом списке;
  • Черные -  все адреса/номера имеют доступ к порталу, адреса из списка нет. Если МАС-адрес/телефонный номер клиента находится в черном списке, при редиректе на портал,  он получит страницу портала, с пояснением что он находится в черном списке.

Captcha

Использовать captcha – активировать capcha на портале для защиты от ботов.

Количество символов в captcha -  число символов, формируемых в изображении captcha. Чем больше символов, тем выше защита от ботов, но тем более сложной становится процедура заполнения captсha пользователем. Опция появляется в настройках только после активации опции "Использовать captcha". 


SMS-антиспам

Включить смс-антиспам – функция, ограничивающая частоту отправки SMS пользователю. В случае превышения количества запрошенных SMS пользователь отправляется в блокировку (по MAC-адресу) и не сможет зарегистрироваться. При успешной авторизации пользователя, счетчик сбрасывается. При активации опции становятся доступны дополнительные настройки.

Количество попыток с устройства по получению SMS с кодом до наступления бана - количество попыток получения SMS перед наступлением блокировки.

Количество секунд бана после превышения числа попыток - количество секунд между попытками получения SMS и времен блокировки.

Вкладка "Страницы"


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

Инструкция – активация инструкции на страницах портала.

Поздравление – активация страницы поздравления об успешном подключение к сети Интернет. (Страница "Поздравление" открывает настройку дополнительных финальных баннеров).

Добро пожаловать - активация подтверждения номера/логина пользователем на портале при mac-авторизации.

Страница 1-5 – активация дополнительных страниц виртуального портала.


Языковые настройки


Портал поддерживает одновременно несколько языков: русский, английский, казахский, китайский, французкий немецкий, испанский, итальянский, фарси, японский, монгольский, бурятский и узбекский.
Пользователь может переключать языки, по своему усмотрению, в левой части вкладки, путем установки флага напротив нужных. По умолчанию доступны 2 языка: английский и русский. Остальные языки не активны. Если было обновление с более ранних версий SoftWLS, то уже ранее созданные порталы сохраняют языковые настройки.


Для каждого языка доступны следующие настройки:

URL для перенаправления – URL-страницы, на которую пользователь будет перенаправлен после портальной авторизации. Т.е., после того, как он ввел свой номер телефона, получил SMS и ввел пароль в портале, его принудительно перенаправит на указанный в параметре URL. Обычно это сайт клиента, рекламная страница или сайт оператора. Поддерживаются доменные имена на латинице и кириллице.

URL перехода по баннеру на финальной странице - URL-страницы, на которую пользователь будет перенаправлен при нажатии на финальный баннер (находящийся внизу страницы портала) на странице "Поздравление" (последней страницы портала, которая включается в общих настройках используемого портала).

URL перехода по промо баннеру на финальной странице - URL-страницы, на которую пользователь будет перенаправлен при нажатии на финальный промо баннер (всплывающий баннер) на странице "Поздравление" (последней страницы портала, которая включается в общих настройках используемого портала).

Заголовок страницы – формируется администратором портала под каждого клиента индивидуально (необязательный параметр).
Подпись снизу – формируется администратором портала под каждого клиента индивидуально (необязательный параметр).
Шаблон SMS сообщения – шаблон сообщения, в котором пользователю будет отправлен пароль

В шаблоне не допускается использование нескольких пробелов подряд, пробелов перед и после шаблона. Несколько пробелов подряд при сохранении будет замены одним. Пробелы перед и после шаблона будут удалены.

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

Добавление "URL для перенаправления" по расписанию

Чтобы открыть окно настройки "URL для перенаправления" для разных расписаний нужно нажать на пиктограмму в поле настройки URL.

В данном окне отображаются уже существующие URL для разных расписаний. При необходимости их можно удалить с помощью кнопки .

Для каждого расписания может быть добавлен только один URL.

Для добавления новой привязки URL+расписание, нужно выбрать одно из доступных расписаний, указать URL и нажать кнопку "Добавить". После этого оно появится в списке. Далее нужно сохранить изменения в окне настроек расписаний, и после этого сохранить изменения на странице языковые настройки.

Привязки URL и расписаний создаются отдельно для каждого языка, используемого на портале.


Рекламные площадки


Раздел содержит настройки активации/деактивации интеграции с рекламными площадками.

Включить интеграцию с платформой Волга - активация/деактивация интеграции с платформой Волга. При включенном параметре, становится видимой дополнительная настройка.

Location - расположение площадки.

Включить интеграцию с рекламными площадками - активация/деактивация интеграции с рекламными площадками. При включенном параметре, становится видимой дополнительная настройка.

Рекламная площадка - выбор рекламной площадки. В выпадающем меню доступно две площадки: WiFix и Hot WiFi.


После нажатия кнопки "Сохранить" настройки применятся.



Работа по расписанию



По умолчанию в системе не заданы настройки расписания. В случае добавления расписания работы портала, он будет работать только в указанное время, если пользователь зайдет на портал в нерабочее время, то увидит вместо формы регистрации/авторизации на портале страницу-заглушку.

Отсчет времени ведется в часовом поясе, в котором находится точка доступа, к которой подключается пользователь. Часовой пояс точки доступа задается в настройках домена, в котором она находится. Настройка часового пояса описана на страницах v1.33_Администрирование EMS в разделе "Часовой пояс" и v1.33_Администрирование Личного кабинета в разделе "Дерево доменов".

Изменения времени работы вступают в силу после нажатия "Сохранить" в планировщике.

Не рабочее время портала по расписанию не означает что уже авторизованный пользователь не сможет продолжать получать услугу Wi-Fi. Авторизованные пользователи будут продолжать работать до истечения времени заложенного в тарифе. Но новые пользователи, а также те пользователи, у которых истек тариф не смогут получить или продлить услугу в нерабочее время.

Портал получает значение таймзоны через NBI и кэширует его на 5 минут. В связи с этим, изменение часового пояса домена может вступить в силу на портале в течение 5 минут.



Работа с планировщиком

Раздел позволяет создавать расписания, используемые в дальнейшем для настройки отображения баннеров, а также ссылок для редиректа пользователей после авторизации на портале.

Для создания и редактирования расписаний пользователь КП должен обладать привилегией на редактирование системных настроек. Пользоваться уже готовыми расписаниями могут любые пользователи.

Для добавления расписания необходимо нажать кнопку "Добавить". Откроется окно создания расписания идентичное окну редактирования. После этого в таблице можно будет выбрать рабочие часы для этого расписания. Лиловые блоки отображают рабочее время, серые - нерабочее.

Для просмотра и редактирования расписания нужно нажать на пиктограмму справа от названия расписания. После этого в таблице можно будет снова выбрать рабочие часы для этого расписания.

Для удаления расписаний используется кнопка . При удалении расписания, происходит так же удаление привязок ресурсов (баннеров и ссылок для редиректа) к этому расписанию, на всех порталах, где это расписание используется.

Пользователям, не имеющим права на редактирование расписаний не будут отображаться кнопки для сохранения изменений и удаления расписаний.


Сервис оплаты


Портал поддерживает возможность авторизации пользователя на портале только после прохождения процедуры оплаты доступа с помощью сервиса Сбербанка.

Чтобы активировать работу сервисов оплаты, необходимо установить флаг “Включить интеграцию со Сбербанком”

Тип среды - выбор среды работы функционала оплаты. Для тестирования данного функционала выбирается среда "Тестовая",для обращения к тестовому API Сбербанка. Для использования в эксплуатации используется среда "Промышленная" для реальной оплаты услуг клиентами.
Имя пользователя - логин пользователя платформы Сбербанка с суффиксом -api
Пароль - пароль пользователя платформы Сбербанка




Тарифные планы




На данной вкладке выбираются тарифные планы, содержащие различные ограничения для доступа, которые будут предложены пользователю при подключении к SSID в режиме Hotspot, которому сопоставлен данный WEB-портал.

В поле «Название тарифа на портале» можно задать название тарифного плана, которое будет отображаться пользователю при регистрации на портале. Тарифные планы для "Точек доступа" настраиваются в личном кабинете и через систему Eltex.EMS. Тарифные планы PCRF, настраиваются только в личном кабинете.  На одном портале можно активировать несколько тарифных планов. 

К порталу обязательно должен быть привязан хотя бы один Тарифный План, иначе портал не будет функционировать, и у пользователей будет отображаться ошибка.

Для добавления нового тарифного плана нужно нажать кнопку "Добавить".  В диалоговом окне в чекбоксах выбрать тарифные планы, подтвердить выбор нажатием кнопки "Добавить" в диалоговом окне.


 Примечание

Параметры "Приоритет" и "Условие" могут быть использованы только при включенной интеграции с платформой SPAR. Подробнее: v1.33_Настройка интеграции с API SPAR

Опросы


В разделе Опросы доступен интерфейс для управления опросами:

В левой части указаны опросы, привязанные к выбранному порталу, в правой части указаны все опросы, доступные для управления.

Создание опроса

Для создания опроса необходимо нажать на кнопку Создать опрос.

В открывшемся редакторе указываются следующие настройки:

  • Название - название опроса.
  • Домен - домен опроса. При редактировании существующего опроса данный параметр изменять нельзя. Домен опроса должен быть в том же домене, что и портал, либо в его поддомене. 
  • Язык - определяет языковую видимость опроса, а также локализацию надписей в web-интерфейсе. При редактировании существующего опроса данный параметр изменять нельзя.
  • Приветствие на начальной странице - текст, который будет показан пользователю перед прохождением опроса. Если оставить поле пустым, страница приветствия отображаться не будет.

Возможные типы вопросов:

  • Один из списка: выбор одного варианта ответа из предложенных.
  • Один из списка (радио): выбор одного варианта ответа из предложенных в виде радио-кнопок с возможностью ввода собственного варианта ответа.
  • Несколько из списка: выбор нескольких (в том числе всех) вариантов из предложенных с возможностью ввода собственного варианта ответа.
  • Текст: ввод произвольного текста.
  • Шкала: выставление оценки. Классический пример: "Оцените качество обслуживания" со шкалой оценок от 1 до 10.
  • Один из списка (изображение): выбор одного изображения из предложенных
  • Несколько из списка (изображение): выбор нескольких (в том числе всех) изображений из предложенных

Каждый вопрос может быть обязательным, для этого необходимо установить соответствующий флаг. Если вопрос помечен как обязательный, то пользователь обязан дать на него ответ, прежде чем сможет перейти к следующему вопросу. Чтобы подтвердить отправку результатов, все обязательные вопросы должны быть отвечены. Необязательные вопросы можно пропускать.

Сервис поддерживает использование текста в вопросах и текста\изображений в ответах. Поддерживаются следующие форматы изображений:

  • PNG
  • JPEG
  • GIF
  • SVG

Максимальный размер загружаемого изображения задаётся в конфигурационном файле в параметре maxSize секции images.

Просмотр опроса

На всех этапах работы с  опросами доступен предварительный просмотр опросов. Нажатие на кнопку Просмотр открывает предварительный просмотр опроса в том виде, в котором его увидит пользователь:

Просмотр статистики

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

Статистика ответов на вопросы типов один из списка, один из списка (радио), несколько из списка отображается в виде круговой диаграммы. В легенде отображается не более 7 вариантов ответа. Если вариантов больше, то в легенду добавляется пагинация.

Если на вопрос можно дать собственный ответ, то эти ответы буду выведены в отдельный сектор (их количество будет учтено), а сами ответы будут приведены в отдельном списке под диаграммой:

Статистика ответов на вопросы с изображениями отображается в виде круговой диаграммы. В центре круговой диаграммы отображается изображение, соответствующее выбранному сектору. Чтобы открыть изображение в полном размере, необходимо щёлкнуть по нему.

Статистика ответов на вопросы типа текст отображается в виде обычного списка:

Статистика ответов на вопросы типа шкала отображается в виде гистограммы:

Есть возможность сбросить результаты статистики опроса, за это отвечает кнопка Сбросить.

Возможен экспорт статистики в формат CSV, за это отвечает кнопка Экспорт.


Внешний вид


Набор инструментов, позволяющий изменять внешний вид и содержание страниц порталов.


Финальный баннер и финальный промо баннер доступны для настройки при активации в общих настройках страницы "Поздравление"

Выбор языка для редактирования



Виртуальный портал имеет мультиязычный интерфейс, Wi-Fi пользователь может самостоятельно выбрать отображаемый язык. Для того чтобы проводить настройку страниц портала отдельно на каждом языке, на всех страницах портала есть меню выбора языка . При использовании режима «Все языки», изменения на странице будут применены ко всем языкам. Этот режим удобен для настройки внешнего вида портала (страница Регистрация). При выборе конкретного языка изменения будут вносится только этого языка. При изменении содержимого текстовых полей изменения всегда будут сохраняться только в один из выбранных языков, если выбран режим "Все языки", то изменения будут сохраняться только в русский язык.


Превью


Используется для настройки портала, а также оценки отображения виртуального портала на устройствах пользователей.

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


Под пиктограммами располагается меню выбора страницы портала . При портальной авторизации у абонента друг за другом отображаются различные страницы портала, отвечающие за определенный этап авторизации (Страница входа, страница ввода кода SMS, финальная страница, страница "Добро пожаловать", Выбор способа оплаты, страница окончания сессии, пользовательское соглашение):


Настройка элементов


Пример редактирования сообщения на странице "Добро пожаловать"

В результате откроется окно для редактирования текста, в котором мы можем исправить приветствие:

В результате будет получено:

При наведении указателя мыши на элементы портала в превью можно заметить отображение специальной пиктограммы . Этот символ означает, что данный элемент может быть изменен пользователем. Таким способом могут быть изменены изображения, используемые для баннеров, а также многие текстовые поля на портале. Следует обратить внимание, что некоторые текстовые поля являются стандартными для всех порталов, например, пояснительные тексты при регистрации/авторизации - эти тексты редактировать нельзя. Кроме этого, текст "Пользовательского соглашения" должен изменяться централизованно для всей системы, поэтому он может быть изменен только суперпользователем системы и только в портале 'default', откуда он будет получен всеми остальными порталами.

Инструменты для настройки

Настройка цвета

Для изменения цвета элементов следует использовать пиктограмму в виде закрашенного квадрата (отображает текущий выбранный цвет): . При нажатии на пиктограмму откроется окно выбора цвета. Элементы окна:

  1. Палитра - наглядно показывает выбираемый цвет, цвет может быть выбрано простым кликом.
  2. Кодовое значение в стандарте RGB/HSB - цвет может быть указан в цифровом виде.
  3. Индекс - представление цвета в виде индекса. Индекс цвета может быть введено вручную.
  4. Настройка насыщенности - слева направо цвет изменяется от 0% (прозрачный) до 100% (непрозрачный).
Выбор изображения/видео

Для выбора нового изображения/видео, или изменения уже используемого используется пиктограмма . При ее нажатии откроется окно для выбора изображения из галереи и его обрезки. Выберите нужное изображение/видео и установите его, нажав кнопку .


Обрезка изображения

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

В окне обрезки изображения установите необходимые границы обрезки, используя выделение границ курсором или переместив область выделения и растянув её границы. 

Разделы

Общие


В данном разделе настраиваются:

  • Язык - выбирается язык, для которого выполняется настройка. Если выбрано "Все языки" настройка выполняется для всех языков.
  • Тема - выбор темы портала.
  • Дополнительные CSS - загрузка в виртуальный портал css файлов, переопределяющих настройки отображения элементов виртуального портала.
  • Дополнительный JavaScript - загрузка в виртуальный портал JavaScript файла, переопределяющих настройки отображения элементов виртуального портала.
  • Цвет фона страницы - настраивается цвет фона страницы.
  • Цвет фона шапки - настраивается цвет фона шапки страницы.
  • Таймаут начального промо баннера - время демонстрации начального промо баннера. Пользователь может закрыть его ранее истечения данного времени.
  • Таймаут финального промо баннера - время демонстрации финального промо баннера. Пользователь может закрыть его ранее истечения данного времени. Отображается только если включена страница "Поздравление".
  • Для расписания: - выбор расписания, для которого будет выполняться настройка ниже приведенных параметров. Если существует расписание, но для него не выбраны никакие настройки - они будут наследоваться от настроенных в дефолтном расписании "Без расписания".
  • Значок (favicon) - значок, отображаемый в заголовке страницы в браузере пользователя. Также этот значок будет использоваться при отображении портала в Конструкторе. Для того чтобы сменить значок, достаточно кликнуть на его превью, после этого будет открыта галерея для выбора другого изображения.
  • Фоновое изображение страницы - фоновое изображение/видео страницы портала.
  • Фоновое изображение шапки - настройка полосы сверху с выбором языка и логотипом.
  • Баннеры: - оглавление настроек баннеров.
  • Верхний - располагается над меню пользователя (2).
  • Левый - располагается слева от меню пользователя (1). Не отображается в мобильной версии. В версии для планшетов отображается только если выключен правый баннер.
  • Правый - располагается справа от меню пользователя (3). Не отображается в мобильной версии. В версии для планшетов отображается только если выключен левый баннер.
  • Нижний - располагается под меню пользователя (4).
  • Финальный - располагается под нижним баннером на странице "Поздравление". (Отображается только если включена страница "Поздравление").
  • Промо баннеры: - оглавление настроек промо баннеров.
  • Начальный - баннер, отображаемый при редиректе пользователя на портал на первой странице с формой регистрации.
  • Финальный - баннер, отображаемый поле выполнения пользователем регистрации, после редиректа на страницу "Поздравление". (Отображается только если включена страница "Поздравление").


Все "финальные" баннеры будут отображаться только при включенной страницы "Поздравление" в  разделе "Общие настройки → Страницы". 

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


В качестве изображения баннера или фона можно вставить картинку в формате GIF, которая будет динамично меняться на странице пользователя, например:

Настройка баннеров

Для добавления еще отсутствующего на портале баннера или для редактирования одного из уже добавленных нужно нажать на пиктограмму рядом с названием баннера (верхний, левый, правый, нижний, финальный*). Уже добавленные баннеры отображаются на превью.

При добавлении нового баннера откроется окно редактирования, для того что бы добавить изображение используется кнопка , по нажатию которой откроется галерея для выбора изображений. Баннер может содержать несколько изображений, при такой конфигурации они будут сменять друг друга. На портале смена изображений на всех баннерах будет происходить синхронно. Изображения, используемые в одном баннере должны иметь одинаковый размер по ширине и высоте (в пикселях).

Для изменения уже добавленного изображения/видео нужно использовать кнопку , а для удаления .


Для добавления промо-баннеров на "Страницу входа" ("Начального") или страницу "Поздравление" ("Финального") нужно нажать на пиктограмму рядом с названием баннера. Баннерам можно задать таймаут автоматического закрытия (по умолчанию - 10 сек; минимальный - 5 сек). Промо-баннеры также могут быть привязаны к языку/расписанию. 

Также есть возможность предпросмотра промо-баннера в конструкторе: для этого нужно нажать на пиктограмму


По умолчанию, в окне редактирования предлагается настраивать баннеры для режима "Без расписания". При настройке баннера можно выбрать другое расписание, заранее преднастроенное в разделе расписаний портала . При выборе дополнительного расписания оно будет привязано к порталу, а в рабочее время этого расписания будут отображаться только те баннеры, которые настроены для работы в нем.

Таким образом, если для одного из баннеров было добавлено использование расписания, а для других нет, в рабочее время этого расписания эти баннеры отображаться не будут. То есть, если баннеров по текущему расписанию нет, то будут показаны баннеры, настроенные для режима "Без расписания".

После выбора нужных изображений/видео, следует нажать на кнопку "Применить".

Следует помнить, что изображения должны быть одного размера. К примеру, если первое изображение в "настройке баннера" имеет размер 400px * 200px, то второе и последующие должны иметь точно такие же размеры ( 400px * 200px).
Для этого при обрезке изображений баннера есть кнопка . Нажав её можно выбрать изображение/видео, с которого будут скопированы параметры области выделения для обрезки изображения.


Текст

  • Содержимое - текст, отображаемый на странице регистрации пользователя. Настраивается через стандартную форму набора текста.
  • Заголовок формы регистрации - текст, отображаемый на странице регистрации пользователя по номеру телефона. Настраивается через стандартную форму набора текста.
  • Заголовок формы авторизации - текст, отображаемый на странице авторизации пользователя по учетной записи. Настраивается через стандартную форму набора текста.
  • Фон - цвет фоновой подложки для области с текстом и элементами управления.
  • Обычный - цвет и шрифт, используемые для отображения основного текста на портале.
  • Заголовки - цвет и шрифт, используемые для отображения заголовков страниц.
  • Ссылки - цвет ссылок на странице (используется шрифт основного текста).
  • Заголовок формы авторизации - заголовок страницы регистрации, который будет отображаться в браузере.


Поля ввода

  • Текст - цвет и шрифт текста в полях ввода
  • Фон - цвет фона полей ввода
  • Рамка - цвет и ширина рамки полей ввода
  • Закругление - радиус закругления углов в полях ввода
  • Надпись у поля "Имя пользователя" - надпись, отображаемая рядом с полем, в котором указывается логин пользователя. Параметр может быть изменен только если выбран определенный язык для редактирования.
  • Надпись у поля "Пароль" - надпись, отображаемая рядом с полем, в котором указывается пароль пользователя. Параметр может быть изменен только если выбран определенный язык для редактирования.
  • Надпись у поля "Фамилия" - надпись, отображаемая рядом с полем, в котором указывается фамилия пользователя. Параметр может быть изменен только если выбран определенный язык для редактирования.
  • Надпись у поля "Номер комнаты" - надпись, отображаемая рядом с полем, в котором указывается номер комнаты пользователя. Параметр может быть изменен только если выбран определенный язык для редактирования.
  • Отображать пример заполнения номера телефона - включает/выключает отображение подсказки в виде номера телефона "+7123456789" в поле ввода номера телефона при открытии соответствующей страницы авторизации портала. При отключении настройки будет отображаться только код страны. Параметр может быть изменен только если выбраны "Все языки", соответственно настройка меняется сразу для всех языков.


Кнопки


  • Рамка - цвет и ширина рамки кнопок.
  • Закругление - радиус закругления углов кнопок.
  • Текст кнопки "По учетной записи" -текст, отображаемый на кнопке, включающий режим авторизации по уже существующей учетной записи.
  • Текст кнопки "По номеру телефона" - текст. отображаемый на кнопке для регистрации на портале новой учетной записи.
  • Текст - цвет текста на кнопках
  • Фон - основной цвет кнопки
  • Градиент - (если включен) создает градиентный переход на кнопке
  • Выбрать заготовку - выбрать заранее заготовленные шаблоны цветового оформления кнопок


Тема


Функция выбора отображения портала из готовых тем.


Дополнительные CSS


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

Чтобы отменить изменения, сделанные загрузкой css файла, необходимо загрузить пустой файл.


Дополнительный JavaScript


Функция загрузки в виртуальный портал JavaScript файла, переопределяющих настройки отображения элементов виртуального портала. Это позволяет изменить сценарий отображения элементов портала, для которых не реализовано настройки.

Чтобы отменить изменения, сделанные загрузкой JavaScript файла, необходимо загрузить пустой файл.

Метрики сервиса

Метрики сервиса доступны по ссылке:

http://<IP-адрес сервиса>:9001/epadmin/actuator/prometheus

Пример вывода метрик:

Пример вывода метрик
# HELP hikaricp_connections_pending Pending threads
# TYPE hikaricp_connections_pending gauge
hikaricp_connections_pending{application="portal-constructor",pool="HikariPool-1",} 0.0
# HELP jvm_classes_unloaded_classes_total The total number of classes unloaded since the Java virtual machine has started execution
# TYPE jvm_classes_unloaded_classes_total counter
jvm_classes_unloaded_classes_total{application="portal-constructor",} 0.0
# HELP sso_auth_requests_count_total Outgoing auth requests to SSO count
# TYPE sso_auth_requests_count_total counter
sso_auth_requests_count_total{application="portal-constructor",status="success",} 3.0
# HELP jvm_threads_states_threads The current number of threads having NEW state
# TYPE jvm_threads_states_threads gauge
jvm_threads_states_threads{application="portal-constructor",state="terminated",} 0.0
jvm_threads_states_threads{application="portal-constructor",state="blocked",} 0.0
jvm_threads_states_threads{application="portal-constructor",state="waiting",} 4.0
jvm_threads_states_threads{application="portal-constructor",state="timed-waiting",} 18.0
jvm_threads_states_threads{application="portal-constructor",state="new",} 0.0
jvm_threads_states_threads{application="portal-constructor",state="runnable",} 10.0
# HELP jvm_buffer_total_capacity_bytes An estimate of the total capacity of the buffers in this pool
# TYPE jvm_buffer_total_capacity_bytes gauge
jvm_buffer_total_capacity_bytes{application="portal-constructor",id="mapped",} 0.0
jvm_buffer_total_capacity_bytes{application="portal-constructor",id="direct",} 133970.0
# HELP jvm_memory_used_bytes The amount of used memory
# TYPE jvm_memory_used_bytes gauge
jvm_memory_used_bytes{application="portal-constructor",area="nonheap",id="Code Cache",} 2.8019904E7
jvm_memory_used_bytes{application="portal-constructor",area="heap",id="G1 Old Gen",} 5.8731648E7
jvm_memory_used_bytes{application="portal-constructor",area="nonheap",id="Compressed Class Space",} 1.8650784E7
jvm_memory_used_bytes{application="portal-constructor",area="nonheap",id="Metaspace",} 1.2590832E8
jvm_memory_used_bytes{application="portal-constructor",area="heap",id="G1 Survivor Space",} 2.3068672E7
jvm_memory_used_bytes{application="portal-constructor",area="heap",id="G1 Eden Space",} 2.07618048E8
# HELP jvm_gc_max_data_size_bytes Max size of long-lived heap memory pool
# TYPE jvm_gc_max_data_size_bytes gauge
jvm_gc_max_data_size_bytes{application="portal-constructor",} 2.147483648E9
# HELP jetty_threads_jobs Number of jobs queued waiting for a thread
# TYPE jetty_threads_jobs gauge
jetty_threads_jobs{application="portal-constructor",} 0.0
# HELP sso_token_requests_count_total Count by statuses of requests to get token
# TYPE sso_token_requests_count_total counter
sso_token_requests_count_total{application="portal-constructor",status="200",} 1.0
# HELP hikaricp_connections_max Max connections
# TYPE hikaricp_connections_max gauge
hikaricp_connections_max{application="portal-constructor",pool="HikariPool-1",} 10.0
# HELP jetty_threads_current The total number of threads in the pool
# TYPE jetty_threads_current gauge
jetty_threads_current{application="portal-constructor",} 8.0
# HELP jvm_threads_live_threads The current number of live threads including both daemon and non-daemon threads
# TYPE jvm_threads_live_threads gauge
jvm_threads_live_threads{application="portal-constructor",} 32.0
# HELP process_start_time_seconds Start time of the process since unix epoch.
# TYPE process_start_time_seconds gauge
process_start_time_seconds{application="portal-constructor",} 1.684312096861E9
# HELP sso_refresh_token_request_processed_seconds_max Timer of processing request to refresh tokens
# TYPE sso_refresh_token_request_processed_seconds_max gauge
sso_refresh_token_request_processed_seconds_max{application="portal-constructor",} 0.057734424
# HELP sso_refresh_token_request_processed_seconds Timer of processing request to refresh tokens
# TYPE sso_refresh_token_request_processed_seconds summary
sso_refresh_token_request_processed_seconds_count{application="portal-constructor",} 2.0
sso_refresh_token_request_processed_seconds_sum{application="portal-constructor",} 0.079639912
# HELP hikaricp_connections_acquire_seconds Connection acquire time
# TYPE hikaricp_connections_acquire_seconds summary
hikaricp_connections_acquire_seconds_count{application="portal-constructor",pool="HikariPool-1",} 15.0
hikaricp_connections_acquire_seconds_sum{application="portal-constructor",pool="HikariPool-1",} 0.003492551
# HELP hikaricp_connections_acquire_seconds_max Connection acquire time
# TYPE hikaricp_connections_acquire_seconds_max gauge
hikaricp_connections_acquire_seconds_max{application="portal-constructor",pool="HikariPool-1",} 0.0
# HELP jvm_gc_memory_allocated_bytes_total Incremented for an increase in the size of the (young) heap memory pool after one GC to before the next
# TYPE jvm_gc_memory_allocated_bytes_total counter
jvm_gc_memory_allocated_bytes_total{application="portal-constructor",} 3.155165184E9
# HELP jvm_memory_committed_bytes The amount of memory in bytes that is committed for the Java virtual machine to use
# TYPE jvm_memory_committed_bytes gauge
jvm_memory_committed_bytes{application="portal-constructor",area="nonheap",id="Code Cache",} 2.818048E7
jvm_memory_committed_bytes{application="portal-constructor",area="heap",id="G1 Old Gen",} 1.98180864E8
jvm_memory_committed_bytes{application="portal-constructor",area="nonheap",id="Compressed Class Space",} 1.9349504E7
jvm_memory_committed_bytes{application="portal-constructor",area="nonheap",id="Metaspace",} 1.2992512E8
jvm_memory_committed_bytes{application="portal-constructor",area="heap",id="G1 Survivor Space",} 2.3068672E7
jvm_memory_committed_bytes{application="portal-constructor",area="heap",id="G1 Eden Space",} 3.15621376E8
# HELP process_cpu_usage The "recent cpu usage" for the Java Virtual Machine process
# TYPE process_cpu_usage gauge
process_cpu_usage{application="portal-constructor",} 9.097128218563963E-4
# HELP jetty_threads_busy The number of busy threads in the pool
# TYPE jetty_threads_busy gauge
jetty_threads_busy{application="portal-constructor",} 3.0
# HELP jvm_gc_live_data_size_bytes Size of long-lived heap memory pool after reclamation
# TYPE jvm_gc_live_data_size_bytes gauge
jvm_gc_live_data_size_bytes{application="portal-constructor",} 3.9321592E7
# HELP log4j2_events_total Number of fatal level log events
# TYPE log4j2_events_total counter
log4j2_events_total{application="portal-constructor",level="error",} 2.0
log4j2_events_total{application="portal-constructor",level="fatal",} 0.0
log4j2_events_total{application="portal-constructor",level="debug",} 72.0
log4j2_events_total{application="portal-constructor",level="trace",} 0.0
log4j2_events_total{application="portal-constructor",level="info",} 7.0
log4j2_events_total{application="portal-constructor",level="warn",} 1.0
# HELP hikaricp_connections_min Min connections
# TYPE hikaricp_connections_min gauge
hikaricp_connections_min{application="portal-constructor",pool="HikariPool-1",} 1.0
# HELP jvm_gc_memory_promoted_bytes_total Count of positive increases in the size of the old generation memory pool before GC to after GC
# TYPE jvm_gc_memory_promoted_bytes_total counter
jvm_gc_memory_promoted_bytes_total{application="portal-constructor",} 3.2882248E7
# HELP jvm_buffer_count_buffers An estimate of the number of buffers in the pool
# TYPE jvm_buffer_count_buffers gauge
jvm_buffer_count_buffers{application="portal-constructor",id="mapped",} 0.0
jvm_buffer_count_buffers{application="portal-constructor",id="direct",} 14.0
# HELP hikaricp_connections_idle Idle connections
# TYPE hikaricp_connections_idle gauge
hikaricp_connections_idle{application="portal-constructor",pool="HikariPool-1",} 1.0
# HELP hikaricp_connections_creation_seconds_max Connection creation time
# TYPE hikaricp_connections_creation_seconds_max gauge
hikaricp_connections_creation_seconds_max{application="portal-constructor",pool="HikariPool-1",} 0.0
# HELP hikaricp_connections_creation_seconds Connection creation time
# TYPE hikaricp_connections_creation_seconds summary
hikaricp_connections_creation_seconds_count{application="portal-constructor",pool="HikariPool-1",} 0.0
hikaricp_connections_creation_seconds_sum{application="portal-constructor",pool="HikariPool-1",} 0.0
# HELP jvm_threads_daemon_threads The current number of live daemon threads
# TYPE jvm_threads_daemon_threads gauge
jvm_threads_daemon_threads{application="portal-constructor",} 14.0
# HELP http_server_requests_seconds  
# TYPE http_server_requests_seconds summary
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/main.htm",} 1.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/main.htm",} 5.125024727
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/css/**",} 15.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/css/**",} 0.251421959
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/idle",} 2.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/idle",} 0.004235423
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/font-awesome/**",} 2.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/font-awesome/**",} 0.0324492
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="REDIRECTION",} 1.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="REDIRECTION",} 0.282569648
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/js/**",} 23.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/js/**",} 0.32053385
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="POST",outcome="SUCCESS",status="200",uri="/async",} 2.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="POST",outcome="SUCCESS",status="200",uri="/async",} 0.436798899
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 2.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 0.115174388
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="POST",outcome="REDIRECTION",status="302",uri="REDIRECTION",} 1.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="POST",outcome="REDIRECTION",status="302",uri="REDIRECTION",} 0.025991596
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/sso_logout",} 1.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/sso_logout",} 0.004331489
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/img/**",} 4.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/img/**",} 0.027728521
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/",} 1.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/",} 0.009191531
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/sso",} 4.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/sso",} 7.197468833
http_server_requests_seconds_count{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/login.htm",} 1.0
http_server_requests_seconds_sum{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/login.htm",} 0.121628697
# HELP http_server_requests_seconds_max  
# TYPE http_server_requests_seconds_max gauge
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/main.htm",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/css/**",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/idle",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/font-awesome/**",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="REDIRECTION",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/js/**",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="POST",outcome="SUCCESS",status="200",uri="/async",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="POST",outcome="REDIRECTION",status="302",uri="REDIRECTION",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/sso_logout",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="GET",outcome="SUCCESS",status="200",uri="/img/**",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/sso",} 0.0
http_server_requests_seconds_max{application="portal-constructor",exception="None",method="GET",outcome="REDIRECTION",status="302",uri="/login.htm",} 0.0
# HELP jvm_gc_pause_seconds Time spent in GC pause
# TYPE jvm_gc_pause_seconds summary
jvm_gc_pause_seconds_count{action="end of minor GC",application="portal-constructor",cause="G1 Evacuation Pause",} 10.0
jvm_gc_pause_seconds_sum{action="end of minor GC",application="portal-constructor",cause="G1 Evacuation Pause",} 0.869
jvm_gc_pause_seconds_count{action="end of minor GC",application="portal-constructor",cause="Metadata GC Threshold",} 2.0
jvm_gc_pause_seconds_sum{action="end of minor GC",application="portal-constructor",cause="Metadata GC Threshold",} 0.126
# HELP jvm_gc_pause_seconds_max Time spent in GC pause
# TYPE jvm_gc_pause_seconds_max gauge
jvm_gc_pause_seconds_max{action="end of minor GC",application="portal-constructor",cause="G1 Evacuation Pause",} 0.0
jvm_gc_pause_seconds_max{action="end of minor GC",application="portal-constructor",cause="Metadata GC Threshold",} 0.0
# HELP jetty_threads_config_min The minimum number of threads in the pool
# TYPE jetty_threads_config_min gauge
jetty_threads_config_min{application="portal-constructor",} 8.0
# HELP hikaricp_connections_timeout_total Connection timeout total count
# TYPE hikaricp_connections_timeout_total counter
hikaricp_connections_timeout_total{application="portal-constructor",pool="HikariPool-1",} 0.0
# HELP jvm_classes_loaded_classes The number of classes that are currently loaded in the Java virtual machine
# TYPE jvm_classes_loaded_classes gauge
jvm_classes_loaded_classes{application="portal-constructor",} 26504.0
# HELP system_cpu_usage The "recent cpu usage" for the whole system
# TYPE system_cpu_usage gauge
system_cpu_usage{application="portal-constructor",} 0.025784337270484466
# HELP process_files_max_files The maximum file descriptor count
# TYPE process_files_max_files gauge
process_files_max_files{application="portal-constructor",} 1048576.0
# HELP sso_token_request_processed_seconds_max Timer of processing request to get token
# TYPE sso_token_request_processed_seconds_max gauge
sso_token_request_processed_seconds_max{application="portal-constructor",} 0.119045246
# HELP sso_token_request_processed_seconds Timer of processing request to get token
# TYPE sso_token_request_processed_seconds summary
sso_token_request_processed_seconds_count{application="portal-constructor",} 1.0
sso_token_request_processed_seconds_sum{application="portal-constructor",} 0.119045246
# HELP process_files_open_files The open file descriptor count
# TYPE process_files_open_files gauge
process_files_open_files{application="portal-constructor",} 60.0
# HELP jvm_buffer_memory_used_bytes An estimate of the memory that the Java virtual machine is using for this buffer pool
# TYPE jvm_buffer_memory_used_bytes gauge
jvm_buffer_memory_used_bytes{application="portal-constructor",id="mapped",} 0.0
jvm_buffer_memory_used_bytes{application="portal-constructor",id="direct",} 133971.0
# HELP hikaricp_connections_usage_seconds Connection usage time
# TYPE hikaricp_connections_usage_seconds summary
hikaricp_connections_usage_seconds_count{application="portal-constructor",pool="HikariPool-1",} 15.0
hikaricp_connections_usage_seconds_sum{application="portal-constructor",pool="HikariPool-1",} 0.063
# HELP hikaricp_connections_usage_seconds_max Connection usage time
# TYPE hikaricp_connections_usage_seconds_max gauge
hikaricp_connections_usage_seconds_max{application="portal-constructor",pool="HikariPool-1",} 0.0
# HELP system_cpu_count The number of processors available to the Java virtual machine
# TYPE system_cpu_count gauge
system_cpu_count{application="portal-constructor",} 2.0
# HELP sso_authorization_processed_seconds Timer of processing authorization from moment of redirect back
# TYPE sso_authorization_processed_seconds summary
sso_authorization_processed_seconds_count{application="portal-constructor",} 1.0
sso_authorization_processed_seconds_sum{application="portal-constructor",} 7.102272626
# HELP sso_authorization_processed_seconds_max Timer of processing authorization from moment of redirect back
# TYPE sso_authorization_processed_seconds_max gauge
sso_authorization_processed_seconds_max{application="portal-constructor",} 7.102272626
# HELP jetty_threads_config_max The maximum number of threads in the pool
# TYPE jetty_threads_config_max gauge
jetty_threads_config_max{application="portal-constructor",} 200.0
# HELP jvm_threads_peak_threads The peak live thread count since the Java virtual machine started or peak was reset
# TYPE jvm_threads_peak_threads gauge
jvm_threads_peak_threads{application="portal-constructor",} 44.0
# HELP hikaricp_connections_active Active connections
# TYPE hikaricp_connections_active gauge
hikaricp_connections_active{application="portal-constructor",pool="HikariPool-1",} 0.0
# HELP sso_refresh_tokens_requests_count_total Count by statuses of requests to refresh tokens
# TYPE sso_refresh_tokens_requests_count_total counter
sso_refresh_tokens_requests_count_total{application="portal-constructor",status="200",} 2.0
# HELP sso_redirects_back_count_total Redirects back from SSO count
# TYPE sso_redirects_back_count_total counter
sso_redirects_back_count_total{application="portal-constructor",} 1.0
# HELP sso_authorization_results_count_total Authorizations by SSO statuses
# TYPE sso_authorization_results_count_total counter
sso_authorization_results_count_total{application="portal-constructor",status="success",} 1.0
# HELP sso_user_info_request_processed_seconds Timer of processing request to get user info
# TYPE sso_user_info_request_processed_seconds summary
sso_user_info_request_processed_seconds_count{application="portal-constructor",} 1.0
sso_user_info_request_processed_seconds_sum{application="portal-constructor",} 0.005407571
# HELP sso_user_info_request_processed_seconds_max Timer of processing request to get user info
# TYPE sso_user_info_request_processed_seconds_max gauge
sso_user_info_request_processed_seconds_max{application="portal-constructor",} 0.005407571
# HELP process_uptime_seconds The uptime of the Java virtual machine
# TYPE process_uptime_seconds gauge
process_uptime_seconds{application="portal-constructor",} 820.686
# HELP sso_user_info_requests_count_total Count by statuses of requests to receive user info
# TYPE sso_user_info_requests_count_total counter
sso_user_info_requests_count_total{application="portal-constructor",status="200",} 1.0
# HELP system_load_average_1m The sum of the number of runnable entities queued to available processors and the number of runnable entities running on the available processors averaged over a period of time
# TYPE system_load_average_1m gauge
system_load_average_1m{application="portal-constructor",} 0.0556640625
# HELP jvm_memory_max_bytes The maximum amount of memory in bytes that can be used for memory management
# TYPE jvm_memory_max_bytes gauge
jvm_memory_max_bytes{application="portal-constructor",area="nonheap",id="Code Cache",} 2.5165824E8
jvm_memory_max_bytes{application="portal-constructor",area="heap",id="G1 Old Gen",} 2.147483648E9
jvm_memory_max_bytes{application="portal-constructor",area="nonheap",id="Compressed Class Space",} 1.073741824E9
jvm_memory_max_bytes{application="portal-constructor",area="nonheap",id="Metaspace",} -1.0
jvm_memory_max_bytes{application="portal-constructor",area="heap",id="G1 Survivor Space",} -1.0
jvm_memory_max_bytes{application="portal-constructor",area="heap",id="G1 Eden Space",} -1.0
# HELP jetty_threads_idle The number of idle threads in the pool
# TYPE jetty_threads_idle gauge
jetty_threads_idle{application="portal-constructor",} 4.0
# HELP hikaricp_connections Total connections
# TYPE hikaricp_connections gauge
hikaricp_connections{application="portal-constructor",pool="HikariPool-1",} 1.0

Пример настройки подключения Prometheus:

scrape_configs:
  - job_name: 'portal-constructor'
    scrape_interval: 10s
    metrics_path: '/epadmin/actuator/prometheus'
    static_configs:
      - targets: ['100.123.0.2:9001']

Докеризация сервиса

Сервис может быть запущен в docker-контейнере. Для этого необходимо подготовить файл с переменными окружения .env и docker-compose.yml

docker-compose.yml
version: "3"
services:
  eltex-portal-constructor:
    container_name: eltex-portal-constructor
    image: hub.eltex-co.ru/softwlc/eltex-portal-constructor:1.21-<tag>
    ports:
      - 9001:${PORTAL_CONSTRUCTOR_PORT}
      - 9444:${PORTAL_CONSTRUCTOR_HTTPS_PORT}
    environment:
      - PORT=${PORTAL_CONSTRUCTOR_PORT}
      - database.host=${PORTAL_CONSTRUCTOR_DATABASE_HOST}
      - database.port=${PORTAL_CONSTRUCTOR_DATABASE_PORT}
      - database.name=${PORTAL_CONSTRUCTOR_DATABASE_NAME}
      - database.user=${PORTAL_CONSTRUCTOR_DATABASE_USER}
      - database.password=${PORTAL_CONSTRUCTOR_DATABASE_PASSWORD}
      - jetty.https.port=${PORTAL_CONSTRUCTOR_HTTPS_PORT}
      - jetty.https.keystorePass=${PORTAL_CONSTRUCTOR_HTTPS_KEYSTORE_PASS}
      - jetty.https.keystoreFile=${PORTAL_CONSTRUCTOR_HTTPS_KEYSTORE_FILE}
      - validation.public_key=${PORTAL_CONSTRUCTOR_PUBLIC_KEY}
      - TZ=${TZ}
    volumes:
      - /etc/eltex-doors/keys/public.pem:${PORTAL_CONSTRUCTOR_PUBLIC_KEY}:ro


Вместо <tag> необходимо указать актуальную версию, которую можно посмотреть по ссылке.
.env
PORTAL_CONSTRUCTOR_PORT=9001

PORTAL_CONSTRUCTOR_HTTPS_PORT=9444
PORTAL_CONSTRUCTOR_HTTPS_KEYSTORE_PASS=12345
PORTAL_CONSTRUCTOR_HTTPS_KEYSTORE_FILE=/etc/eltex-portal-constructor/localhost.pfx

PORTAL_CONSTRUCTOR_PUBLIC_KEY=/etc/eltex-doors/keys/public.pem

PORTAL_CONSTRUCTOR_DATABASE_HOST=<ip-addr>
PORTAL_CONSTRUCTOR_DATABASE_PORT=3306
PORTAL_CONSTRUCTOR_DATABASE_NAME=ELTEX_PORTAL
PORTAL_CONSTRUCTOR_DATABASE_USER=javauser
PORTAL_CONSTRUCTOR_DATABASE_PASSWORD=javapassword

#Настройка часового пояса
TZ=Asia/Novosibirsk

Возможные переменные окружения:

Запуск сервиса

  • PORTAL_CONSTRUCTOR_PORT - порт, на котором будет стартовать сервис внутри контейнера
  • JAVA_INIT_HEAP - аргумент запуска JVM -Xms
  • JAVA_MAX_HEAP - аргумент запуска JVM -Xmx
  • JAVA_OPTS – другие аргументы запуска JVM (может перезаписать любые другие аргументы)

Логирование

  • LOG_LEVEL - уровень Root логера
  • GELF_HOST - хост подключения к Gelf
  • GELF_PORT - порт подключения к Gelf
  • GELF_LEVEL - уровень Gelf логера

Подключение к БД

  • PORTAL_CONSTRUCTOR_DATABASE_HOST - хост подключения к БД
  • PORTAL_CONSTRUCTOR_DATABASE_PORT - порт подключения к БД
  • PORTAL_CONSTRUCTOR_DATABASE_NAME - название БД
  • PORTAL_CONSTRUCTOR_DATABASE_USER - пользователь БД
  • PORTAL_CONSTRUCTOR_DATABASE_PASSWORD - пароль БД
  • database.pool.connectionTimeout - таймаут подключения к БД
  • database.pool.validationTimeout - таймаут валидации соединения с БД
  • database.pool.min - минимальное число idle соединений с БД в пуле
  • database.pool.max - максимальное число соединений с БД в пуле
  • database.cache.maxEntries - максимальное число простых кэшированных записей (для каждого типа запроса)
  • database.cache.maxResourceBytes - максимальный размер кэшированных ресурсов
  • database.cache.expireTime - максимальное время хранения записей в кэше

Конфигурация настроек входа в eltex-portal-constructor

  • login.maxAttemptsLogin - кол-во попыток входа в панель администратора до наступления блокировки
  • login.maxAttemptsIP - кол-во попыток входа с одного IP адреса до наступления блокировки
  • login.blockTime - продолжительность блокировки после достижения максимального числа попыток входа

Настройки SSO

  • sso.enabled - вкл/выкл вход по SSO
  • sso.provider - тип провайдера (rtk / keycloak)
  • sso.localLoginAllowed - разрешить/запретить локальную авторизацию при использовании SSO
  • sso.version - версия SSO
  • sso.rest.scheme - HTTP/HTTPS схема взаимодействия с API SSO
  • sso.rest.host - хост API SSO
  • sso.rest.port - порт API SSO
  • sso.rest.sso_api_path - path API SSO
  • sso.auth.scheme - схема URL аутентификации через SSO
  • sso.auth.host - хост URL аутентификации через SSO
  • sso.auth.port - port URL аутентификации через SSO
  • sso.auth.authentication_path - path URL аутентификации через SSO
  • sso.auth.logout_path - path URL деаутентификации (logout) через SSO
  • sso.params.client_id - ID клиентского приложения (КП) в системе SSO
  • sso.params.client_secret - секрет клиентского приложения (КП) в системе SSO
  • sso.params.redirect_uri - URL обратного перенаправления на КП после успешной аутентификации в системе SSO

Доступ через HTTPS

  • PORTAL_CONSTRUCTOR_HTTPS_PORT - HTTPS порт сервиса внутри контейнера
  • PORTAL_CONSTRUCTOR_HTTPS_KEYSTORE_PASS - пароль к KeyStore
  • PORTAL_CONSTRUCTOR_HTTPS_KEYSTORE_FILE - путь до KeyStore
  • jetty.https.keystoreType - тип KeyStore
  • jetty.https.keyAlias - алиас SSL сертификата
  • jetty.https.ciphers - список названий шифров

Валидация JWT

  • PORTAL_CONSTRUCTOR_PUBLIC_KEY - путь до public.pem ключа для валидации JWT

Настройка часового пояса

  • TZ - часовой пояс в формате Asia/Novosibirsk (список существующих можно посмотреть командой timedatectl list-timezones)


Файлы .env и docler-compose.yml должны находиться в одной папке. Контейнер запускается командой:

docker-compose up
 Deprecated

Авторизация на Конструкторе Порталов


Перед тем, как авторизоваться на Конструкторе порталов, который запущен в контейнере, необходимо добавить серверный адрес для eltex_auth_service в MySQL:

insert into eltex_auth_service.nas (nasname, shortname, secret) values('<IP-address>','docker', 'eltex');

  • для многохостовой установки (eltex_auth_service и eltex-portal-constructor находятся на разных хостах):

Вместо <IP-address> нужно вписать ip-адрес сервера, котором запущен контейнер с Конструктором Порталов.

  • для однохостовой установки (eltex_auth_service и eltex-portal-constructor находятся на одном хосте):

Вместо <IP-address> нужно вписать ip-адрес контейнера, внутри которого запущен Конструктором Порталов.

При этом следует учитывать, что при перезапуске контейнера, у него может смениться адрес, в таком, случае придется снова добавлять запись, но с другим ip-адресом.




  • Нет меток