Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Metadata list
hiddentrue
|| Device | SoftWLC |
|| DocMainTitle | Руководство администратора |
|| DocTitle3 | Eltex Portal |
|| fwversion | 1.1017 |
|| issueDate | 2623.1007.20172020 |

Описание

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

...

Блок кода
languagepy
collapsetrue
portal {
    defaultRedirectUrl = "http://eltex-co.ru"

    scheduler {
        tariffCheckerPeriod = 1440
}

1d
        paymentsCleanerPeriod = "0 0 * * * ?"
    }
}

jetty {
    https {
        port = 9443
        keystorePass = 12345
        keystoreFile = /etc/eltex-portal/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
        ]
    }

    accessLog {
        enabled = true
        directory = /var/log/eltex-portal/

        # <default> : NCSA format
        # <custom>  : customized NCSA with additional parameters
        format = default
        retainDays = 30
        append = false
        logCookies = true
        logAP = true
        logBRAS = true
    }
}

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

    readOnly = true

    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 = 2m
    }
}

// JWT validation. You need a key from Eltex Doors.
// Or you could generate it yourself.
validation {
   public_key = "etc/eltex-doors/keys/public.pem"


ПараметрыОписание
portal

defaultRedirectUrl

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

tariffCheckerPeriod

Интервал выполнения проверки наличия тарифных планов на порталах. В случае отсутствия тарифного плана формируется сообщение об ошибке
.
paymentsCleanerPeriodПериод очистки неудачных платежей в БД в cron-формате
jetty
https

Настройки работы контейнера по https. Необходимо указать расположение сертификата, ключ и прослушиваемый порт.

port - прослушиваемый порт

keystorePass - ключ от хранилища сертификатов

keystoreFile - файл хранилища, содержащий сертификат

keystoreType - тип хранилища

certAlias - алиас сертификата в хранилище

ciphers - поддерживаемые методы шифрования

accessLog

Логирование запросов на сервис.

enabled - статус логирования

directory - директория сохранения логов

format - форма логов default - стандартный формат NCSA, custom - расширенный формат для отладки

append - продолжение записи существующего файла после перезапуска сервиса

retrainDays - время хранения логов

append - дополнительная информация

logCookies - сохранение cookie в логах

logAP - сохранение заголовков переданных точкой доступа

logBRAS - сохранение данных, переданных BRAS'ом


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

readOnly

Статус подключения к базе данных

pool

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

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

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

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

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

cache

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

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

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

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

validation
public_keyПуть к файлу ключа сервиса eltex-doors для валидации токенов при обращении на портал других сервисов (eltex-johhny)



/etc/default/eltex-portal

...

Блок кода
languagejava
collapsetrue
<?xml version="1.0" encoding="UTF-8"?>

<configuration<Configuration monitorInterval="60010">

   <properties> <Properties>
        <Property name="rootLevel">ERROR</Property>

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

        <Property name="gelfLevel">INFO</Property>
        <Property name="gelfHost">udp:lab3-test.eltex.loc</Property>
        <Property name="gelfPort">12201</Property>
    </properties>Properties>

   <appenders> <Appenders>

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

        <RollingFile name="RollingFile"
                     fileName="${baseDir}/portal.log_ep.txt"
                     filePattern="${baseDir}/log/log_epportal-%i.txtlog.gz">
            <PatternLayout>
<PatternLayout pattern="${logPattern}"/>
            <Policies>
  <pattern>%d{ISO8601} [%t] %-5p %logger{12} %C{1}.%M(line:%L). %m%n</pattern>              <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
                <OnStartupTriggeringPolicy />
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}">
                <Delete basePath="${baseDir}" maxDepth="3">
                    <IfFileName glob="*/portal-*.log.gz">
                        <IfAny>
                            <IfAccumulatedFileSize exceeds="${accumulatedFileSize}"/>
            </PatternLayout>                <IfLastModified age="${lastModified}"/>
                        </IfAny>
            <Policies>        </IfFileName>
        <SizeBasedTriggeringPolicy size="${maxFileSize}"/        </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <RollingFile name="AccessRollingFile"
                     fileName="${baseDir}/access.log"
                     filePattern="${baseDir}/access/access_${dateSuffix}.log">
            <PatternLayout pattern="%m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}">
                <Delete basePath="${baseDir}" maxDepth="3">
                    <IfFileName glob="log*/access_ep-*.txt.gzlog">
                        <IfAny>
                            <IfAccumulatedFileSize exceeds="${accumulatedFileSize}"/>
                            <IfLastModified age="${lastModified}"/>
                        </IfAny>
                    </IfFileName>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

        <RollingFile name="AuthRollingFile"
                     fileName="${baseDir}/auth.log"
                     filePattern="${baseDir}/auth/auth_${dateSuffix}.log">
            <PatternLayout pattern="%d{ISO8601} %m%n"/>
         <IfAny>   <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
      <IfAccumulatedFileCount exceeds      </Policies>
            <DefaultRolloverStrategy max="${maxCount}">
                <Delete basePath="${baseDir}" maxDepth="3">
                    <IfFileName glob="*/auth_*.log">
                        <IfAny>
                            <IfAccumulatedFileSize exceeds="${accumulatedFileSize}"/>
                            <IfLastModified age="${lastModified}"/>
                        </IfAny>
                    </IfFileName>
                </Delete>
            </DefaultRolloverStrategy>
        </RollingFile>

    </appenders>    <Gelf name="Gelf" host="${gelfHost}" port="${gelfPort}" version="1.1" facility="eltex-portal"
              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>
<Root level="${rootLevel}">
            <AppenderRef ref="RollingFile"/>
            <AppenderRef ref="STDERR" level="WARNINGOFF"/>
            <AppenderRef ref="Gelf" level="${gelfLevel}"/>
        </Root>

        <Logger name="AccessLogger" additivity="false">
            <AppenderRef ref="AccessRollingFile"/>

            <!--"custom" for custom format with BRAS parameters and AP headers-->
            <!--"default" for NCSA format-->
            <Property name="format">default</Property>

            <!--Customizable parts of the access log-->
            <Property name="cookies">true</Property>
            <Property name="headers">true</Property>
            <Property name="bras">true</Property>
        </Logger>

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

        <Logger name="org.springframework" level="INFOERROR"/>
        <Logger name="netorg.sfeclipse.ehcachejetty"   level="ERROR"/>
        <Logger name="org.apache.tomcat"   level="ERROR"/>
        <Logger<logger name="orgio.eclipsegrpc.jettynetty"       level="INFOERROR"/>
        <Logger name="io.netty"            level="ERROR"/>

        <!--SQL logging-->
        <Logger name="org.jooq.tools.LoggerListener" level="OFF"/>

        <Logger name="jndi"       level="OFF"/>
        <Logger name="org.quartz" level="OFF"/>
        <Logger name="com.zaxxer" level="OFF"/>
        <Logger name="org.apache" level="OFF"/>

    </Loggers>

</configuration>Configuration>




ПараметрОписание
monitorInterval
Интервал автоматического перечитывания конфигурации логгера.
maxFileSize
Максимально допустимый размер файла. При его превышении создается новый файл. а старый архивируется
accumulatedFileSize
Суммарный размер логов (текущий файл + архивные). При его превышении наиболее старые файлы будут удаляться.
lastModified

Срок

хранения

логов,

файлы

модифицированные

раннее

этого

срока

будут

удаляться

.

maxCount
Максимальное количество архивных файлов, при его превышении наиболее старые файлы будут перезаписываться.
baseDir
Базовая директория хранения логов.


<AppenderRef ref="RollingFile" level="ERROR"/>
минимальный порог записи для всех логеров


Примечание

Политика ротирования, прописанная по-умолчанию для accesslog и authlog

Без форматирования
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            </Policies>

Указывает на ротацию логов раз в сутки. При использовании данной политики ограничение maxFileSize для актуального лога не отработает.

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

Без форматирования
            <Policies>
                <SizeBasedTriggeringPolicy size="${maxFileSize}"/>
            </Policies>



Описание ошибок в логах.

Логфайл: /var/log/eltex-portal/portal.log_ep.txt 

НазваниеЗначениеПример
CHECK LOGIN AND PSW IN smsc_gate.confПроблема доступности NGW к сервису отправки SMS сообщений2018-08-22T09:38:56,420 [SimpleContainerScope.Executor@266376052-35] ERROR org.eltex.portal.sms.SendSmsWithPswResponseHandler SendSmsWithPswResponseHandler.onResult(line:53). Error while sending message on number: 79529056800. ErrorCode: 10, errMessage: 79529056800. Received error code = 1. CHECK LOGIN AND PSW IN smsc_gate.conf. Error in the parameters of function of dispatch sms via http protocol
NGW_NOT_AVAILABLEПроблема доступности портала к сервису NGW2020-07-09T09:45:07,827 [qtp76432244-17] ERROR org.eltex.portal.sms.NotificationClient NotificationClient.getConfigurationInfo(line:527). Can`t connect to Ngw server with code: 1601 code 1601:NGW_NOT_AVAILABLE and reason: NgwException{FAILED: 'Protocol is not supported by the server: eltex-ngw-api#1.16.5'}

...