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

Конфигурационные файлы


/usr/lib/eltex-ems/conf/application.yml

Файл содержит настройки выбора порта для запуска ЕМС

application.yml
server:
  port: 8087


/usr/lib/eltex-ems/conf/config.txt

Файл содержит настройки пулов для подключения к базам данных.

/usr/lib/eltex-ems/conf/config.txt
# DB Event
poolName1=event
event.jdbc.driver=org.gjt.mm.mysql.Driver
event.jdbc.dbUrl=jdbc:mysql://localhost/eltex_alert?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&useSSL=false
event.jdbc.username=javauser
event.jdbc.password=javapassword
event.jdbc.maxPoolSize=32
event.jdbc.inUse=yes
# remote db host access with su privileges
# event.ssh.login=
# event.ssh.password=
# event.ssh.port=

# DB Tree
poolName2=tree
tree.jdbc.driver=org.gjt.mm.mysql.Driver
tree.jdbc.dbUrl=jdbc:mysql://localhost/eltex_ems?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&noAccessToProcedureBodies=true&useSSL=false
tree.jdbc.username=javauser
tree.jdbc.password=javapassword
tree.jdbc.maxPoolSize=20
tree.jdbc.inUse=yes

# DB Ont
poolName3=ont
ont.jdbc.driver=org.gjt.mm.mysql.Driver
ont.jdbc.dbUrl=jdbc:mysql://localhost/eltex_ont?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&useSSL=false
ont.jdbc.username=javauser
ont.jdbc.password=javapassword
ont.jdbc.maxPoolSize=40
ont.jdbc.inUse=yes

# DB Syslog
poolName4=syslog
syslog.jdbc.driver=org.gjt.mm.mysql.Driver
syslog.jdbc.dbUrl=jdbc:mysql://localhost/Syslog?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&useSSL=false
syslog.jdbc.username=javauser
syslog.jdbc.password=javapassword
syslog.jdbc.maxPoolSize=4
syslog.jdbc.inUse=yes
# remote db host access with su privileges
# syslog.ssh.login=
# syslog.ssh.password=
# syslog.ssh.port=

# DB acsmain (alias=cpe)
poolName5=cpe
cpe.jdbc.driver=org.gjt.mm.mysql.Driver
cpe.jdbc.dbUrl=jdbc:mysql://localhost/acsmain?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&useSSL=false
cpe.jdbc.username=javauser
cpe.jdbc.password=javapassword
cpe.jdbc.maxPoolSize=2
cpe.jdbc.inUse=yes

# DB  acscmds(alias=cmds)
poolName6=cmds
cmds.jdbc.driver=org.gjt.mm.mysql.Driver
cmds.jdbc.dbUrl=jdbc:mysql://localhost/acscmds?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&useSSL=false
cmds.jdbc.username=javauser
cmds.jdbc.password=javapassword
cmds.jdbc.maxPoolSize=2
cmds.jdbc.inUse=yes

# DB  acsinf(alias=inf)
poolName7=inf
inf.jdbc.driver=org.gjt.mm.mysql.Driver
inf.jdbc.dbUrl=jdbc:mysql://localhost/acsinf?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&useSSL=false
inf.jdbc.username=javauser
inf.jdbc.password=javapassword
inf.jdbc.maxPoolSize=2
inf.jdbc.inUse=yes

# DB  acscache(alias=cache)
poolName8=cache
cache.jdbc.driver=org.gjt.mm.mysql.Driver
cache.jdbc.dbUrl=jdbc:mysql://localhost/acscache?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&useSSL=false
cache.jdbc.username=javauser
cache.jdbc.password=javapassword
cache.jdbc.maxPoolSize=2
cache.jdbc.inUse=yes

# DB  radius(alias=radius)
poolName9=radius
radius.jdbc.driver=org.gjt.mm.mysql.Driver
radius.jdbc.dbUrl=jdbc:mysql://localhost/radius?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&useSSL=false
radius.jdbc.username=javauser
radius.jdbc.password=javapassword
radius.jdbc.maxPoolSize=40
radius.jdbc.inUse=yes
# remote db host access with su privileges
# radius.ssh.login=
# radius.ssh.password=
# radius.ssh.port=

# ------------------------------------------- SSID ---------------------------------------------
# DB  wireless (alias=wireless)
poolName10=wireless
wireless.jdbc.driver=org.gjt.mm.mysql.Driver
wireless.jdbc.dbUrl=jdbc:mysql://localhost/wireless?useUnicode=true&characterEncoding=utf8&relaxAutoCommit=true&connectTimeout=5000&useSSL=false
wireless.jdbc.username=javauser
wireless.jdbc.password=javapassword
wireless.jdbc.maxPoolSize=30
wireless.jdbc.inUse=yes

# memcached server address
#memcached_server_ip_port=127.0.0.1:11211

Настройки подключения к каждой базе имеют идентичную структуру, поэтому рассмотрим настройку пула для подключения к БД 'radius':

  • poolName - название коннекта к базе данных в интерпретации сервера EMS;
  • radius.jdbc.dbUrl - адрес для подключения к базе данных;
  • radius.jdbc.username - логин для подключения к базе данных;
  • radius.jdbc.password - пароль для подключения к базе данных;
  • radius.jdbc.maxPoolSize - количество коннектов, которые сервер EMS может открыть для подключения к БД. Необходимое количество коннектов зависит от нагрузки на сервер, таблица для расчета приведена в настройках базы данных MariaDB. Если не планируется поддержка устройств ONT или CPE, то количество коннектов для пулов ont, cpe, cmds, inf, cache следует установить равным 0.
  • Группа настроек для подключения к серверу БД по ssh приведена для того, чтобы сервер EMS имел возможность выгружать некоторые дампы и файлы непосредственно с сервера БД.

/usr/lib/eltex-ems/conf/log4j2.xml

Конфигурация логгера EMS сервера.

/usr/lib/eltex-ems/conf/log4j2.xml
<?xml version="1.0" encoding="UTF-8"?>

<!--
    Use log4j version 2  - EMS server

    error и black_box - Ограничения для них работают одинаково:
     1) В варианте по-умолчанию (исходный) - с сохранением по дням.
     2) В новом варианте (закоментаренный) - без сохранения по дням.

     Параметры в теге configuration
     - monitorInterval="30" - для перечитки конфиг-файла каждые 30 сек - для отслеживания изменений.
            - 36000  -  10 часов.
-->

<configuration monitorInterval="600">

    <properties>
        <property name="basedir">/var/log/eltex-ems</property>
        <property name="maxSize">20 MB</property>
        <property name="maxCount">20</property>

        <property name="gelfHost">udp:lab3-test.eltex.loc</property>
        <property name="gelfPort">12201</property>
        <property name="gelfLevel">OFF</property>

        <Property name="dateSuffix">%d{yyyyMMdd}</Property>
        <property name="pattern">%d{ISO8601} [%t] %-5p %logger{1} %C{1}.%M(line:%L). %m%n</property>
    </properties>

    <appenders>

        <!-- =========  black_box  ============ -->

        <!-- 1) -  Лог-файлы - только заданное в maxCount количество - и не больше. Хорошо, когда требуется оперативно смотреть логи. Плюс - лог-директория не разрастается. -->

        <RollingFile name="black" fileName="${basedir}/black_box.txt"
                     filePattern="${basedir}/black_box/black_box-${dateSuffix}-%i.txt.gz">
            <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- =========  error  ============ -->

        <!-- 1) -  Лог-файлы - количество файлов - только заданное в maxCount - и не больше -->

        <RollingFile name="errorLog" fileName="${basedir}/error.log" filePattern="${basedir}/error/error-${dateSuffix}-%i.log.gz">
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- =========  unknown  ============ -->

        <!-- Аппендер, в который выводятся сообщения, которые AsyncAppender не знает куда выводить (не может определить). Если не описан - кидаются в системный вывод. -->
        <RollingFile name="unknowLog" fileName="${basedir}/unknown.log"
                     filePattern="${basedir}/unknown/unknown-${dateSuffix}-%i.log.gz">
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- Говорим что следующие аппендеры должны работать не в этом же потоке, где вызывается logger.debug, а в отдельном
         - т.е. сначала в поток передается запрос на отображение лога, а потом уже происходит обработка.
         bufferSize - устанавливает размер входного буфера (по умолчанию - 128). -->
        <Async name="async">
            <appender-ref ref="black"/>
            <appender-ref ref="errorLog"/>
            <!-- Аппендер, в который выводятся сообщения, которые AsyncAppender не знает куда выводить (не может определить). Если не описан - кидаются в системный вывод. -->
            <error-ref>unknowLog</error-ref>
        </Async>

        <Syslog name="syslogApp" format="RFC5424" host="192.168.1.1" port="514"
                protocol="UDP" appName="Eltex" includeMDC="true" mdcId="mdcId"
                facility="USER" enterpriseNumber="18060" newLine="true"
                messageId="Audit" id="App"/>

        <!-- Логгер для отправки некоторых трапов по syslog. Для отправки данных логов, необходимо поставить уровень фильтрации INFO -->
        <Syslog name="TrapSyslog" format="RFC5424" host="192.168.1.1" port="514"
                protocol="UDP" appName="Eltex-EMS" includeMDC="true" mdcId="mdcId"
                facility="USER" enterpriseNumber="18060" newLine="true"
                messageId="Audit" id="App">
            <ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY"/>
        </Syslog>

        <Gelf name="Gelf" host="${gelfHost}" port="${gelfPort}" version="1.1" facility="eltex-ems"
              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{1}" />
            <Field name="location" pattern="%C{1}.%M(line:%L)" />
        </Gelf>

        <!-- Тестовый логгер. -->
        <RollingFile name="testLog" fileName="${basedir}/test.txt" filePattern="${basedir}/test/test-${dateSuffix}-%i.txt.gz">
            <!--ThresholdFilter level="DEBUG" onMatch="ACCEPT" onMismatch="DENY"-->
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- ================================= Мониторы ========================================== -->

        <RollingFile name="HandlersPool" fileName="${basedir}/monitor/HandlersPool/handlers_pool.log"
                     filePattern="${basedir}/monitor/HandlersPool/handlers_pool-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="CheckDbConnect" fileName="${basedir}/monitor/CheckDbConnect/check_db.log"
                     filePattern="${basedir}/monitor/CheckDbConnect/check_db-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>

            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="AlertsSynchronized" fileName="${basedir}/monitor/AlertsSynchronized/alerts_sync.log"
                     filePattern="${basedir}/monitor/AlertsSynchronized/alerts_sync-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="AlertsArchiving" fileName="${basedir}/monitor/AlertsArchiving/alerts_archiving.log"
                     filePattern="${basedir}/monitor/AlertsArchiving/alerts_archiving-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="FwReports" fileName="${basedir}/monitor/FwReports/fw_reports.log"
                     filePattern="${basedir}/monitor/FwReports/fw_reports-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="MonitoringTask" fileName="${basedir}/monitor/MonitoringTask/monitoring_task.log"
                     filePattern="${basedir}/monitor/MonitoringTask/monitoring_task-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="UploadConfigure" fileName="${basedir}/monitor/UploadConfigure/upload_configure.log"
                     filePattern="${basedir}/monitor/UploadConfigure/upload_configure-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="SystemBackup" fileName="${basedir}/monitor/SystemBackup/system_backup.log"
                     filePattern="${basedir}/monitor/SystemBackup/system_backup-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="SyncPon" fileName="${basedir}/monitor/SyncPon/sync_pon.log"
                     filePattern="${basedir}/monitor/SyncPon/sync_pon-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="EmsServerDiagnostics" fileName="${basedir}/monitor/EmsServerDiagnostics/ems_server_diagnostics.log"
                     filePattern="${basedir}/monitor/EmsServerDiagnostics/ems_server_diagnostics-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="SystemBackupDiagnostics" fileName="${basedir}/monitor/SystemBackupDiagnostics/system_backup_diagnostics.log"
                     filePattern="${basedir}/monitor/SystemBackupDiagnostics/system_backup_diagnostics-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="SyslogCleaner" fileName="${basedir}/monitor/SyslogCleaner/syslog_clean.log"
                     filePattern="${basedir}/monitor/SyslogCleaner/syslog_clean-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="AlertsClose" fileName="${basedir}/monitor/AlertsClose/alerts_close.log"
                     filePattern="${basedir}/monitor/AlertsClose/alerts_close-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="LogsDirCleaner" fileName="${basedir}/monitor/LogsDirCleaner/logsdir_clean.log"
                     filePattern="${basedir}/monitor/LogsDirCleaner/logsdir_clean-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="FwStationUpdate" fileName="${basedir}/monitor/FwStationUpdate/station_update.log"
                     filePattern="${basedir}/monitor/FwStationUpdate/station_update-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="CheckOLTTermoMonitor" fileName="${basedir}/monitor/CheckOLTTermoMonitor/temperature_scan.log"
                     filePattern="${basedir}/monitor/CheckOLTTermoMonitor/temperature_scan-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="LogsSender" fileName="${basedir}/monitor/LogsSender/logsdir_sender.log"
                     filePattern="${basedir}/monitor/LogsSender/logsdir_sender-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="SwitchCounterCleaner" fileName="${basedir}/monitor/SwitchCounterCleaner/switch_counter_clean.log"
                     filePattern="${basedir}/monitor/SwitchCounterCleaner/switch_counter_clean-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!--  ACS -->
        <RollingFile name="CheckAcsdBreak" fileName="${basedir}/monitor/CheckAcsdBreak/acsd_break.log"
                     filePattern="${basedir}/monitor/CheckAcsdBreak/acsd_break-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!--  GePON -->
        <RollingFile name="FwNteUpdate" fileName="${basedir}/monitor/FwNteUpdate/nte_update.log"
                     filePattern="${basedir}/monitor/FwNteUpdate/nte_update-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>


        <!--  RADIUS -->
        <RollingFile name="NasAndTreeObjFitnessMonitor" fileName="${basedir}/monitor/NasAndTreeObjFitnessMonitor/nas_treeobj_fitness.log"
                     filePattern="${basedir}/monitor/NasAndTreeObjFitnessMonitor/nas_treeobj_fitness-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!--  GPON -->
        <RollingFile name="NtpOmciSheduler" fileName="${basedir}/monitor/NtpOmciSheduler/ntp_omci_sheduler_log.log"
                     filePattern="${basedir}/monitor/NtpOmciSheduler/ntp_omci_sheduler_log-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>
        <RollingFile name="GponOntAutoupdateFlag" fileName="${basedir}/monitor/GponOntAutoupdateFlag/gpon_ont_autoupdate_flag.log"
                     filePattern="${basedir}/monitor/GponOntAutoupdateFlag/gpon_ont_autoupdate_flag-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!--  PON COMMON -->
        <RollingFile name="OntProblems" fileName="${basedir}/monitor/OntProblems/ont_problems.log"
                     filePattern="${basedir}/monitor/OntProblems/ont_problems-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- Ott Overdue -->
        <RollingFile name="OttOverdue" fileName="${basedir}/monitor/OttOverdue/ott_overdue.log"
                     filePattern="${basedir}/monitor/OttOverdue/ott_overdue-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- TL1 -->
        <RollingFile name="TL1" fileName="${basedir}/modules/TL1/tl1.log"
                     filePattern="${basedir}/modules/TL1/tl1-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- Feature #26980 Создать методы автоматического сбора данных 'ключ-значение' из xml файлов -->
        <RollingFile name="Language" fileName="${basedir}/language/language.log"
                     filePattern="${basedir}/language/language-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!--appender type="List" name="List"></appender-->

        <!--  PON COMMON -->
        <RollingFile name="SyncPonProfiles" fileName="${basedir}/monitor/SyncPonProfiles/sync_pon_profiles.log"
                     filePattern="${basedir}/monitor/SyncPonProfiles/sync_pon_profiles-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- SsidLinkCheckMonitor -->
        <RollingFile name="SsidLinkCheck" fileName="${basedir}/monitor/SsidLinkCheck/ssid_link_check.log"
                     filePattern="${basedir}/monitor/SsidLinkCheck/ssid_link_check-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="RadiusBackup" fileName="${basedir}/monitor/RadiusBackup/radius_backup.log"
                     filePattern="${basedir}/monitor/RadiusBackup/radius_backup-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="SsidSchedulerCheck" fileName="${basedir}/monitor/SsidSchedulerCheck/ssid_scheduler.log"
                     filePattern="${basedir}/monitor/SsidSchedulerCheck/ssid_scheduler-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="WifiAlienMonitor" fileName="${basedir}/monitor/WifiAlienMonitor/wifi_alien_monitor.log"
                     filePattern="${basedir}/monitor/WifiAlienMonitor/wifi_alien_monitor-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="SsidApbCheckMonitor" fileName="${basedir}/monitor/SsidApbCheckMonitor/ssid_apb_check.log"
                     filePattern="${basedir}/monitor/SsidApbCheckMonitor/ssid_apb_check-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <RollingFile name="LossCommunication" fileName="${basedir}/monitor/LossCommunication/wifi_loss_communication.log"
                     filePattern="${basedir}/monitor/LossCommunication/wifi_loss_communication-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- Eltex Radius NBI -->
        <RollingFile name="NBI" fileName="${basedir}/modules/NBI/nbi.log"
                     filePattern="${basedir}/modules/NBI/nbi-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- Eltex PCRF -->
        <RollingFile name="PCRF" fileName="${basedir}/modules/PCRF/pcrf.log"
                     filePattern="${basedir}/modules/PCRF/pcrf-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- Eltex SORM2 -->
        <RollingFile name="SORM2" fileName="${basedir}/modules/sorm2/sorm2.log"
                     filePattern="${basedir}/modules/sorm2/sorm2-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- Eltex APB -->
        <RollingFile name="APB" fileName="${basedir}/modules/apb/apb.log"
                     filePattern="${basedir}/modules/apb/apb-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

        <!-- AccountExpireMonitor -->
        <RollingFile name="AccountExpire" fileName="${basedir}/monitor/AccountExpire/account_expire.log"
                     filePattern="${basedir}/monitor/AccountExpire/account_expire-${dateSuffix}-%i.log.gz">
            <PatternLayout>
                <pattern>${pattern}</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
                <SizeBasedTriggeringPolicy size="${maxSize}"/>
            </Policies>
            <DefaultRolloverStrategy max="${maxCount}"/>
        </RollingFile>

    </appenders>

    <loggers>
        <!-- ================================= Мониторы ========================================== -->
        <!--
          additivity="false" - т.е. в другие аппендеры НЕ выводить
          TRUE - выводить в другие аппендеры согласно их ограничениям по уровням - сделано так, чтобы в аппендер errorLog выводились вообще все сообщения уровня ERROR.
         -->
        <logger name="gpon_ont_autoupdate_flag" level="error" additivity="true">
            <appender-ref ref="GponOntAutoupdateFlag"/>
        </logger>
        <logger name="ntp_omci_sheduler_log" level="error" additivity="true">
            <appender-ref ref="NtpOmciSheduler"/>
        </logger>
        <logger name="nte_update" level="error" additivity="true">
            <appender-ref ref="FwNteUpdate"/>
        </logger>
        <logger name="acsd_break" level="error" additivity="true">
            <appender-ref ref="CheckAcsdBreak"/>
        </logger>
        <logger name="logsdir_sender" level="error" additivity="true">
            <appender-ref ref="LogsSender"/>
        </logger>
        <logger name="temperature_scan" level="error" additivity="true">
            <appender-ref ref="CheckOLTTermoMonitor"/>
        </logger>
        <logger name="station_update" level="error" additivity="true">
            <appender-ref ref="FwStationUpdate"/>
        </logger>
        <logger name="logsdir_clean" level="error" additivity="true">
            <appender-ref ref="LogsDirCleaner"/>
        </logger>
        <logger name="syslog_clean" level="error" additivity="true">
            <appender-ref ref="SyslogCleaner"/>
        </logger>
        <logger name="alerts_close" level="error" additivity="true">
            <appender-ref ref="AlertsClose"/>
        </logger>
        <logger name="ems_server_diagnostics" level="error" additivity="true">
            <appender-ref ref="EmsServerDiagnostics"/>
        </logger>
        <logger name="system_backup_diagnostics" level="error" additivity="true">
            <appender-ref ref="SystemBackupDiagnostics"/>
        </logger>
        <logger name="sync_pon" level="error" additivity="true">
            <appender-ref ref="SyncPon"/>
        </logger>
        <logger name="upload_configure" level="error" additivity="true">
            <appender-ref ref="UploadConfigure"/>
        </logger>
        <logger name="system_backup" level="error" additivity="true">
            <appender-ref ref="SystemBackup"/>
        </logger>
        <logger name="monitoring_task" level="error" additivity="true">
            <appender-ref ref="MonitoringTask"/>
        </logger>
        <logger name="fw_reports" level="error" additivity="true">
            <appender-ref ref="FwReports"/>
        </logger>
        <logger name="ott_overdue" level="error" additivity="true">
            <appender-ref ref="OttOverdue"/>
        </logger>
        <logger name="alerts_archiving" level="error" additivity="true">
            <appender-ref ref="AlertsArchiving"/>
        </logger>
        <logger name="alerts_sync" level="error" additivity="true">
            <appender-ref ref="AlertsSynchronized"/>
        </logger>
        <logger name="handlers_pool" level="error" additivity="true">
            <appender-ref ref="HandlersPool"/>
        </logger>
        <logger name="check_db" level="error" additivity="true">
            <appender-ref ref="CheckDbConnect"/>
        </logger>
        <logger name="ont_problems" level="error" additivity="true">
            <appender-ref ref="OntProblems"/>
        </logger>
        <logger name="switch_counter_clean" level="error" additivity="true">
            <appender-ref ref="SwitchCounterCleaner"/>
        </logger>
        <logger name="sync_pon_profiles" level="error" additivity="true">
            <appender-ref ref="SyncPonProfiles"/>
        </logger>
        <logger name="ssid_link_check" level="error" additivity="true">
            <appender-ref ref="SsidLinkCheck"/>
        </logger>
        <logger name="nas_treeobj_fitness" level="error" additivity="true">
            <appender-ref ref="NasAndTreeObjFitnessMonitor"/>
        </logger>
        <logger name="radius_backup" level="error" additivity="true">
            <appender-ref ref="RadiusBackup"/>
        </logger>
        <logger name="ssid_scheduler" level="error" additivity="true">
            <appender-ref ref="SsidSchedulerCheck"/>
        </logger>

        <logger name="TL1" level="error" additivity="true">
            <appender-ref ref="TL1"/>
        </logger>

        <logger name="Language" level="error" additivity="true">
            <appender-ref ref="Language"/>
        </logger>
        <logger name="wifi_alien_monitor" level="error" additivity="true">
            <appender-ref ref="WifiAlienMonitor"/>
        </logger>
        <logger name="ssid_apb_check" level="error" additivity="true">
            <appender-ref ref="SsidApbCheckMonitor"/>
        </logger>
        <logger name="wifi_loss_communication" level="error" additivity="true">
            <appender-ref ref="LossCommunication"/>
        </logger>


        <!-- =============================== Установка свойств логирования на группы =============================== -->
        <!--
         Говорим что все логи с именем Syslog скидывать только в аппендер с именем syslogApp
         additivity="false" - т.е. в другие аппендеры НЕ выводить -->
        <logger name="Syslog" level="error" additivity="false">
            <appender-ref ref="syslogApp"/>
        </logger>

        <logger name="NBI" level="debug" additivity="true">
            <appender-ref ref="NBI"/>
        </logger>

        <logger name="PCRF" level="debug" additivity="true">
            <appender-ref ref="PCRF"/>
        </logger>

        <logger name="SORM2" level="debug" additivity="true">
            <appender-ref ref="SORM2"/>
        </logger>

        <logger name="APB" level="debug" additivity="true">
            <appender-ref ref="APB"/>
        </logger>

        <logger name="TRAP_SYSLOG" level="OFF" additivity="false">
            <appender-ref ref="TrapSyslog"/>
        </logger>

        <logger name="AUTH_SYSLOG" level="OFF" additivity="false">
            <appender-ref ref="TrapSyslog" />
        </logger>

        <!-- Лезет по все аппендеры с этим уровнем. Нигде не режется. -->
        <!--logger name="Kernel" level="error">
            <appender-ref ref="black"/>
        </logger>

        <logger name="DB" level="error">
            <appender-ref ref="black"/>
        </logger-->

        <!-- Библиотеки snmp4j юзают логгер log4j через бридж. -->
        <logger name="org.snmp4j" level="error">
            <appender-ref ref="black"/>
        </logger>

        <!-- Апачевские библиотеки тоже юзают свой логгер. Повышаем уровень чтобы не засоряли. -->
        <logger name="org.apache" level="error">
        </logger>

        <!--logger name="org.apache.log4j.xml" level="error">
            <appender-ref ref="black"/>
        </logger-->


        <!-- =============================== Тестовые группы =============================== -->
        <!--
            Здесь все эти группы пишут только в один файл - test.txt (ref="testLog")
            В другие аппендеры не выводить (условие - additivity=false).
        -->

        <!-- Группа работы функционала обработки алерта wifi.associateClientsSize -->
        <logger name="wifiAssocClient" level="info" additivity="false">
            <appender-ref ref="testLog"/>
        </logger>

        <!-- Тестирование функционала получения БД коннектов. -->
        <logger name="dbConn" level="error" additivity="false">
            <appender-ref ref="testLog"/>
        </logger>

        <!-- ========================== Перечень всех аппендеров и стартовый уровень логирования ====================== -->
        <!-- Ставим дефолтный уровень DEBUG. Но приоритетнее ограничения по уровню на самих аппендерах. -->
        <root level="debug">
            <!--appender-ref ref="List"/-->
            <!--appender-ref ref="async"/-->
            <appender-ref ref="errorLog"/>
            <appender-ref ref="black"/>
            <appender-ref ref="Gelf" level="${gelfLevel}"/>
            <!--appender-ref ref="syslogApp"/-->
        </root>
    </loggers>

</configuration>
  • Интервал автоматического перечитывания конфигурации логгера:
<Configuration monitorInterval="600">
  • Базовая директория хранения логов:
<property name="basedir">/var/log/eltex-ems</property>
  • Максимально допустимый размер файла (при его превышении создается новый файл, а старый архивируется):
<property name="maxSize">20 MB</property>
  • Максимальное количество архивных файлов, при его превышении наиболее старые файлы будут перезаписываться:
<property name="maxCount">20</property>
  • Блок настройки перенаправления логов в Graylog (уровень логирования, адрес, порт):
<property name="gelfHost">udp:lab3-test.eltex.loc</property>
<property name="gelfPort">12201</property>
<property name="gelfLevel">OFF</property
  • Уровень логирования:
<root level="debug">


/usr/lib/eltex-ems/conf/system-config.txt

Файл содержит дефолтные настройки системы, которые используются при первой загрузке и настройки взаимодействия с SSO. В последствии некоторые параметры могут быть изменены из GUI EMS:

/usr/lib/eltex-ems/conf/system-config.txt
#Эта настройка попадает в ГУИ, в качестве дефолтной настройки MA4000
#Levels: Emergency,Alert,Critical,Error,Warning,Notice,Info,Debug
#Transport: udp, tcp
syslog.defaultIP=192.168.1.1
syslog.defaultPort=514
syslog.defaultTransport=udp
syslog.defaultLevels=Emergency,Alert,Critical,Error,Warning

# server socket and socket handlers pool
gui.port=9310
#gui.handler_pool_size=48
gui.handler_pool_size=200
gui.connection.timeout.sec=300

# snmp
alert.use=yes
alert.port=162
alert.connection_timeout_sec=10

### Monitors
monitor.xml-config=conf/monitors.xml

# Тип прав доступа пользователей (enum) : BY_DOMAIN, BY_ROLE. По умолчанию - BY_ROLE
user_access_type=BY_ROLE

# sso
sso.enabled=false
sso.provider=keycloak
sso.callback-host=localhost
sso.callback-port=45969
sso.keycloak.realm=softwlc
sso.keycloak.auth-server-url=http://localhost:8282
sso.keycloak.ssl-required=external
sso.keycloak.resource=eltex-ems
sso.keycloak.public-client=true
sso.keycloak.use-resource-role-mappings=true
sso.keycloak.enable-pkce=true

# Clusterization
# ID экземпляра сервиса EMS (EMS service instance ID)
cluster.ems_service.id=
cluster.public_address=
cluster.port=5705
cluster.port_count=1
cluster.port_autoincrement_enabled=false
# Comma-separated cluster members in host:port format
cluster.members=
cluster.events.topic_capacity=10000
cluster.events.ttl_seconds=0
# IP_ADDRESS, HOSTNAME(for docker purpose)
cluster.interface_bind_mode=IP_ADDRESS
# Mandatory for IP_ADDRESS interface bind mode
cluster.interface_ip=
  • Настройки работы с syslog: IP-адрес, порт, протокол и уровень событий:
syslog.defaultIP=192.168.1.1
syslog.defaultPort=514
syslog.defaultTransport=udp
syslog.defaultLevels=Emergency,Alert,Critical,Error,Warning
  • Настройка подключения к GUI:
gui.port=9310                    порт, который будет прослушиваться сервером для подключения GUI пользователей (используется для передачи данных в апплет пользователя)
gui.handler_pool_size=200        пул обработчиков пользовательских подключений
gui.connection.timeout.sec=300   таймаут ожидания ответа от пользователя до разрыва соединения
  • Настройки отправки оповещений по SNMP (активация, порт, время ожидания ответа):
alert.use=yes
alert.port=162
alert.connection_timeout_sec=10
  • Расположение мониторов:
monitor.xml-config=conf/monitors.xml
  • Тип прав доступа пользователей (enum):
user_access_type=BY_ROLE
  • Настройки кластеризации:
# Имя управляющего EMS. Может содержать до 32 цифровых, буквенных или цифро-буквенных символов верхнего и/или нижнего регистра, допускаются символы "_" и "-".
# Параметр должен быть настроен для работы функции кластеризации. Если параметр не настроен, то даже при наличии лицензии функционал работать не будет!
cluster.ems_service.id=    

# Настройки Hazelcast
# Публичный адрес сервера. Используется, если сервер стоит за NAT и нужно указать адрес по которому он будет доступен
cluster.public_address=
# Порт для работы Hazelcast
cluster.port=5705
# Контролирует количество попыток Hazelcast найти свободный порт. Работает если port_autoincrement включен
cluster.port_count=1
# Включает попытки найти свободный порт если указанный port занят
cluster.port_autoincrement_enabled=false
# Перечисление членов кластера через запятую в формате host:port
cluster.members=
# Максимальное количество событий, хранимое Hazelcast ITopic
cluster.events.topic_capacity=10000
# Время жизни события в Hazelcast ITopic, 0 - без ограничений по времени
cluster.events.ttl_seconds=0
# Определяет режим привязки Hazelcast к интерфейсу. Режим IP_ADDRESS позволяет указать, интерфейс с каким IP-адресом необходимо использовать. Режим HOSTNAME нужен для запуска сервиса в docker, когда контейнеру присваивается hostname. Значение берется из переменной окружения HOSTNAME
cluster.interface_bind_mode=IP_ADDRESS
# Интерфейс с каким IP-адресом необходимо использовать Hazelcast в режиме IP_ADDRESS
cluster.interface_ip=


/etc/eltex-ems/gui.conf

Файл конфигурации пользовательского апплета.

/etc/eltex-ems/gui.conf
# Уровень логирования в GUI: DEBUG, INFO, WARN, SEVERE, ERROR, FATAL
log.level=INFO

# Период опроса сервера, в секундах
ping.period=10

# Таймаут для запросов к серверу, в секундах
socket.timeout=300

# Порт, по которому выполняется соединение с сервером
# По умолчанию равен тому, который используется сервером
#socket.port=9310

# Максимальный размер Java heap
java.max_heap=700m

# Размер Java heap при запуске
java.init_heap=256m
  • log.level - Уровень логирования в GUI : DEBUG, INFO, WARN, SEVERE, ERROR, FATAL. Логи сохраняются на компьютере пользователя, для windows путь хранения C:\Users\<UserName>\ems_log\.
  • ping.period - период опроса сервера, в секундах
  • socket.timeout - время ожидания ответа от пользователя до разрыва соединения.
  • socket.port - порт, на который будет обращаться пользовательский апплет для получения данных от сервера. По умолчанию (если закомментирован) равен порту, который прослушивается сервером.
  • java.max_heap - ограничение на максимальное количество памяти, которое апплет будет занимать на ПК пользователя.
  • java.init_heap - количество памяти, которое апплет попытается занять при старте работы.

/etc/eltex-ems/check-ems-replication.conf

Конфигурация для проверки состояния репликации на серверах БД MariaDB.

/etc/eltex-ems/check-ems-replication.conf
# Включить("Yes") / Выключить("No") проверку репликации
ENABLE_REPLICATION="No"

# Адрес первого хоста репликации
HOST1=192.168.56.100
# Адрес второго хоста репликации
HOST2=192.168.56.101

# параметры доступа к mysql серверу
#  mysql пользователь
USER="root"
#  mysql пароль
PASSWORD="root"
  • ENABLE_REPLICATION - статус проверки. "Yes" - проверка включена, "No" - выключена.
  • HOST1, HOST2 - адреса серверов БД.
  • USER, PASSWORD - логин и пароль для подключения к консоли MariaDB. Должны быть одинаковыми на обоих серверах и иметь привилегии для проверки статуса репликации.

/etc/default/eltex-ems

Файл содержит параметры запуска процесса eltex-ems.

/etc/default/eltex-ems
# Eltex.EMS (ACS GUI) Server daemon parameters

# Location of java
JAVA=/usr/bin/java

# Maximum size of Java heap
JAVA_MAX_HEAP_MB=1024
# Initial size of Java heap
JAVA_INIT_HEAP_MB=256

# Options for Java Garbage Collector
GC_OPTS="-XX:+UseG1GC \
-XX:+PrintGCDateStamps \
-XX:+PrintGCDetails \
-XX:+UseGCLogFileRotation \
-XX:NumberOfGCLogFiles=7 \
-XX:GCLogFileSize=5M \
-XX:+UseStringDeduplication \
-XX:+PrintGCTimeStamps \
-XX:+PrintTenuringDistribution \
-Xloggc:/var/log/eltex-ems/gc.log"

# Additional arguments to pass to java
JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError \
-XX:HeapDumpPath=/var/log/eltex-ems \
-Djava.security.egd=file:/dev/./urandom"

# Remore monitoring
#JAVA_OPTS="-XX:+HeapDumpOnOutOfMemoryError \
#-XX:HeapDumpPath=/var/log/eltex-ems \
#-Djava.security.egd=file:/dev/./urandom \
#-Dcom.sun.management.jmxremote \
#-Djava.rmi.server.hostname=192.168.1.1 \
#-Dcom.sun.management.jmxremote.port=9900 \
#-Dcom.sun.management.jmxremote.authenticate=false \
#-Dcom.sun.management.jmxremote.ssl=false"

# Eltex.EMS home location
ELTEX_EMS_HOME="/usr/lib/eltex-ems"

# Set it more than (EMS tree objects number * 5)
FILE_LIMIT=65535
  • JAVA - расположение java-машины.
  • JAVA_MAX_HEAP_MB - максимальное количество памяти, которое будет забирать сервер EMS на свою работу. Если памяти не хватает, возможны ошибки типа OutOfMemory.
  • JAVA_INIT_HEAP_MB - количество памяти, с которым стартует сервер EMS.
  • GC_OPTS - опции запуска сборщика мусора.
  • JAVA_OPTS - дополнительные опции запуске EMS сервера.
  • ELTEX_EMS_HOME - каталог с системными файлами EMS сервера.
  • FILE_LIMIT - ограничение на количество открываемых файлов. Устанавливается из расчете количество объектов в дереве умноженное на 5. При недостатке возможны перебои в работе сервера с ошибками вида 'java.io.IOException: Too many open files'.

/etc/eltex-ems/ssid-default-params.conf

Файл содержит конфигурацию SSID для автоматического заполнения параметров SSID, при создании его в менеджере SSID

/etc/eltex-ems/ssid-default-params.conf
#General options
radio=ALL
bandSteering=true
#RADIUS options
activeServer=primary
radiusip=192.168.1.1
radiuskey=eltex
radiusaccount=up
radiusAcctPeriod=600
apBssRadiusPort=1812
#CaptivePortal options
apCaptivePortalExternalUrl=http://192.168.1.1:8080/eltex_portal/

Общие правила конфигурации файла

Тип параметра

Текстовое представление

Текст, включая домены и IPКак в диалоге настройки SSID
ЧислоКак в диалоге настройки SSID
Логическое значение (CheckBox)

true, если флаг поставлен;

false, если снят

Временной диапазон (расписание на день)<1, если расписание на день активно, иначе 0>:<Ч>:<М>:<Ч>:<М>
Выпадающий списокНазвание опции на английском (см. следующую таблицу). 

 Регистр важен важен при заполнении параметров!

Название параметров, их тип и формат

ПараметрНазваниеТипФормат
Общие
ТипssidtypeВыпадающий списокВарианты: hotspot, enterprise
ИмяNAMEТекст
ОписаниеDESCRТекст
DomainradiusDomainТекст
Статус SSIDSTATUSВыпадающий списокВарианты: operational, locked
Опции
Bridge, LocationbridgeLocationТекст
Switch CommunityswitchCommunityЛогическое значение
Статус VAPstatusВыпадающий списокВарианты: down, up
Режим трафика VAP (только для GRE)trafficModeVAPВыпадающий списокВарианты: tunnel, local
Broadcast SSIDbroadcastSsidЛогическое значение
RadioradioВыпадающий списокВарианты: ALL, ALL24, ALL5
Режим безопасностиsecurityВыпадающий списокВарианты: plainText, wpaPersonal, wpaEnterprise
Отключить SSID на ТД (GlobalRadius)validateSsidRadiusAccЛогическое значение
Поддержка WPA-TKIPwpaenЛогическое значение
Поддержка WPA2-AESwpa2AesEnЛогическое значение
Поддержка TLStlsEnabledЛогическое значение
Enable pre-authenticationpreauthЛогическое значение
MAC Auth TypemacCAuthTypeВыпадающий списокВарианты: disable, radius
MFPmfpВыпадающий списокВарианты: notrequired, capable, required
Ключ (WPA)wpakeyТекст
PolicypolicyВыпадающий списокВарианты: GLOBAL, ALLOW, BLOCK
Список MAC адресовmacListТекст
Broadcast Key Refresh RatebrcstRfrshRateЧисло
Session Key Refresh RatesessionRfrshRateЧисло
Статус Client QoSqosModeВыпадающий списокВарианты: off, on
VLAN-IDvlanidЧисло
QoS method (down link)priorityВыпадающий списокВарианты: p8021dscp
VLAN trunkvlanTrunkЛогическое значение
General ModegeneralModeЛогическое значение
General VLAN-IDgeneralVlanIdЧислоОт 1 до 4094
802.1p priority (up link)vlanPrioЧислоОт 0 до 7
Изоляция клиентовstationIsolationЛогическое значение
Band steerbandSteeringЛогическое значение
Support 802.11ksupport80211kЛогическое значение

PMKSA caching

pmksaCachingЛогическое значение
Accounting wait IPaccountingWaitIpЛогическое значение
Wireless Multicast ForwardingwmfEnabledЛогическое значение
Hotspot 2.0hotspot20Текст
DiffServ Policy UppolicyUpТекст
DiffServ Policy DownpolicyDownТекст
Bandwidth Limit Up, kbpsbwMaxUpЧислоОт 0 до 1331200
Bandwidth Limit Down, kbpsbwMaxDownЧислоОт 0 до 1331200
Quantity ResendapBssMaxREeqЧисло
Supplicant Timeout, msapBssSuppTimeoutЧисло
VAP Limit Up, kbpsvapLimitUpЧислоОт 0 до 1331200
VAP Limit Down, kbpsvapLimitDownЧислоОт 0 до 1331200
DPI (Step Logic)dpiStepLogicЛогическое значение
Minimal Signal
EnabledcheckMinimalSignalЛогическое значение
Level, dBmminimalSignalLevelЧисло
Timeout, sminimalSignalTimeoutЧисло
Roaming Level, dBmroamingSignalLevelЧисло
RADIUS
Active ServeractiveServerВыпадающий списокВарианты: primarybackuponebackuptwo, backupthree
RADIUS IP AddressradiusipТекстСтрока должна соответствовать формату IP-адреса
RADIUS IP Address-1radiusip1ТекстСтрока должна соответствовать формату IP-адреса
RADIUS IP Address-2radiusip2ТекстСтрока должна соответствовать формату IP-адреса
RADIUS IP Address-3radiusip3ТекстСтрока должна соответствовать формату IP-адреса
RADIUS KeyradiuskeyТекст
RADIUS Key-1radiuskey1Текст
RADIUS Key-2radiuskey2Текст
RADIUS Key-3radiuskey3Текст
RADIUS accounting (вкл/выкл)radiusaccountВыпадающий списокВарианты: down, up
RADIUS accounting period, sradiusAcctPeriodЧисло
RADIUS accounting retry countapBssRadiusAcctRetryCountЧисло
RADIUS accounting retry timeoutapBssRadiusAcctRetryTimeoutЧисло
RADIUS authenticate retry countapBssRadiusAuthRetryCountЧисло
RADIUS authenticate retry timeoutapBssRadiusAuthRetryTimeoutЧисло
RADIUS портapBssRadiusPortЧислоОт 1 до 65534
Fast Bss Transition
Статус Fast TransitionapFbtEnabledВыпадающий списокВарианты: off, on
FT over DSapFbtOverDSEnabledВыпадающий списокВарианты: off, on
R0 Key HolderapFbtR0KeyHolderIDТекст
Reassociation Deadline, msapFbtReassociationDeadlineЧислоОт 1000 до 4294967295
RRB keyapFbtRrbKeyТекст
Captive portal
EnabledapCaptivePortalAdminModeЛогическое значение
Virtual portal nameapCaptivePortalVirtualPortalNameВыпадающий списокДоступные варианты зависят от настроек EMS
ПротоколapCaptivePortalTinyproxyTransportModeВыпадающий списокВарианты: HTTPS, HTTP, Auto
VerificationapCaptivePortalVerifyModeВыпадающий списокВарианты: GuestRADIUSCaptivePortal
ExternalapCaptivePortalExternalModeЛогическое значение
External URLapCaptivePortalExternalUrlТекст
Away Time, minapCaptivePortalAwayTimeЧислоОт 0 до 1440
Session Timeout, minapCaptivePortalSessionTimeoutЧислоОт 0 до 1440
User mobility domain (FW 1.9.0)apCaptivePortalUserMobilityDomainТекстЭто должен быть существующий домен
Расписание работы
ВключитьschedulerЛогическое значение
ПонедельникmondayВременной диапазон
ВторникtuesdayВременной диапазон
СредаwednesdayВременной диапазон
ЧетвергthursdayВременной диапазон
ПятницаfridayВременной диапазон
СубботаsaturdayВременной диапазон
ВоскресеньеsundayВременной диапазон

/etc/hosts

Файл содержит соответсвие между именем хоста и ip адресом.

127.0.0.1 localhost
127.0.1.1 ubuntu
  • 127.0.0.1 localhost - стандартное зарезервированное доменное имя для подсети 127.0.0.0/8.
  • 127.0.1.1 <имя хоста> - имя хоста, которое можно узнать командой hostname. Для корректной работы требуется возможность получить ip-адрес по имени хоста.


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

Формат логов в EMS

Логи действий пользователей сохраняются в файл /var/log/eltex-ems/events.log.

Пример лога: 

Пример лога
2023-03-29 16:54:42,199 INFO  [login: "admin123", user_ip: "127.0.0.1", host_ip: "10.25.92.50", role: "SuperUser"][mode: "USER", function: "LOGIN", status: "OK"]
2023-03-29 16:55:33,128 INFO  [login: "admin123", user_ip: "127.0.0.1", host_ip: "10.25.92.50"][mode: "USER", function: "LOCK_GUI_USER", status: "OK"]

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

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

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

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

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

role – роль пользователя (отображается только при операции login).

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

mode – режим логирования;

function – логируемое событие;

status – статус, с которым закончилось событие.


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

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

Допустимые значения параметров

Допустимые значения параметра mode:

Значение

Описание

UNKNOW
Неизвестный тип событий
TREE
Работа с объектами дерева устройств
ONT
ONT
ROLE
Взаимодействие с ролями
USER
Работа над пользователями
MONITOR
Монитор
PARAMS
Параметры
DEVICE
Работа с устройствами
MONITORING
Мониторинг
MANAGEMENT
Управление
ACS
ACS
GUI_PARAMS
Настройки GUI
VLAN
VLAN
IGMP_RR
IGMP Proxy Report Range
FILE
Работа с файлами
OBJECT
Объект
DB_INFO
Записи БД
EMS_SERVER
EMS сервер
CPE

CPE (customer premises equipment

PROFILE

Профиль

TERMINALVLAN

Работа с Terminal VLAN

RADIUS
Работа с RADIUS
SSID
SSID (название беспроводной сети)
DOMAIN
Работа с доменами
SOUND_SCHEME

Звуковая схема аварий

COLOR_SCHEME

Цветовая схема аварий

SUBSCRIBER_SOFTWARE
Абонентское ПО
STATION_SOFTWARE
Станционное ПО
GROUP_PROCESS

Групповая операция

NBI
Действия, совершенные через NBI
SSID_EXTENDED

Используется для передачи информации о параметрах привязки

VENDOR_SSID_LINK
Привязки SSID для устройств сторонних вендоров


Допустимые значения параметра function:

ЗначениеОписание
LOGIN

Авторизация пользователя в системе

LOGOUT

Выход пользователя из системы

LOCK_GUI_USER

Блокировка GUI пользователя

ADD

Добавить

EDIT

Редактировать

DELETE

Удалить

REBOOT

Перезагрузка

SAVE_TO_FLASH

Сохранить конфигурацию

COMMIT

Применить изменения

REREAD_CONFIG

Перечитать конфигурацию

MOVE

Переместить

UPDATE_ALL_ONT_FW

Обновить ПО всех ONT

UPDATE_CHIP_FW

Обновить чип ПО

UPDATE_MAIN_FW

Обновить ПО (firmware)

UPDATE_MAIN_FW_IN_NODE

Обновить ПО в узле

UPDATE_CHIP_FW_IN_NODE

Обновить чип ПО в узле

UPDATE_ALL_ONT_FW_IN_NODE

Обновить ПО всех ONT в узле

MOVES

Переместить объекты

START

Старт

STOP

Стоп

RECONFIG

Реконфигурация

UPDATE_FW

Обновить ПО

CLEAR

Очистить

DOWNLOAD_CONFIG

Загрузить конфигурацию

SAVE_CONFIG

Выгрузить конфигурацию

APPLY_CONFIG

Применить конфигурацию

CONFIRM_CONFIG

Подтвердить конфигурацию

TEST_TRAP_CONFIG

Контрольный трап

SNMP_GET

Получить данные от устройства

SNMP_SET

Занести данные в устройство

UPDATE

Обновить

UPLOAD_TO_TFTP

Загрузить на TFTP

CONFIRM_FW

Подтверждение FW

REBOOT_UNIT

Перезагрузка PP4X

REBOOT_ONT
Перезагрузка ONT
RESET_TO_DEFAULT_ONT
Сброс ONT к заводским настройкам
APPLY_CONFIG_CHANGES
Применить изменения конфигурации
SAVE
Сохранить
ENABLE_CHANNEL
Включить канал
DISABLE_CHANNEL
Выключить канал
RECONFIG_CHANNEL
Реконфигурация канала
MIGRATE_PON

Migrate конфигурацию PON

MIGRATE_ALL

Migrate конфигурацию ALL

ACTIVATE_ONT

Активация ONT

DEACTIVATE_ONT

Деактивация ONT

RESET_GEM_COUNTERS

Сброс счётчиков GEM портов

DELETE_ONT

Удалить ONT

DISABLE_MYSQL_SERVER

Остановить MariaDB сервер

ENABLE_MYSQL_SERVER

Запустить MariaDB сервер

CLEAR_SWITCH_COUNTER

Сбросить счётчик подключений

GET_PARAMS_STORAGE

Получить параметры user-профиля

SET_PARAMS_STORAGE

Сохранить параметры user-профиля

EMS_SERVER_RESTART
Перезапустить EMS сервер
ONT_FW_UPDATE_BY_SCHEDULER
Обновить через планировщик
INTERRUPT
Прервать
ADDITIONAL
Дополнительная информация
COPY
Копировать
SEARCH_CPE
Поиск CPE
REREAD_HOSTNAME
Перечитать hostname
RESET
Сброс
SEARCH_DUPLICATE
Поиск дублирующихся ONT
RECONFIG_ONT
Реконфигурация ONT
SET_CONFIG_ONT_GROUP
Редактирование конфигурации группы ONT
ONT_NOTE
Редактировать примечание к абоненту
GET_STATISTIC
Статистика
RADIUS_SERVER_RESTART
Перезапустить RADIUS сервер
RESET_TO_FACTORY_DEFAULTS
Сброс к заводским настройкам
LOCK_GUI_USER
Блокировка GUI пользователя
STACK_MASTER_CHANGE
Смена мастера в стеке
SET_PROFILES_FROM_XML
Записать профиль из xml-файла
SWITCH_ONT_AUTO_FLAG
Переключить режим авто-обновления ONT
ADD_ONT_AUTOUP_RULE
Добавить правило авто-обновления ONT
DELETE_ONT_AUTOUP_RULE
Удалить правило авто-обновления ONT
EDIT_ONT_AUTOUP_RULE
Редактировать правило авто-обновления ONT
SWITCH_TO_ALTERNATIVE_FW_IMAGE
Переключение на альтернативный образ ПО
RESET_ONT_COUNTERS_OLTSIZE
Сбросить счетчики на GPON-port
UPDATE_MAIN_FW_VIA_HTTP
Обновить ПО (firmware) через HTTP
ALERTS
События (аварии)
SEARCH_DEVICE
Поиск устройства
MOVE_CPE_TO_GROUP
Переместить CPE в другой класс
ACS_CLEAR_JOURNAL

Очистить журнал ACS-сервера

CHECK_SSID

Проверить параметры SSID

SCHDULE_SSID

Расписание работы SSID

EMS_SERVER_LOG

Лог EMS Server

GPON_ONT_AUTOID

GPON auto-id

SNMP_TRANSPORT

Смена SNMP транспорта

REMOVE_DEVICE_INFO

Удалить информацию об устройстве

FBT_MANAGER

Менеджер настройки FBT

APPLY_CONFIG_AFTER_RESET

Удалить информацию об устройстве

AP_AUTO_INIT

Автоинициализация ТД

REINIT

Переинициализация

ROLLBACK

Отменить непримененные изменения

CANCEL_SESSION

Прерывание сессии


Допустимые значения параметра status:

ЗначениеОписание
OK

Успешно

ERROR

Ошибка


Таблица с примерами логируемых событий и их интерпретацией

Значение параметра function

Значение параметра status

Описание значений object_name

Действия с пользователем
USER

LOGIN
OK
ERROR

Успешная авторизация пользователя в системе.

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

LOGOUT
OK
ERROR

Успешный выход пользователя из системы.

Выход пользователя из системы завершился ошибкой.

ADD
OK
ERROR

Успешное добавление пользователя.

При добавлении нового пользователя в БД произошла ошибка.


Меню Администрирование в GUI EMS


Права и пользователи

Настройка ролей пользователей

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

  • Имя роли;
  • Текстовое описание;
  • Домен, в котором доступны действия для роли;
  • Время бездействия (сек);
  • Список разрешённых действий с объектами:
  • Параметры регистрации на аварии:
    • Информационные (Info);
    • Предупреждения (Warning);
    • Не важные (Minor);
    • Важные (Major);
    • Критические (Critical).

В системе присутствует одна базовая роль администратора, которая называется «SuperUser». Эту роль запрещено редактировать. Она автоматически имеет все права на все объекты.

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

Настройка ролей и пользователей доступна для пользователей системы с правами «Редактировать права и роли». Добавление и редактирование ролей производится путём вызова пункта меню «Администрирование/Права и пользователи/Настройка ролей пользователей». При выборе этого пункта меню программа выдаст диалог, в котором можно редактировать роли (кроме системных ролей «SuperUser» и «NorthBound»), а также добавлять и удалять роли.

Есть возможность настройки времени бездействия для роли – это время в секундах, начиная с последней операции, выполненной пользователем с данной ролью, по истечении которого сессия будет завершена. Для задания бесконечного времени бездействия используется значение «0».

Для каждой роли существует перечень разрешений, который можно изменить, перейдя в меню «Редактировать привилегии».Привилегии сгруппированы в разделы по основным модулям. Все действия по настройке системы управления собраны в разделе «system». Настройка прав на действия с устройствами wireless и конфигурирование основных параметров ТД производится во вкладке «Wireless Common». Для каждой привилегии есть возможность просмотра расположения акций, входящих в состав данной привилегии (кнопка  слева от привилегии).

Список и описание привилегий в приложении v1.23_Привилегии пользователей EMS

  

В настройке роли в разделе «Регистрация на аварии» указываются уровни аварий, которые необходимо отправлять пользователю с данной ролью, подписанному на отправку аварий на почту (E-mail).


Для каждой роли, помимо закреплённых за ней прав, необходимо также задать и область действия этих прав. Для разграничения по группам объектов и узлов можно использовать настройку списка разрешенных объектов либо домен. Настройка производится в разделе "Системные модули", параметр "Тип доступа к устройствам системы". 

При выборе типа доступа пользователей по ролям при редактировании роли необходимо отметить флагом «Разрешить» соответствующие узлы в правой части диалога настройки роли. При разрешении доступа к узлу для данной роли происходит автоматическое разрешение на все вложенные узлы и объекты. Для конфигурирования полного доступа к дереву необходимо выдать разрешение на корневой узел «RootNode».


Настройка пользователей системы


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


Добавление и редактирование

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

Добавление и редактирование пользователей производится путём вызова пункта меню «Администрирование/Права и пользователи/Настройка пользователей системы». При выборе этого пункта меню программа выдаст диалог, в котором можно редактировать пользователей. Системный пользователь с именем «admin» не может быть удалён или переименован. Также для него нельзя поменять дату окончания срока действия прав и сменить роль. Для прочих пользователей можно задавать следующие параметры:

  • Имя — произвольное имя до 32 символов;
  • Описание — произвольное описание до 64 символов;
  • Роль — роль, определяющая права доступа;
  • Пароль — произвольный цифробуквенный пароль;
  • Подтверждение — подтверждение пароля;
  • Дата – дата окончания действия учетной записи пользователя;
  • E-mail – адрес электронной почты для отправки сообщений об авариях;
  • Пересылать аварии на e-mail – при установленном флаге отправлять аварийные сообщения на указанный адрес, иначе – не отправлять (активация и настройка сервиса отправки сообщений на E-mail производится для модуля system, на вкладке Администрирование/Настройка сервера/Системные модули). Аварийные сообщения не пересылаются на адреса заблокированных пользователей и пользователей с истекшей датой действия учетной записи;
  • Пересылать архив логов на e-mail – при установленном флаге отправлять архив лог-файлов на указанный адрес, иначе – не отправлять (подробная настройка монитора описана в разделе Приложение А. п.4 Настройка мониторов);
  • Проблемы ONT на e-mail – при установленном флаге отправлять сообщения на указанный адрес, иначе – не отправлять (подробная настройка монитора описана в разделе Приложение А. п.4 Настройка мониторов);
  • Блокировка – при установленном флаге система блокирует вход для пользователей с текущим именем;
  • Multiuser – режим, позволяющий нескольким пользователям авторизоваться под одним логином. В данном режиме для пользователя прописываются допустимые IP-адреса (ПК GUI). Для указания подсети адресов необходимо воспользоваться символом «»(192.168.0. соответствует сети адресов 192.168.0.0/24). Адреса разделяются пробелом или запятой. Диапазоны адресов указываются в формате: ... или A...* или A.B.. или A.B.C.*. Адреса не валидируются. Максимальный размер поля – 255 символов. Если пользователь авторизуется с одного из допустимых IP-адресов, то пароль не запрашивается.

При отсутствии таблицы базы данных, отвечающей за списки адресов, данный режим считается выключенным.
Пароль не хранится в чистом виде в системе, поэтому администратор системы не сможет сообщить эту информацию.
Флаг «Изменить» рядом с полем «Пароль» предназначен для того, чтобы была возможность заново задавать пароли. В случае если необходимо изменить пароль (или задать его в первый раз), нужно включить флаг и заполнить поле «Пароль». Иначе при изменении прочих параметров, но не активном флаге, изменение пароля не производится. Функция реализована для того, чтобы администратор системы не вводил пароль пользователя при прочих изменениях его данных. Пароль по умолчанию для учётной записи «admin» - пароль пустой.
После окончания срока действия учётной записи пользователя система блокирует вход с этим именем. Администратор системы может продлить время действия или удалить учётную запись.

Домены


Домены – абстрактные сущности, включающие в себя сквозные идентификаторы, посредством которых осуществляется связь системы SoftWLC.

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


Параметры доменов

Типы доменов

Возможности системы позволяют создавать SSID с любым доменом на любой точке доступа. Таким образом, можно организовывать общую Wi-Fi сеть в различных регионах, при этом пользователь с одной и той же учетной записью сможет авторизоваться на всей этой сети. В связи с этим возникает необходимость в создании отдельных веток доменов для точек доступа и для SSID (а также пользователей, потому что их домены совпадают). Для такого разделения в систему была добавлена типизация доменов:

  • 'ap' - домены, предназначенные для работы с точками доступа. При создании такого домена в дереве объектов автоматически создается узел, в который могут быть помещены новые точки доступа.
  • 'service' - предназначены для использования в настройках SSID, учетных записей пользователей, виртуальных порталов и других сервисных объектов.
  • 'both' - универсальный тип, объединяет в себе все функции. Используется в схемах, где отсутствует необходимость в разделении доменов по типам.

Если тип домена не указан, то он наследуется из родительского домена, вплоть до корневого. Если у корневого домена отсутствует тип, то он считается за тип 'both'.


Максимальное число пользователей Wi-Fi

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

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


Регион

Цифровое обозначение субъекта РФ. Параметр используется для работы СОРМ. Этот параметр может наследоваться из родительского домена, вплоть до корневого. Дефолтного значения для этого параметра нет, поэтому если в корневом домене не указан номер региона, то параметр не сможет быть унаследован.


Часовой пояс

Обозначение часового пояса для данного домена. Параметр необходим для поддержки сервисов, работающих по расписанию. Например, отображение портала в зависимости от времени.

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

Для большей однозначности, рекомендуется использовать таймзоны вида Asia/Novosibirsk, Europe/Moscow.

Область "Etc" в наименовании таймзоны имеет особое значение, смещение в ней считается так: зоны западнее GMT имеют положительный сдвиг, а зоны восточнее - отрицательный. Таким образом зона Etc/GTM-7 соответствует UTC+7 (GMT+7) или Asia/Novosibirsk

Внешний идентификатор, Название компании и Номер лицевого счёта (НЛС) относятся к дополнительным параметрам домена, которые используются при необходимости для более точной фильтрации при выгрузках данных доменов во внешние системы или биллинга (с использованием eltex-bob). 


Создание/редактирование доменов

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

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

Наименование домена редактировать запрещено. Возможно только полностью удалить домен и создать заново с новым именем.


Удаление

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

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

При нажатии Подтверждаю, в целях безопасности, будет выведена форма ввода пароля учетной записи.

После ввода пароля и нажатия кнопки "ОК" будет удален домен, со всем содержимым (всё что выведено в предупреждении ранее). Откат этой операции не возможен.


Настройка шейперов трафика по доменам

Интерфейс позволяет настраивать шейпинг трафика на SSID, для этого нужно нажать на кнопку в виде зеленой шестеренки . Работа этого функционала обеспечивается устройством ESR/BRAS.

Кроме ограничения по скорости, наличие правила шейпинга требуется для поднятия data-туннелей в динамическом режиме. Поэтому, для работы каждого SSID на ESR в режиме BRAS необходимо правило шейпинга.

При создании привязки на точках доступа к домену типа 'ap' или 'both', правило шейпинга создается автоматически, по дефолту в нем нет ограничений по скорости.


Ограничения скорости передачи трафика:

  • Average upstream bandwidth, kbps - гарантированная  полоса  которую может получить клиент 
  • Peak upstream bandwidth, kbps -  пиковая скорость передачи трафика от пользователей.
  • Average downstream bandwidth, kbps - Разрешенная средняя скорость передачи трафика в сторону пользователей.
  • Peak downstream bandwidth, kbps - Разрешенная пиковая скорость передачи трафика в сторону пользователей.

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

Для просмотра  суммирующего шейпера для данного домена нужно нажать на кнопку в виде серой шестеренки 

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


Прием и обработка SNMP трапов

В меню осуществляется настройка приема и обработки SNMP-трапов в системе.

Редактирование доступно по нажатию кнопки «Редактировать» либо двойным щелчком мыши на строке выбранного трапа SNMP.

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

  • Disabled – отбрасывать трап (обработка системой не производится – трап не отсылается на e-mail, не записывается в БД, не меняется оперативный статус устройств и т.д.);
  • Priority – приоритет (отображение сообщения в журналах с данным приоритетом);
  • Always closed – переводить аварию сразу в состояние «Закрыта» (не будет попадать в активные аварии, только в журнал событий, вследствие чего не будет работать звуковая сигнализация);
  • Не хранить в БД – не вносить сообщение в БД (журнал событий) и активные аварии, при этом производить обработку (например, оперативный статус устройства будет меняться, однако записи в журналах не производятся).

По кнопке «Сброс» производится сброс параметров в значения по умолчанию.

По кнопке «Черный список» можно настроить для отдельного трапа список устройств, для которых данный трап отбрасывается (аналогично настройке «Disabled»). Для части трапов из списков «ALL», «EMS_SERVER» и «KEEPALIVED» добавление в черный список недоступно, поскольку трапы системные и необходимы для нормальной работы СУ.


Задачи по расписанию (мониторы)



Подробное описание системных мониторов приведено в приложении v1.23_Системные мониторы


Системные модули


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

pcrf

Модуль отвечает за взаимодействие с сервисом eltex-pcrf. Настраиваемые параметры:

  • Статус - включен/выключен.
  • URL - адрес для подключения к eltex-pcrf.
  • Таймаут соединения - время ожидания ответа от сервера eltex-pcrf.
  • Таймаут чтения/записи - время ожидания ответа от сервера eltex-pcrf.


radius


Настройка взаимодействия с сервером RADIUS. Необходимо для проверки состояния и перезапуска RADIUS сервера при обновлении таблицы NAS.

  • Имя службы RADIUS - выбор из выпадающего списка названия используемого сервиса.
  • "Secret" для localhost - секретный ключ, который будет использовать сервер EMS для проверки состояния сервера RADIUS.
  • IPадрес хоста EMS в качестве RADIUS-клиента - адрес EMS сервера, с которого будет происходит обращение на RADIUS-сервер.
  • Таймаут перезапуска - время ожидания подтверждения о выполнении перезапуска RADIUS сервера.
  • Мин. интервал перезапуска - интервал между рестартами.
  • Перезапускать RADIUS - Включить перезапуск службы Radius при изменении NAS (отключен по умолчанию)


softwlc.nbi


Настройка взаимодействия с SoftWLC.NBI.

  • Статус - включен/выключен.
  • URL - ссылка для получения WSDL файла.
  • Имя пользователя - логин для подключения к SoftWLC.NBI. 
  • Пароль - пароль для подключения к SoftWLC.NBI.
  • Таймаут соединения - время ожидания ответа при подключении.
  • Таймаут запроса - время ожидания ответа при выполнении запроса данных.


system


Раздел содержит настройки работы основного модуля EMS.

Общие настройки
Название параметраОписание
Язык интерфейса и системных сообщенийВыбор языка интерфейса, доступны русский и английский языки.
Запретить отправлять трапы на ГУИДеактивация поступления обновлений. Пользователю придется пользоваться кнопкой "Обновить".
IP адрес EMS сервера в управляющей сети станцийIP-адрес интерфейса, с которого сервер EMS будет обращаться к точкам доступа.
Каталог временных файловАдрес хранения временных файлов, создаваемых при работе сервера EMS.
Tomcat URLURL-адрес сервера EMS для доступа к нему из внешних сетей. Используется для скачивания данных с сервера на пользовательские ПК по протоколу HTTP.
Внутренний TOMCAT URLURL-адрес сервера EMS для доступа к нему из cети управления точками доступа. Используется для обновления прошивок точек доступа по протоколу HTTP.
Каталог общих файловКаталог файлов, создаваемых EMS и требующих хранения, например шаблоны файлов конфигураций.
Каталог временных файлов БДКаталог для хранения временных файлов, получаемых с БД, например, дампов или архивов, которые будут в последствии отправлены на другой сервер.
Уровни логирования работы мониторовГлобальная установка уровня логирования мониторов EMS сервера (задачи по расписанию). Доступные значения: DEBUG, INFO, WARN, SEVERE, ERROR, FATAL
Дополнительные командыНабор дополнительных команд.
Посылать SNMP предзапрос 'Контроль доступности'Выполнение проверки доступности устройства перед выполнением операций конфигурирования.
Таймаут операции SNMP предзапросаВремя ожидания ответа от устройства при проверке доступности.
Копировать принятые трапы в SyslogКопирование всех принятых сообщений (SNMP trap) в Syslog.
Сохранять дату автоматического закрытие в БДСохранение даты автоматического закрытия аварии  в БД. Если False, дата проставляется только при ручном закрытии.
Размер очереди для менеджера асинхронных задачМаксимальное количество одновременно выполняемых асинхронных задач.
Время хранения записей в списке 'Задачи'Максимальное время хранения задач, по истечению которого задачи из списка будут удалены.
Активировать работу ICMP/SNMP пинга
Включение/выключение механизма опроса устройств в дереве объектов.
Период опроса устройства (ICMP, SNMP ping)Интервал опроса устройств в дереве объектов. При большом количестве устройств система может не успевать выполнить опрос всех устройств в указанное время, в этом случае при запуске сервера будет отображаться сообщение о необходимости увеличить интервал.
Флаги ping-утилиты при периодическом опросе устройстваФлаги fping-утилиты при периодическом опросе устройства, для построения графика доступности. По умолчанию используются ключи '-r3 -i 5 -p 500'. Всегда стоят '-q -c1 -f '
Лимит по количеству устройств за 1 запуск ping-утилиты fpingЛимит по количеству устройств за 1 запуск fping-утилиты при периодическом опросе устройства, для построения графика доступности.
Размер пула обработчиков опроса доступностиКоличество обработчиков, выполняющих опрос устройств в дереве.
Период хранения результатов ICMP, SNMP запросовПериод опроса, который будет хранится в памяти EMS. Более старые данные будут удаляться.
Таймаут проверки GUI сессии в состоянии 'Создана'Время проверки сессии после загрузки апплета.
Синхронизировать устройство после восстановления связиМеханизм автоматической синхронизации устройств в случае, если связь с ним была потеряна на длительное время (равное "Периоду, после которого запустится автосинхронизация"), а потом восстановлена.
Конфигурация устройства после восстановления связиМеханизм, выполняющий конфигурирование устройства в соответствии с действующей привязкой инициализации.
Период, после которого запустится автосинхронизацияИнтервал времени между событиями потери и восстановления связи к объекту, при превышении которого запускается автоинициализация и конфигурирование.
Режим ACS.GUIАктивация режима работы ACS.
Применять генерацию пользовательских событийВключение функционала, позволяющего создавать специальные аварии и события, на основе существующих триггеров.
HTTP таймаутВремя ожидания ответа ответа на запросы по протоколу HTTP.
Тип доступа к устройствам системыВыбор механизма определения области видимости объектов системы для пользователей. При использовании доменной системы видимость объекта определяется по совпадению доменов пользователя и объекта. В системе по ролям зоны видимости по узлам в дереве объектов.
Проверять хостнейм для всех устройствФункция проверки hostname у устройств в дереве объектов. В случае если имя объекта в дереве не совпадает с hostname устройство помечается как аварийное.
Токен для платного доступа к КЛАДРТокен, используемый для платного доступа к системе КЛАДР (при отсутвии используется бесплатный доступ).
Включить геоданные объектовДополнительные опции при инициализации точек доступа, включают в себя адрес инсталляции, ФИО сотрудника, номер заявки, географические координаты.
Включить обязательность геоданных объектовПри создании привязок инициализации заполнение геоданных становится обязательным условием.
Настройка геокодераВыбор геокодера для определения географических координат.
Ключ геокодераКлюч геокодера.


Обработка входящих трапов
Название параметраОписание
Тип выборки обработчика трапов
Выбор типа выборки из выпадающего меню.
Максимальный размер буфера IP адресов
Максимальное количество IP-адресов в буфере.
Максимальный размер количества обработчиков трапов
Максимальное количество обработчиков трапов.


Настройки апплета (GUI)
Название параметраОписание
Заголовок аплетаОтображается в заголовке окна.
Отображать кнопку "Помощь" рядом с параметромРядом с параметрами появляется дополнительная кнопка с кратким описанием.
Сохранять значение фильтров поиска при выходе из вкладкиСохранение фильтров на вкладках, например, на вкладке "Список устройств".
Запоминать ранее выбранную вкладку при переходе к другому объекту
При переходе на устройство будет открыта последняя открытая вкладка для этого типа устройств.
Открывать вкладку 'Активные аварии' при переходе на узелПри переходе на любой узел всегда открывается вкладка "Активные аварии".
Приоритет аварий для сигнализации в дереве объектовУровень аварии на устройстве, достаточный чтобы попасть в список активных аварий.
Модуль сохранения результатов мониторинга в кольцевую базу (RRD)Включение/отключение модуля мониторинга RRD.
Отображать количество записей в таблицахОтображение счетчика числа записей в таблицах. Рекомендуется отключать в высоконагруженных системах.
Отключить и скрыть функционал сброса конфигураций к заводским настройкамОтключает и убирает команды функционала сброса конфигураций устройств к заводским установкам.
Приоритет аварии о проблемах при опросе доступности устройствАвария генерируется при отсутствии свободного обработчика доступности.


Настройка подсистемы высылки сообщений из журнала трапов на внешнюю систему
Название параметраОписание
Включить сервисАктивация сервиса.
Включить стартовый трап системы EMSОтправка специального трапа при старте сервера EMS.
Тип отправляемого сообщенияТип сообщения trap/inform.
Адрес приемникаIP-адрес сервера, обрабатывающего сообщения от EMS.
Порт приемникаПорт, прослушиваемый сервером-обработчиком.
Количество повторов informv2Количество повторных отправок сообщений, если не пришло подтверждение о доставке.
Таймаут повтора informv2Интервал времени между повторными отправками.
Системный OID, с которого отправляется трапИнформационное поле.
Системный OID, означающий тип нотификацииИнформационное поле.
Включить транслитерациюКонвертация русскоязычных символов в сообщении в латиницу.
SNMP trap communityИмя сообщества.
Список приоритетов отправляемых событийМожет принимать значения DEBUG, INFO, WARN, SEVERE, ERROR, FATAL.


Отправка аварийных сообщений на почту

Отправка сообщений об авариях на почту по протоколу SMTP.

Название параметраОписание
Включить сервисАктивация сервиса.
Адрес сервераIP-адрес SMTP-сервера.
Порт сервераПорт, прослушиваемый SMTР-сервером.
ЛогинЛогин учетной записи для на SMTP-сервере.
ПарольПароль от учетной записи на SMTP-сервере.
Использование шифрованияНастройка типа шифрования, используемого почтовым сервером (без шифрования, STARTTLS, SSLTLS).
Протокол шифрования SSLИспользуемый протокол шифрования (по умолчанию TLSv1.2).
Имя сервераИмя сервера в теме письма.
Первая строка содержимого письмаИнформационное поле, содержит пример сообщения в письме.
От кого (адрес отправителя)Еmail пользователя, от имени которого отправляется сообщение.
EMail адрес службы поддержкиАдрес техподдержки, который будет указан в конце письма для обратной связи.

При использовании шифрования рекомендуется использовать протокол "TLSv1.2".

При использования шифрования "SSLTLS" по умолчанию используется порт 465.

При использовании шифрования "STARTTLS" по умолчанию используется порт 587. 

С версии openjdk 1.8.292 по умолчанию заблокирована возможность использовать протоколы шифрования "TLSv1.0" и TLSv1.1



airtune


Раздел содержит настройки подключения к сервису AirTune:

  • Protocol - выбор протокола из выпадающего меню;
  • Host - доменной имя или IP-адрес сервера, на котором установлен сервис;
  • Port - порт сервера, по которому идет обращение к сервису;
  • Connection Timeout, s - время ожидания подключения к сервису, в секундах;
  • Request Timeout, s - время выполнения запроса к сервису, в секундах.


tftpserver


Раздел содержит настройки подключения к TFTP-серверу:

  • IP адрес для станционных устройств - общий адрес, который используется для работы со станционными устройствами;
  • Порт (для встроенного TFTP) - порт локального (встроенного в  EMS) TFTP сервера, возможные значения  1..65535 (по умолчанию 69);
  • Корневой каталог службы - корневой каталог службы tftpd;
  • Подкаталог firmeare/boot файлов станционных устройств - названия подкаталогов в корневой папке (не редактируемые поля);
  • Подкаталог файлов конфигураций - подкаталог, с которым производятся действия при операциях загрузки/выгрузки конфигураций станционных устройств.


wirelessCommon



Название параметраОписание
Максимальное время хранения информации о ТДВремя хранения информации. полученной при открытии вкладок конфигурации точки доступа.
Путь к файлам статических IP адресов DHCP серверовПуть к файлам статических IP адресов DHCP серверов, если несколько, они указываются через пробел.
Автоматическая инициализацияАвтоматическая инициализация точек доступа, от которых были получены трапы присутствия. Функция должна быть активна для автоматической обработке смены IP-адресов точками доступа.
Удалять ТД из дерева при неудачной инициализацииПри неплановом завершении инициализации ТД удалять ее из дерева устройств.
Ключи привязок инициализацииВыбор ключей, по которым можно создавать привязки к устройствам.
Разрешить установку SSID на WDS радиоканалыПо умолчанию функция выключена, т.к. настройка дополнительных SSID вместе с WDS снижает общую скорость передачи данных.
Выключать SSID не имеющие привязки

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

При синхронизации SSID или исправлении привязок, оставляет включенным VAP только на тех радио интерфейсах, для которых выбрано условие в параметрах SSID,  

Собирать статистику по количеству пользователейАктивация функции сохранения данных о количестве активных пользователей на точках доступа при отрабатывании монитора синхронизации устройств.
Собирать статистику загрузки uplinkАктивация функции сохранения данных о максимальном количестве трафика, прошедшего через сетевой интерфейс eth0 на точках доступа. Рассчитывается среднее количество трафика в единицу времени за последний интервал между двумя последними срабатываниями монитора 'Синхронизация устройств' - если рассчитанное за интервал значение больше текущего максимального значения, то максимальное значение будет обновлено.
Шаг отправки алерта AssociateClients, в сек.Период отправки сообщений об ассоциации клиента.
Запретить назначать WPA2 Personal на VAP, если не заполнены параметры для RADIUS accountingЗапрет назначения WPA2 Personal на VAP, если не заполнены параметры для RADIUS accounting. По умолчанию функция отключена.
Всегда разрешать настройку RADIUS в SSIDРазрешение на настройку параметров RADIUS для любого типа SSID. По умолчанию функция отключена.
Период актуализации данных динамических туннелей, в сек.Интервал времени включения задачи по актуализации данных динамических туннелей.
Параметры окружения при добавлении/редактировании SSIDАктивация/деактивация отображения параметров окружении при создании и редактировании SSID.
Доступ к личному кабинету
ВключенАктивация Личного Кабинета.
URL Личного КабинетаURL для перехода на сервис Личного Кабинета.
Secret для POST запросов к Личному КабинетуСекретный ключ для отправки запросов в Личный Кабинет.
Timeout запросов к Личному Укибинету, секИнтервал времени на отправку запросов к Личному Кабинете, в секундах.
Выключить проверку сертификатовВыключение проверки сертификата при настройке подключения через HTTPS к Личному Кабинету.
Настройки уведомлений смены паролей SSID
Включить уведомления смены паролей SSIDАктивация функционала отправки уведомлений.
E-mail адресАдрес для отправки уведомлений.


АРМ администратора


Меню отображает информацию об активных пользователях системы.


Список текущих активных пользователей приведен в поле «Активные пользователи», для его обновления необходимо нажать кнопку «Обновить список».


Перезапуск системы EMS


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



Поведение графического интерфейса


Настройка цветовой схемы

Настройка осуществляется из меню «Администрирование/Поведение графического интерфейса/Настройка цветовой схемы».


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

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


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


Вкладки HSV и HSL

Цветовая модель HSV (HSB) и HSL- оттенок (тон), насыщенность, яркость (для HSL – уровень света).
Типы палитр:

  • Hue — цветовой тон. Варьируется в пределах 0—360.
  • Saturation — насыщенность. Варьируется в пределах 0—100. Чем больше этот параметр, тем «чище» цвет, чем ближе к нулю, тем ближе цвет к нейтральному серому.
  • Lightness— яркость (уровень света). Варьируется в пределах 0—100.
  • Value – значение цвета. Варьируется в пределах 0—100.
  • Transparency — прозрачность. Варьируется в пределах 0—100.

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



Вкладка RGB

Цветовая модель RGB – аддитивная цветовая модель, описывающая способ синтеза цвета для цветовоспроизведения. Каналы – красный, зеленый, синий.
Желаемый цвет можно получить, передвигая ползунки или выставляя определенные значения в полях справа от каждой шкалы.



Вкладка CMYK

Цветовая модель CMYK – субтрактивная схема формирования цвета, используемая прежде всего в полиграфии для стандартной триадной печати. Схема CMYK обладает сравнительно с RGB меньшим цветовым охватом.
Желаемый цвет можно получить, передвигая ползунки или выставляя определенные значения в полях справа от каждой шкалы.

Для сохранения изменений необходимо нажать кнопку «ОК», для выхода из меню редактирования без сохранения изменений – «Cancel». Кнопка «Reset» позволяет отменить текущие изменения без выхода из меню редактирования.
По окончанию настройки цветовой гаммы аварий для вступления изменений в силу необходимо нажать кнопку «Принять», для выхода без сохранения изменений – кнопку «Отменить». По нажатию на кнопку «Default» выводятся цвета, установленные по умолчанию.

Настройка звуковой схемы апплетов

Настройка осуществляется из меню «Администрирование/Поведение графического интерфейса/Настройка звуковой схемы апплетов».



Включение/выключение звукового сигнала при поступлении каждого типа сообщения осуществляется в выпадающем меню.

По окончанию настройки звуковой схемы аварий для вступления изменений в силу необходимо нажать кнопку «Принять», для выхода без сохранения изменений – кнопку «Отменить». По нажатию на кнопку «Default» выводятся значения, установленные по умолчанию.

ПО устройств


Станционное ПО

Список файлов ПО/boot файлов

Меню содержит таблицу регистрации файлов прошивок в системе EMS для возможности обновления ПО в любом из устройств.
Флаг «Актуальный» позволяет отметить указанный файл ПО как файл для обновления по умолчанию.

Файл ПО возможно использовать для обновления только после его регистрации.

Журнал опроса

Меню содержит таблицу, в которой отображается опрос устройств (запрос текущих версий). Опрос версий выполняется монитором "Прошивки FW", который, согласно собственных настроек, периодически опрашивает все устройства сети и сохраняет в БД. Это позволяет контролировать все версии FW всех устройств сети. Идентифицируется "Тип информации"=READ.
 
События в журнале возможно отфильтровать по одному или нескольким параметрам.
Список фильтров записей журнала:

  • Тип устройства – выбор осуществляется из выпадающего списка;
  • Полный тип устройства – тип устройства, выбор осуществляется из выпадающего списка;
  • IP – IP-адрес источника сообщения;
  • Тип информации – все/UNKNOWN/UPLOAD/READ;
  • Инициатор – инициатор процесса;
  • Дата: от/до– временные рамки создания записи в формате ДД.ММ.ГГГГ либо ДД.ММ.ГГГГ ЧЧ.ММ;
  • Версия ПО.

В поле «Количество записей» производится настройка объема сообщений, выводимых на страницу. Для навигации по страницам используется панель закладок в нижней части окна.
Для перевода значений всех фильтров в исходное состояние необходимо воспользоваться кнопкой «Очистить фильтры».



Получение логов работы сервера EMS


В данном меню осуществляется выгрузка файлов логов работы сервера EMS, captive portal:

  • /var/log/eltex-portal/debug_ep.txt
  • /var/log/eltex-portal/error_ep.txt
  • /var/log/eltex-portal/sms_ep.txt
  • /var/log/eltex-ems/black_box.txt
  • /var/log/eltex-ems/ems_error.txt


Файлы доступны по ссылке для скачивания архива в задаче.

Ниже приведено содержание архива.


Работа с авариями


Общие принципы получения, хранения, отображения, автоочистки

Событиями в системе управления EMS являются:

  • SNMP trap, принятые от устройств работающих в сети;
  • SNMP trap от внутренних компонентов окружения системы EMS (например, от Keepalived);
  • системные сообщения, полученные на основе данных, получаемых системой EMS (например, контроль доступа – ping, контроль температуры устройств) при выходе контролируемых величин из допустимого диапазона;
  • ошибки работы внутренних процессов системы EMS (мониторов, асинхронных задач), выведенные в виде аварий для отображения в меню «Активные аварии» и привлечения внимания оператора.

События могут служить для следующих целей:

  • информирование пользователя о внештатных ситуация (авариях);
  • сбор и отображение оперативной информации о работе элементов сети (смена состояний ONT, подключение клиентов Wi-Fi).

Все принятые события могут сохраняются в базу данных MariaDB.
Исключения (т.е. указание не сохранять сообщения в БД) могут быть настроены через GUI (см. ниже).
Записи из БД отображаются на вкладках «Мониторинг/Журнал событий» индивидуально для каждого устройства.
Также в системе EMS доступно меню «События/Журнал событий», где можно просмотреть события для всех устройств и самого сервера EMS.


Настройка приёма сообщений (трапов). Принципы фильтрации


Все правила обработки сообщений изначально заданы разработчиками системы SoftWLC в конфигурационном файле TrapRules.xml и не предполагают вмешательства со стороны пользователя системы.

Настройки, доступные для пользователя, выведены в GUI интерфейс (меню «Администрирование/Настройка сервера/Прием и обработка SNMP трапов») и хранятся в БД. Их значения переопределяют исходные значения, указанные в TrapRules.xml.

Фильтр «OID» используется для поиска нужного события в списке.
Фильтр «Устройство» используется для выделения из списка группы аварий, характерных для того или иного устройства.
Группа «ALL» объединяет события, которые высылаются в одинаковом формате для всех типов устройств.
Группа «KEEPALIVED» объединяет сообщения о смене состояний компонентов системы при резервировании.
Группа «EMS_SERVER» объединяет сообщения генерируемые самой системой EMS.
Для изменения (кнопка «Редактировать») оператору доступны следующие параметры:

    • Disabled – в значении «true» - полностью выключить обработку трапа (не сохранять в БД, не выполнять обработку события);
    • Priority – приоритет события; задает степень важности события для системы EMS;
    • Always closed – «всегда закрыт» - при указании значения «true» сообщение сохраняется в БД, но не отображается на вкладке «Активные аварии».
    • Не хранить в БД – значение «true» отключает сохранение записи события в БД, но не блокирует работу системных обработчиков события в системе EMS.

Для системных сообщений управление некоторыми параметрами может быть ограничено разработчиками, так как подобные изменения могут нарушить работоспособность системы.
Кнопка «Сброс» служит для очистки параметров приема трапа из БД и приводит к возврату к значениям, указанным в TrapRules.xml.
Кнопка «Черный список» позволяет ограничить круг устройств, от которых будет приниматься трап. Такое действие может потребоваться для блокировки приема сообщений с устройства, временно выведенного из нормальной работы, чтобы не отвлекать оператора присутствием событий в «Активных событиях» и «Журнале событий». Настраивается индивидуально. Запрещено редактирование Черного списка для системных сообщений.

Настройка автоочистки, выгрузки на внешние носители (мониторы, скрипты, cron)

Автоматическая очистка аварий выполняется монитором «Экспорт журнала сообщений (alerts_archiving)».
Удаление событий выполняется по партициям (разбивка БД по дням).
Если в настройках монитора указана опция «enable_export», то перед удалением записи сохраняются в csv-файл.

Принцип отображения в GUI: таблица сигнализации (включая настройку цвета, звука)


Администратору SoftWLC доступны следующие настройки отображения аварий в меню «Администрирование/Поведение графического интерфейса»:

    • Настройка цветовой схемы – служит для ассоциации приоритета событий (и syslog сообщений) с определенным цветом на усмотрение оператора (подробнее в разделе 13.1);
    • Настройка звуковой схемы аварий – служит для ассоциации приоритета событий со звуковой сигнализацией (подробнее в разделе 13.2).

В настройке звуковой схемы отображаются только те приоритеты, которые отображаются в «Активных событиях». По принятой договоренности события INFO и CLEAR в «Активных событиях» не отображаются, так как не могут быть удалены оттуда.
При настройке звука доступны следующие опции:

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

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

Принцип автоочистки аварий (OID, значащие параметры)


Все события, приоритет которых выше чем INFO, попадают в «Активные аварии».
Активные аварии – это динамический список событий, который существует только в оперативной памяти системы. С базой данных он никак не связан.
При получении аварии (например, OID1, Критическая нагрузка на канал №3), в «Активные аварии» попадает авария уровня MAJOR. В случае повторного получения аварийного события система обновит дату приема сообщения, чтобы событие переместилось вверх в таблице при постоянной сортировке по времени. Дату получения первого аварийного сообщения можно будет установить по параметру «Время возникновения». Ключом к установлению уникального события является комбинация ID устройства в дереве, OID сообщения и значимых параметров. Значимым параметром в указанном примере является номер канала. Конфигурация TrapRules.xml позволяет назначить связь между OK-событием и аварией. Это значит, что в правило обработки OID2 (нагрузка на канал в норме) включен параметр NormalizesOID. По комбинации ID устройства, NormalizesOID и значимых параметров система EMS находит активную аварию OID1 и удаляет ее из списка «Активных событий». Этот процесс в системе EMS называется нормализацией. В БД («Журнал событий») в этом случае попадает запись уровня CLEAR, где сообщается, что критической нагрузки на канал №3 больше нет. Записи, полученные при приеме аварийных сообщений, в БД никак не модифицируются (иначе это была бы бессмысленная нагрузка на БД). Время возникновения и устранения аварии устанавливается по времени записи аварийного и активного события в БД.

Отличия между журналом событий (log) и активными авариями

«Журнал событий» - это непрерывная лента событий в системе EMS, куда последовательно записываются все события для устройств сети и самой системы. «Активные аварии» - виртуальный список событий, количество записей в котором при нормальной работе сети должно стремиться к нулю.
Вкладка «Активные аварии» обновляется автоматически на основе данных, постоянно присылаемых сервером в GUI пользователя.
Отключить автообновление можно, сняв флаг «Автообновление» на вкладке.
Фильтр на вкладке «Активные аварии» позволяет отобразить часть записей по определенному условию: присутствие всех перечисленных слов (разделенных пробелом) в строке таблицы (вне зависимости от колонки), присутствие хотя бы одного из перечисленных слов в строке таблицы (если стоит галочка ИЛИ).
Также «Активные аварии» отвечают за включение Сигнализации. Каждый раз при обновлении списка «Активных с аварий» GUI проверяет обновленный список на предмет наличия в нем аварии, на приоритете которой включена звуковая сигнализация. Если такая авария присутствует, включается звуковое оповещение. Сигнализацию можно остановить (когда оператор занялся проблемой) с помощью кнопки «Выключить» на вкладке «Активные аварии». Однако при следующем получении аварийного сообщения от устройства сигнализация будет включена повторно.
Для информирования пользователя об активной сигнализации в меню «События» (верхний правый угол конфигуратора) текст подсвечивается красным, и при наведении указателя мыши в подсказке можно увидеть источник и текст аварии, которая стала причиной включения сигнализации в этот раз.
Для «Активных аварий» доступно редактирование статуса.
При переводе события в состояние «В обработке» в БД для данного события отмечается дата обработки и пользователь-обработчик.
При переводе в состояние «Закрыто» в БД для данного события отмечается дата закрытия и пользователь, закрывший аварию. При переводе в состояние «Закрыто» авария пропадает из списка «Активных аварий».
Также доступно массовое удаление записей из «Активных аварий». Для этого существует меню правой кнопки мыши «Удалить все активные события для устройства или узла». В открывшемся диалоге пользователю нужно выбрать: очистить ли все аварии для устройства, на котором возникла выделенная авария, или очистить все аварии для всех устройств узла, где находится устройство.

Вывод статистики активных аварий

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

Ручной экспорт аварий: текущие (с экрана) или по фильтру (с сервера)

Записи вкладки «Журнал событий» можно сохранить в файл.
Для этого существуют две кнопки:

  • Экспорт – служит для сохранения выделенных в GUI записей. Пользователю нужно выделить нужные строки и выбрать путь для нового файла. Файл формируется в формате csv. В дальнейшем может быть импортирован в любой текстовый редактор для работы с таблицами (MS Office Excel, OpenOffice Calc).
  • Сохранить – служит для вывода содержимого таблицы БД в файл в формате csv. В этом случае содержимое файла определяется по фильтрам на вкладке. Все записи БД, удовлетворяющие этим фильтрам, будут сохранены в файл. Сохранение в файлы выполняется средствами MariaDB на сервере. Прогресс выполнения и результат отображается на вкладке «Задачи» (нижняя часть апплета, по умолчанию свернута). В случае успеха пользователю будет предоставлена возможность скачать файл по ссылке. Полный текст задачи открывается по двойному щелчку.
Журнал Syslog

Журнал «Syslog» служит для сбора syslog-сообщений с устройств сети.
Для этого на хосте системы работает rsyslog, модуль которого, rsyslog-mysql, позволяет сохранять все полученные по сети сообщения в базу данных для последующей обработки.
Для записей таблицы Syslog доступны операции экспорта и сохранения, работа которых полностью аналогична их работе с авариями.

Подсистема опроса доступа устройств. Принцип генерации аварии недоступного устройства

Важным компонентом системы EMS является «Опрос доступности устройств».
Включается в настройках модулей системы (меню «Администрирование/Настройка сервера/Системные модули») в модуле system «Опрос доступности (ICMP, SNMP ping)».
Опрос доступности выполняется по протоколу ICMP и SNMP и позволяется оперативно информировать пользователя о нарушении связи с устройством в целом или о наличии проблем в работе SNMP-протокола.
Для опроса доступности по SNMP выполняется GET запрос на OID 1.3.6.1.2.1.1.3.0 (SNMPv2-MIB::sysUpTime.0).
Статистика по времени получения ответа может быть получена на вкладке «Мониторинг/Статистика ICMP», «Статистика SNMP» для каждого устройства индивидуально в виде графика.
Также подсистема опроса доступности отвечает за генерацию системной аварий «Потеря связи» и ОК-события «Восстановление связи».
К восстановлению связи может быть привязана синхронизация устройства (реализовано для LTP, MA4000, WEP, WOP). Функция увеличивает нагрузку на SNMP на устройстве и потому включается при необходимости в настройках модулей системы в модуле system «Синхронизировать устройство после восстановления связи по SNMP».



Контроль и управление резервированием

Просмотр и управление режимом резервирования в GUI осуществляется через диалог пункта меню «Информация/Состояние системы резервирования» главного меню апплета.
Контроль состояния системы резервирования Keepalived в GUI осуществляется в меню «Информация/ Состояние системы резервирования».



В диалоге по нажатию на кнопку «Общие» отображается:

  • Version - текущая версия ПО Keepalived;
  • Router ID – идентификатор реального сервера, на котором в данный момент активен виртуальный IP-адрес (то же значение указано в колонке RouterID в основной таблице). Router ID задается к конфигурации keepalived.conf, для наглядности рекомендуется включать в него часть IP-адреса;
  • настройки оповещения по e-mail
  • статус оповещения SNMP-trap;
  • текущий тип работы с интерфейсами.


В диалоге по нажатию на кнопку «Статистика» отображается текущая конфигурация и состояние выбранного виртуального или реального сервера.

В основной таблице отображаются:

  • VirtualServerIndex – индекс виртуального сервера;
  • Type – тип входящих в него серверов (одного виртуального и N реальных);
  • Address – IP-адрес виртуального/реального сервера;
  • Status – текущий статус виртуального/реального сервера (возможны значения alive и dead);
  • Weight – вес может использоваться для балансировки нагрузки;
  • Router ID – идентификатор реального сервера, на котором в данный момент активен виртуальный IP-адрес (отображается только для виртуального сервера);
  • Action – в случае недоступности сервера и при наличии в БД записи по намеренному выключению сервера из работы отображается время выключения сервера.


Кнопки «Включить»/«Выключить» позволяют управлять состоянием сервиса eltex-ems на реальных серверах (данный функционал не доступен при работе EMS в Docker).
Управление осуществляется через сценарий /usr/lib/eltex-ems/scripts/switch-remote-ems.sh.
В switch-remote-ems.sh должны быть указаны работоспособные параметры доступа по протоколу SSH к удаленному серверу (login, password).
Эти параметры должны быть одинаковы на всех машинах; назначение персональных параметров доступа к каждому из серверов системой не предусмотрено.
В случае ошибки выполнения скрипта (например, из-за некорректных настроек параметров доступа) в GUI отобразится ошибка.


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

На вкладке «Активные аварии» и в системном журнале событий доступны последние сообщения:

  • смена состава реальных серверов;
  • переход реального сервера в состояние master (ведущий).

Для корректного отображения информации на серверах должны быть настроены службы snmpd и keepalived, при этом для keepalived должна быть включена возможность отдачи статусов по протоколу SNMP.

Пример настройки /etc/keepalived/keepalived.conf
#! Configuration File for keepalived
virtual_server <VRRP IP-адрес> <порт> {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    protocol TCP

    real_server <реальный IP-адрес сервера 1> <порт> {
        TCP_CHECK {
                connect_timeout 3
        }
    }
    real_server <реальный IP-адрес сервера 2> <порт> {
        TCP_CHECK {
                connect_timeout 3
        }
    }
}

global_defs {
   script_user root
   enable_script_security
   enable_traps
   enable_snmp_checker
   enable_snmp_rfcv3
   enable_snmp_rfcv2
   enable_snmp_rfc
   vrrp_garp_master_repeat 10
}

vrrp_instance eth1 {
    state BACKUP
    interface eth1
    virtual_router_id 1
    #track_script {check_network}
    #track_interface {eth1 weight 50}
    priority 220
    advert_int 1
    nopreempt
    # Uncomment and comment "nopreempt" if preemption needed
    #preempt_delay 180
    authentication {
        auth_type PASS
        auth_pass eltex
    }
    virtual_ipaddress {
       <реальный IP-адрес сервера 1/маска> dev eth1 label eth1:VIP_1
    }

    notify_master "/etc/keepalived/keep_notify.sh master"
    notify_backup "/etc/keepalived/keep_notify.sh backup"
    notify_fault "/etc/keepalived/keep_notify.sh fault"

    unicast_peer {
        <реальный IP-адрес сервера 2>
    }
}

Для заполнения таблиц используются OID:

  • realServerAddress - 1.3.6.1.4.1.9586.100.5.3.4.1.4
  • realServerPort - 1.3.6.1.4.1.9586.100.5.3.4.1.5
  • virtualServerAddress - 1.3.6.1.4.1.9586.100.5.3.4.1.6
  • virtualServerPort - 1.3.6.1.4.1.9586.100.5.3.3.1.7
  • virtualServerStatus - 1.3.6.1.4.1.9586.100.5.3.3.1.11
Методика проверки

Проверка системы резервирования осуществляется после настройки всех вышеперечисленных служб: MariaDB, rsync, keepalived и заполнения конфигурационных файлов всех сопутствующих скриптов.
Требуется проверить корректность обработки следующих ситуаций:

  • внезапное выключение одного из серверов по питанию;
  • остановка службы eltex-ems;
  • остановка службы tomcat8;
  • пропадание связи с одним из серверов;
  • ручное переключение мастерства из EMS GUI.

Необходимо проверить поведение системы как при аварийной ситуации, так и при восстановлении (связи, питания, служб и т. д.).
Необходимо убедиться в следующем:

  • при нарушении работы Master-сервера виртуальный адрес передаётся резервному;
  • передача ведущей роли сопровождается сообщением в СУ (активные аварии, журнал событий);
  • передача ведущей роли сопровождается назначением виртуального IP-адреса;
  • восстановление работоспособности бывшего Master-хоста не приводит к возврату статуса Master на хост;
  • все изменения в записях БД, связанные с оперативной работой сервиса eltex-ems (объекты, роли, пользователи, настройки), реплицируются на оба сервера (БД) и доступны и актуальны сразу после потери связи;
  • файлы конфигураций и образов ПО синхронны на обоих серверах.

Для контроля используются:

  • консольная утилита ifconfig для контроля адреса vip;
  • консольный клиент MariaDB для контроля содержимого БД;
  • SoftWLC GUI для контроля генерации аварийных сообщений, контроля корректности подключения к vip, контроля статуса серверов;
  • консольный файловый менеджер mc для контроля синхронности файлов ПО, конфигураций на обоих серверах.


Самоконтроль работы системы (сторожевой таймер watchdog)


Программный комплекс SoftWLC состоит из серверной и клиентской части. Клиентская часть (GUI) выполняется на ПК пользователя в браузере. Серверная часть (Server) функционирует на отдельном сервере (или паре серверов в варианте с резервированием). Для обеспечения непрерывной работы на сервере используется механизм самоконтроля, сторожевой таймер (контрольный таймер, англ. Watchdog). Задачей данного механизма является периодический опрос сервера с целью определения работоспособного состояния. В случае, когда сторожевой таймер определяет, что сервер недоступен, выполняется попытка принудительного перезапуска основной службы eltex-ems, и в случае необходимости – вспомогательного WEB-сервера tomcat6.
Механизм контроля основан на опросе одного из интерфейсов сервера, предназначенного для межмашинного взаимодействия: http web service. Данный интерфейс предназначен для общения между службами eltex-ems в варианте с резервированием серверов, а также может использоваться для самодиагностики, для фиксации выдачи DHCP-адресов (в варианте с модифицированным сервером dhcpd-eltex), для получения списка OLT, получения версии сервера в консольном режиме и прочего служебного обмена.
Технологически самоконтроль реализован в виде скрипта, который периодически запускает операционная система Linux в рамках собственной службы cron. Скрипт находится в файле:

/usr/lib/eltex-ems/scripts/check_ems_srv.sh


В службе cron поведение регулируется файлом:

/etc/cron.d/ems-backup

Запись в файле:

*/5 * * * * root /usr/lib/eltex-ems/scripts/check_ems_srv.sh

Алгоритм контроля:

  • служба cron выполняет контрольный опрос сервера с периодом в 5 минут;
  • при недоступности сервера производится серия дополнительных запросов внутри скрипта. Всего производится три запроса с интервалом в 10 секунд;
  • в случае недоступности запросов всей серии скрипт анализирует код ошибки. В зависимости от кода ошибки выполняется перезапуск службы tomcat6 или служб eltex-ems и tomcat6.

Механизм самоконтроля системы намеренно реализован таким образом, чтобы было задействовано как ядро системы eltex-ems (сервер обмена с устройствами), так и WEB-сервер tomcat6, который реализует три функции:

  1. Выдача GUI-апплета пользователю СУ;
  2. Обеспечение функционирования служебного интерфейса (http web service);
  3. Обеспечение работы Northbound по протоколу SOAP/XML.|


Во время работы скрипт сторожевого таймера журналирует состояние системы и статус ответов сервера в файл:
/var/log/eltex-ems/check/ems-check.<current-date>.txt
В файле содержатся записи следующего вида:

----------------------------- (START) ------------------------------
14-06-2017 	15:45:01: System information:
14-06-2017 	15:45:01: Linux ubuntu 4.4.0-78-generic #99~14.04.2-Ubuntu SMP Thu Apr 27 18:49:46 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
14-06-2017 	15:45:01: java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
14-06-2017 	15:45:01: LoadAverage info
14-06-2017 	15:45:01: 1min 5min 15min
14-06-2017 	15:45:01: 0.01 0.04 0.03 1/571 4244
14-06-2017 	15:45:01: RAM MemFree: 91596 kB
Disk info
Disk 			Size 	Used	Available 	Used % 	Mount
/dev/sda1 		15G 	11G 	3,1G 		79% 	/
14-06-2017 	15:45:01: EMS status: Eltex.EMS Server is running with pid 30258
14-06-2017 	15:45:01: Tomcat status: * Tomcat servlet engine is running with pid 30891
14-06-2017 	15:45:01: ports (9310, 9340, 8080) status:
tcp6 		0 0 :::9310 :::* LISTEN 30260/java
tcp 		0 1 192.168.15.106:33608 192.168.26.201:8080 SYN_SENT 4216/curl 
tcp6 		0 0 :::8080 :::* LISTEN 30891/java
14-06-2017: Northbound is working
14-06-2017: EMS and Northbound are working


Журналирование для каждой даты ведётся в отдельных файлах, ротация производится согласно общим настройкам SoftWLC (настройки монитора архивирования и очистки журналов).
По записям возможно восстановить дату и время принудительного перезапуска служб, а также состояние системы во время контроля: загрузка процессора, использование памяти, количество свободного места на жёстких дисках. Если сервер недоступен, в журнал будет выведена трассировка ошибки, указывающая на источник проблемы.
В случае, если служба eltex-ems намеренно остановлена командой:

sudo service eltex-ems stop

Скрипт самодиагностики не производит принудительный запуск службы.
В случае запуска скрипта в консоли пользователь увидит запись:

EMS service disabled. No checks will be performed.

Ручной запуск скрипта можно выполнить с правами суперпользователя:

sudo /usr/lib/eltex-ems/scripts/check_ems_srv.sh

Контроль доступности сервера SoftWLC из консоли без использования скрипта можно выполнить командой:

curl -shttp://localhost:8080/northbound/getVersion

В ответ работоспособный сервер вернёт xml-сообщение с версией ПО.

$ curl -s http://localhost:8080/northbound/getVersion


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


Мониторинг параметров сервер через SNMP


OID

Тип

Описание

1.3.6.1.4.1.2021.10.1.3.1

OctetString

Load average 1 минута

1.3.6.1.4.1.2021.10.1.3.2

OctetString

Load average 5 минут

1.3.6.1.4.1.2021.10.1.3.3

OctetString

Load average 15 минут

1.3.6.1.4.1.2021.4.6.0

Integer

ОЗУ, свободно, в Кбайт

1.3.6.1.4.1.2021.4.5.0

Integer

ОЗУ, всего, в Кбайт

1.3.6.1.4.1.2021.4.4.

Integer

Swap свободно, в Кбайт

1.3.6.1.4.1.2021.4.3.0

Integer

Swap всего, в Кбайт

1.3.6.1.2.1.25.2.3.1.5.31

Integer

Полный размер корневой файловой системы сервера, в блоках (см. ниже)

1.3.6.1.2.1.25.2.3.1.6.31

Integer

Объём занятого дискового пространства корневой файловой системы сервера, в блоках (см. ниже)

1.3.6.1.2.1.25.2.3.1.4.31

Integer

Размер блоков, в которых измеряется объём дисков сервера

1.3.6.1.4.1.9586.100.5.2.3.1.4.1

Integer

Роль сервера в системе резервирования. Возможные значения:
1 — backup
2 — master

Мониторинг дисковой подсистемы выполняется с помощью таблицы hrStorageTable (1.3.6.1.2.1.25.2.3) из MIB Host Resources (RFC1514).
Таблица имеет следующую структуру:

HrStorageEntry ::= SEQUENCE {
	hrStorageIndex INTEGER,
	hrStorageType OBJECT IDENTIFIER,
	hrStorageDescr DisplayString,
	hrStorageAllocationUnits INTEGER,
	hrStorageSize INTEGER,
	hrStorageUsed INTEGER,
	hrStorageAllocationFailures Counter
}

Каждая запись в таблице описывает один ресурс сервера. Это может быть, например, ОЗУ или дисковый накопитель.
Для каждой записи указывается:

  • hrStorageDescr — название ресурса, например «Swap space» или «/» - корневая файловая система;
  • hrStorageAllocationUnits — размерность единиц измерения, в которых указываются размеры дисков и количество занятого пространства. Иными словами — количество байтов в блоке;
  • hrStorageSize — полный размер ресурса (в блоках);
  • hrStorageUsed объём занятого пространства ресурса (в блоках).

При работе в условиях системы резервирования мониторинг параметров серверов необходимо выполнять по реальным IP-адресам.

Мониторинг параметров сервер через HTTP API

Для мониторинга состояния сервера доступны совместимые с Prometheus метрики. Для просмотра метрик надо открыть:

http://<IP адрес сервера EMS>:9091/api/metrics

Для запуска мониторинга со стороны Prometheus нужно добавить в его конфигурации:

  - job_name: 'EMS-server'
    scrape_interval: 180s
    scrape_timeout: 180s
    metrics_path: '/api/metrics'
    static_configs:
      - targets: ['<IP адрес сервера EMS>:9091']
  • Нет меток