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 Source | DNS/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 | Описание |
|---|---|
Server | DNS/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 | Описание |
|---|---|
Server | DNS/IP-адрес сервера с резервной базой данных. |
Database | Имя резервной базы данных. |
User ID | Имя пользователя, который имеет полные права для базы данных. |
Password | Пароль пользователя. |
Шифрование конфигурационных файлов Log Server
С помощью утилиты для шифрования можно зашифровать пароль серверного сертификата в конфигурационном файле am/ls/app-settings.json, а также значение параметра ConnectionString в конфигурационных файлах в каталоге am//ls/targets/.
- Зашифровать
- Расшифровать
- В терминале перейдите в каталог с утилитой для шифрования am/protection.
cd /am/protection - Выдайте права для запуска скрипта
protector.sh.sudo chmod 500 protector.sh - Чтобы зашифровать конфигурационные файлы, запустите скрипт
protector.shс параметромprotect.sudo bash ./protector.sh protect
- В терминале перейдите в каталог с утилитой для шифрования am/protection.
cd /am/protection - Выдайте права для запуска скрипта
protector.sh.sudo chmod 500 protector.sh - Чтобы расшифровать конфигурационные файлы, запустите скрипт
protector.shс параметромunprotect.sudo bash ./protector.sh unprotect
Настройка кеширования событий
Если Log Server недоступен, события кешируются в локальный каталог am/ls/EventCash.
Информация о недоступности Log Server отображается в событиях Windows во вкладке Приложение.
Код события — 500.
Текст — Log server client fluentSchedulerBackgroundLoaderTask. Iteration WEB exception: Время ожидания операции истекло.
Чтобы изменить параметры хранения событий:
- Откройте конфигурационный файл app-settings.json серверного компонента (Core Server, Management Console, User Console).
- Внесите следующие изменения:
Чтобы задать путь к каталогу для хранения событий, измените значение параметра
locationв тегеlogServer. Значение по умолчанию — ./EventCache.Чтобы изменить время отправки логов после возобновления работы LogServer, измените значение параметра
FlushIntervalв тегеlogServer. Значение по умолчанию — 10 минут.Не рекомендуется устанавливать значение для параметра
EventCacheSendingIntervalSecменее 30 секунд.
Локализация
В данный момент в схеме есть локализация событий ru-Ru и en-En. Когда с сервера поступает запрос на ru-Ru события, будут выбраны имеющиеся события с локализацией ru-Ru.
Если с сервера поступает запрос с неизвестной локализацией, то будут выбраны события с локализацией, заданной по умолчанию.
Чтобы настроить локализацию:
Откройте конфигурационный файл am/ls/eaSchema.config.
Измените значение параметра
DefaultLanguage.
Пример локализации событий en-En
<Languages DefaultLanguage="en-En">
Пример локализации событий ru-RU
<Languages DefaultLanguage="ru-RU">
- Сохраните изменения.
Сбор логов
Информация по включению логирования и сбору логов компонента Log Server находится в разделе Сбор логов серверных компонентов.