Перейти к основному содержимому
Версия: Indeed Access Manager 9.4

Indeed Log Server

Системные требования

Indeed Log Server (Log Server) — это веб-приложение, работающее на базе HTTP-сервера Kestrel. Данный модуль отвечает за централизованный сбор и аудит событий системы. События записываются в базы данных.

Настройка Log Server с разным типом хранилища данных

Важно

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

Доступные типы хранилища данных:

  • базы данных Microsoft SQL или PostgreSQL
  • хранилище в Syslog
  • резервное хранилище
Microsoft SQL

Microsoft SQL

Конфигурационный файл am/ls/targets/DbTarget_0.config (название по умолчанию)

Пример ConnectionString в DbTarget_0.config
    <?xml version="1.0" encoding="utf-8"?>
<Settings>
<ConnectionString>Data Source=192.168.1.22,57974;Initial Catalog=IndeedAM9log;User ID=IndeedAMservice;Password=Q12345qq;TrustServerCertificate=true;</ConnectionString>
</Settings>
Параметры строки ConnectionStringОписание
Data SourceDNS/IP-адрес сервера с базой данных.
Initial CatalogИмя базы данных.
User IDИмя пользователя, который имеет полные права для базы данных.
PasswordПароль пользователя.
TrustServerCertificateДоверие серверному сертификату. Значение True — подключение Microsoft SQL к серверу.

Порт подключения в строке ConnectionString не прописан, но задан по умолчанию — 1433.

Конфигурационный файл сервера am/ls/clientApps.config

Пример блока Application в clientApps.config
 <Application Id="ea" SchemaId="eaSchema">
<ReadTargetId>DbTarget_0</ReadTargetId>
<WriteTargets>
<TargetId>DbTarget_0</TargetId>
</WriteTargets>
<AccessControl>
<CertificateAccessControl CertificateThumbprint="01de449b6f4b49e00d1a5b20ffb5d6605cf6cd2a" Rights="Write" />
</AccessControl>
</Application>
Параметры Application Id="ea" SchemaId="eaSchema"Описание
ReadTargetIdИдентификатор хранилища, откуда будет осуществляться чтение событий. Значение DbTarget_0 — это название конфигурационного файла в каталоге am/ls/targets.
WriteTargets:
TargetId
Идентификатор хранилища, куда будет осуществляться запись событий. Значение DbTarget_0 — это название конфигурационного файла в каталоге am/ls/targets.

Идентификаторы заданы в теге Targets, конфигурационные файлы для каждого типа находятся в каталоге am/ls/targets/ с соответствующим именем.
CertificateAccessControl:
CertificateThumbprint
Отпечаток клиентского сертификата Core Server. Указывается при использовании собственного клиентского сертификата.

Настройка дополнительного хранилища (секция Targets)

При необходимости использовать дополнительное хранилище данных откройте конфигурационный файл сервера am/ls/clientApps.config и раскомментируйте необходимые значения в секции Targets.

Пример секции Targets в clientApps.config
<Targets>
<!-- <Target Id="DbTarget_0" Type="pgsql" /> -->
<Target Id="DbTarget_0" Type="mssql" />
<!-- <Target Id="DbTargetSqlIndeedKey" Type="pgsql" /> -->
<!-- <Target Id="DbTargetMssqlIndeedKey" Type="mssql" /> -->
<Target Id="TargetSyslog" Type="syslog" />
</Targets>
PostgreSQL

PostgreSQL

Конфигурационный файл am/ls/targets/DbTarget_0.config (название по умолчанию)

Пример DbTarget_0.config
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<ConnectionString>server=192.168.80.30;port=5432;user id=amservice;password=Q1w2e3r4;database=am_deb_db;SSL Mode=Require;Server Compatibility Mode=Redshift</ConnectionString>
<Options>
<Option Name="EnableShortStringEqualsSearch" Value="True" />
</Options>
</Settings>
Параметры строки ConnectionStringОписание
ServerDNS/IP-адрес сервера с базой данных PostgreSQL.
DatabaseИмя базы данных.
User IDИмя пользователя, который имеет полные права для базы данных.
PasswordПароль пользователя.
SSL ModeРежим подключения с использованием SSL.

Если после добавления параметра возникает ошибка 08P01: unsupported startup parameter: ssl_renegotiation_limit, добавьте параметр Server Compatibility Mode=Redshift.
Параметры блока OptionsОписание
EnableShortStringEqualsSearchУскоряет поиск в больших базах данных. По умолчанию настройка включена — значение True.

Конфигурационный файл сервера am/ls/clientApps.config

Пример блока Application в clientApps.config
 <Application Id="ea" SchemaId="eaSchema">
<ReadTargetId>DbTarget_0</ReadTargetId>
<WriteTargets>
<TargetId>DbTarget_0</TargetId>
</WriteTargets>
<AccessControl>
<CertificateAccessControl CertificateThumbprint="01de449b6f4b49e00d1a5b20ffb5d6605cf6cd2a" Rights="Write" />
</AccessControl>
</Application>
Параметры Application Id="ea" SchemaId="eaSchema"Описание
ReadTargetIdИдентификатор хранилища, откуда будет осуществляться чтение событий. Значение DbTarget_0 — это название конфигурационного файла в каталоге am/ls/targets.
WriteTargets:
TargetId
Идентификатор хранилища, куда будет осуществляться запись событий. Значение DbTarget_0 — это название конфигурационного файла в каталоге am/ls/targets.

Идентификаторы заданы в теге Targets, конфигурационные файлы для каждого типа находятся в каталоге am/ls/targets/ с соответствующим именем.
CertificateAccessControl:
CertificateThumbprint
Отпечаток клиентского сертификата Core Server. Указывается при использовании собственного клиентского сертификата.

Настройка дополнительного хранилища (секция Targets)

При необходимости использовать дополнительное хранилище данных откройте конфигурационный файл сервера am/ls/clientApps.config и раскомментируйте необходимые значения в секции Targets.

Пример секции Targets в clientApps.config
<Targets>
<Target Id="DbTarget_0" Type="pgsql" />
<!-- <Target Id="DbTarget_0" Type="mssql" /> -->
<!-- <Target Id="DbTargetSqlIndeedKey" Type="pgsql" /> -->
<!-- <Target Id="DbTargetMssqlIndeedKey" Type="mssql" /> -->
<Target Id="TargetSyslog" Type="syslog" />
</Targets>
Хранилище в Syslog

Хранилище в Syslog

Log Server поддерживает формат syslog. Вы можете использовать любой сервер, работающий с этим форматом (например, Syslog Watcher).

Пример настройки Syslog Watcher описан в разделе Настройка окружения.

Конфигурационный файл am/ls/TargetSyslog_0.config (название по умолчанию)

Пример ConnectionString в TargetSyslog_0.config
<Settings HostName="localhost" Port="514" Protocol="UDP" Format="Plain" />
Параметры строки ConnectionStringОписание
HostNameИмя или IP-адрес Syslog-сервера.
PortПорт Syslog-сервера. Значение по умолчанию — 514.
ProtocolТип подключения к Syslog-серверу: UDP, TCP, TCPoverTLS.
FormatОпциональный параметр. Определяет формат логов: Plain (по умолчанию), CEF, LEEF.
SyslogVersionОпциональный параметр. Спецификация протокола: RFC3164, RFC5424.

Конфигурационный файл сервера am/ls/clientApps.config

Пример блока Application в clientApps.config
<Application Id="ea" SchemaId="eaSchema">
<ReadTargetId> </ReadTargetId>
<WriteTargets>
<TargetId>TargetSyslog_0</TargetId>
</WriteTargets>
<AccessControl>
<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />
</AccessControl>
</Application>
Параметры блока Application Id="ea"Описание
ReadTargetIdИдентификатор хранилища для чтения событий. Пустое значение — чтение выполняется сторонней программой (например, Syslog Watcher).
WriteTargets:
TargetId
Идентификатор хранилища для записи событий. Значение TargetSyslog_0 — это название конфигурационного файла.

Идентификаторы заданы в теге Targets, конфигурационные файлы для каждого типа находятся в каталоге am/ls/targets/ с соответствующим именем.
CertificateAccessControl:
CertificateThumbprint
Отпечаток клиентского сертификата Core Server. Указывается при использовании собственного клиентского сертификата.
Резервное хранилище

Резервное хранилище

Log Server поддерживает одновременную запись событий в основное и резервное хранилище. Чтение событий осуществляется только из основного хранилища (DbTarget_0.config). Запись происходит одновременно в основное (DbTarget_0.config) и резервное (DbTarget_1.config).

Конфигурационный файл сервера am/ls/clientApps.config

В секции Targets содержатся идентификаторы всех хранилищ. Для резервного хранилища добавляется тег Target с произвольным Id (например, DbTarget_1).

Пример секции Targets в clientApps.config
<Targets>
<Target Id="DbTarget_0" Type="pgsql"/>
<Target Id="DbTarget_1" Type="pgsql"/>
<Target Id="TargetSyslog_0" Type="syslog"/>
</Targets>

В блоке Application Id="ea" указываются идентификаторы основного и резервного хранилища.

Пример блока Application в clientApps.config
<Application Id="ea" SchemaId="eaSchema">
<ReadTargetId>DbTarget_0</ReadTargetId>
<WriteTargets>
<TargetId>DbTarget_0</TargetId>
<TargetId>DbTarget_1</TargetId>
</WriteTargets>
<AccessControl>
<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />
</AccessControl>
</Application>
Параметры блока Application Id="ea"Описание
ReadTargetIdИдентификатор хранилища для чтения событий. Содержит идентификатор основного хранилища (DbTarget_0).
WriteTargets:
TargetId
Идентификаторы хранилищ для записи событий. При использовании резервного хранилища содержит все идентификаторы: основное (DbTarget_0) и резервное (DbTarget_1).

Идентификаторы заданы в теге Targets, конфигурационные файлы для каждого типа находятся в каталоге am/ls/targets/ с соответствующим именем.
CertificateAccessControl:
CertificateThumbprint
Отпечаток клиентского сертификата Core Server. Указывается при использовании собственного клиентского сертификата.

Конфигурационный файл резервного хранилища am/ls/targets/DbTarget_1.config

Для резервного хранилища создается конфигурационный файл в каталоге am/ls/targets/. Имя файла должно совпадать со значением Id из секции Targets. Формат файла аналогичен основному хранилищу DbTarget_0.config.

Пример DbTarget_1.config
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<ConnectionString>Server=Server;Database=Name;User ID=User;Password=Password</ConnectionString>
</Settings>
Параметры строки ConnectionStringОписание
ServerDNS/IP-адрес сервера с резервной базой данных.
DatabaseИмя резервной базы данных.
User IDИмя пользователя, который имеет полные права для базы данных.
PasswordПароль пользователя.

Шифрование конфигурационных файлов Log Server

С помощью утилиты для шифрования можно зашифровать пароль серверного сертификата в конфигурационном файле am/ls/app-settings.json, а также значение параметра ConnectionString в конфигурационных файлах в каталоге am//ls/targets/.

  1. В терминале перейдите в каталог с утилитой для шифрования am/protection.
    cd /am/protection
  2. Выдайте права для запуска скрипта protector.sh.
    sudo chmod 500 protector.sh
  3. Чтобы зашифровать конфигурационные файлы, запустите скрипт protector.sh с параметром protect.
    sudo bash ./protector.sh protect

Настройка кеширования событий

Если Log Server недоступен, события кешируются в локальный каталог am/ls/EventCash.

Информация о недоступности Log Server отображается в событиях Windows во вкладке Приложение.

  • Код события — 500.

  • Текст — Log server client fluentSchedulerBackgroundLoaderTask. Iteration WEB exception: Время ожидания операции истекло.

Чтобы изменить параметры хранения событий:

  1. Откройте конфигурационный файл app-settings.json серверного компонента (Core Server, Management Console, User Console).
  2. Внесите следующие изменения:
  • Чтобы задать путь к каталогу для хранения событий, измените значение параметра location в теге logServer. Значение по умолчанию — ./EventCache.

  • Чтобы изменить время отправки логов после возобновления работы LogServer, измените значение параметра FlushInterval в теге logServer. Значение по умолчанию — 10 минут.

    Не рекомендуется устанавливать значение для параметра EventCacheSendingIntervalSec менее 30 секунд.

Локализация

В данный момент в схеме есть локализация событий ru-Ru и en-En. Когда с сервера поступает запрос на ru-Ru события, будут выбраны имеющиеся события с локализацией ru-Ru.

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

Чтобы настроить локализацию:

  1. Откройте конфигурационный файл am/ls/eaSchema.config.

  2. Измените значение параметра DefaultLanguage.

Пример локализации событий en-En
<Languages DefaultLanguage="en-En">
Пример локализации событий ru-RU
<Languages DefaultLanguage="ru-RU">
  1. Сохраните изменения.

Сбор логов

Информация по включению логирования и сбору логов компонента Log Server находится в разделе Сбор логов серверных компонентов.