Indeed Log Server
Indeed Log Server (Log Server) — это веб-приложение, которое работает на базе IIS. Данный модуль отвечает за централизованный сбор и аудит событий системы.
События записываются в базы данных.
Как создать и настроить базу данных
Чтобы настроить Log Server:
- Установите Log Server и Eventlog.
- Создайте привязку HTTPS в настройках IIS.
- Настройте Log Server в соответствии с подходящим хранилищем данных.
- При необходимости измените параметры кеширования событий и локализацию.
Установить Log Server и EventLog
Прежде чем начать установку, ознакомьтесь с системными требованиями.
Установите Log Server, запустив файл Indeed AM <номер версии>\Indeed AM Log Server\Indeed.LogServer-<номер версии>.x64.ru-ru.msi.
Установите EventLog на компьютере с Log Server, запустив файл Indeed AM <номер версии>\Indeed AM Log Server\IndeedAM.Server.EventLog-<номер версии>.x64.ru-ru.msi.
Схема событий создается автоматически при установке компонента IndeedAM.Server.EventLog и находится в C:\ProgramData\Indeed\LogServer\Schemes.
Создать привязку HTTPS
В процессе установки для Log Server в настройках IIS включается обязательное требование SSL-сертификата. Поэтому для корректной работы модуля необходимо создать привязку HTTPS.
Чтобы создать привязку HTTPS:
- В Диспетчере служб IIS в левом меню выберите Indeed AM → сайты → Default Web Site
- В правом меню в разделе Действия нажмите Привязки.
- Нажмите Добавить и в открывшемся окне задайте следующие параметры:
- В поле Тип выберите https.
- В поле Порт укажите 443.
- В поле SSL-сертификат выберите сертификат Core Server.
- Нажмите ОК, чтобы сохранить привязку.
Если вы не намерены использовать протокол HTTPS, отключите требование SSL-сертификата в настройках IIS для Log Server.
Настроить Log Server с разным типом хранилища данных
Вы можете выбрать доступное вам хранилище данных:
- базы данных Microsoft SQL или PostgreSQL
- хранилище в EventLog
- хранилище в SysLog
- резервное хранилище
Microsoft SQL
Microsoft SQL
Откройте конфигурационный файл C:\inetpub\wwwroot\ls\targetConfigs\sampleDb.config.
Укажите данные для подключения к базе данных в теге
connectionString
.Data Source
— задает экземпляр сервера. Эта настройка является обязательной для всех соединений. Допустимые значения — сетевое имя или IP-адрес сервера, local или localhost для локальных соединений.Database
— определяет имя базы данных.User Id
— имя пользователя для подключения к базе данных.Password
— пароль пользователя для подключения к базе данных.Пример<Settings>
<ConnectionString>Data Source=localhost;Database=LogServ;User Id=log;Password=Q1q2E3e4</ConnectionString>
</Settings>
Откройте конфигурационный файл сервера C:\inetpub\wwwroot\ls\clientApps.config.
Раскомментируйте блок с
"Application Id"="ea"
. В тегахTargetId
иReadTargetId
укажите значениеsampleDb
.
В тегах ReadTargetId
указывается идентификатор хранилища, откуда
будут считываться события.
В блоке WriteTargets
, в тегах TargetId
указывается
идентификатор хранилища, куда будут записываться события.
Идентификаторы заданы в теге Targets
,
конфигурационные файлы для каждого типа находятся в
папке targetConfigs
с соответствующим именем.
<Application Id="ea" SchemaId="eaSchema">
<ReadTargetId>sampleDb</ReadTargetId>
<WriteTargets>
<TargetId>sampleDb</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>
Шифрование/Расшифрование конфигурационного файла
- Запустите командную строку от имени администратора.
- В командной строке перейдите в папку с утилитой для шифрования Indeed.LogServer.Config.Encryptor.
Шифрование конфигурационного файла
Чтобы зашифровать конфигурационный файл, запустите утилиту со следующими параметрами:
protect -f C:\inetpub\wwwroot\ls\targetConfigs\sampleDb.config -t Sql
-f, --file Путь к конфигурационному файлу, обязательный параметр.
-t, --type Тип таргета конфигурационного файла. Опциональный параметр, значение по умолчанию — Sql.
Расшифровка конфигурационного файла
Чтобы расшифровать конфигурационный файл, запустите утилиту со следующими параметрами:
unprotect -f C:\inetpub\wwwroot\ls\targetConfigs\sampleDb.config -t Sql
-f, --file Путь к конфигурационному файлу, обязательный параметр.
-t, --type Тип таргета конфигурационного файла. Опциональный параметр, значение по умолчанию — Sql.
PostgreSQL
PostgreSQL
Перейдите в папку C:\inetpub\wwwroot\ls\targetConfigs.
Создайте файл с произвольным именем и расширением .CONFIG, например postgresDb.config.
Добавьте в файл следующие строки:
<?xml version="1.0" encoding="utf-8"?>
<Settings>
<ConnectionString>server=server_dns_name;port=5432;user id=account_name;password=account_password;database=database_name</ConnectionString>
</Settings>В строке
ConnectionString
задайте значения следующих параметров:server
— DNS\IP-адрес сервера с базой данных PostgreSQL.port
— порт, по которому будет происходить подключение. Значение по умолчанию — 5432, но его можно изменить.user ID
— имя пользователя, который имеет полные права для базы данных Database.password
— пароль пользователя.database
— имя базы данных Log Server.Примерserver=192.200.1.2;port=5432;user id=IndeedDB;password=Passw0rd;database=LogServerDB
Откройте конфигурационный файл сервера clientApps.config (C:\inetpub\wwwroot\ls\clientApps.config).
Раскомментируйте блок с
"Application Id"="ea"
. В тегахTargetId
иReadTargetId
укажите значение postgresDb.ПримечаниеВ тегах
ReadTargetId
указывается идентификатор хранилища, откуда будут считываться события.В блоке
WriteTargets
, в тегахTargetId
указывается идентификатор хранилища, куда будут записываться события.Идентификаторы заданы в теге
Targets
, конфигурационные файлы для каждого типа находятся в папкеtargetConfigs
с соответствующим именем.Пример<Application Id="ea" SchemaId="eaSchema">
<ReadTargetId>postgresDb</ReadTargetId>
<WriteTargets>
<TargetId>postgresDb</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>Далее в этом же файле в секции
Targets
добавьте новый элемент:Пример<Targets>
...
<Target Id="postgresDb" Type="pgsql"/>
</Targets>
Пример отображения
Шифрование/Расшифрование конфигурационного файла
- Запустите командную строку от имени администратора.
- В командной строке перейдите в папку с утилитой для шифрования Indeed.LogServer.Config.Encryptor.
Шифрование конфигурационного файла
Чтобы зашифровать конфигурационный файл, запустите утилиту со следующими параметрами:
protect -f C:\inetpub\wwwroot\ls\targetConfigs\postgresDb.config -t Sql
-f, --file Путь к конфигурационному файлу, обязательный параметр.
-t, --type Тип таргета конфигурационного файла. Опциональный параметр, значение по умолчанию — Sql.
Расшифровка конфигурационного файла
Чтобы расшифровать конфигурационный файл, запустите утилиту со следующими параметрами:
unprotect -f C:\inetpub\wwwroot\ls\targetConfigs\postgresDb.config -t Sql
-f, --file Путь к конфигурационному файлу, обязательный параметр.
-t, --type Тип таргета конфигурационного файла. Опциональный параметр, значение по умолчанию — Sql.
Хранилище в EventLog
Хранилище в EventLog
Редактирование конфигурационного файла
Откройте конфигурационный файл сервера C:\inetpub\wwwroot\ls\clientApps.config.
Раскомментируйте блок с
"Application Id"="ea"
. В тегахTargetId
иReadTargetId
укажите значение sampleEventLog.ПримечаниеВ тегах
ReadTargetId
указывается идентификатор хранилища, откуда будут считываться события.В блоке
WriteTargets
, в тегахTargetId
указывается идентификатор хранилища, куда будут записываться события.Идентификаторы заданы в теге
Targets
, конфигурационные файлы для каждого типа находится в папке targetConfigs с соответствующим именем.Пример<Application Id="ea" SchemaId="eaSchema">
<ReadTargetId>sampleEventLog</ReadTargetId>
<WriteTargets>
<TargetId>sampleEventLog</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>
Пример отображения
Отображение журнала в событиях Windows
Хранилище в SysLog
Хранилище в SysLog
Log Server поддерживает формат syslog, вы можете использовать любой сервер, работающий с данным форматом. В качестве примера далее рассмотрена настройка syslog-сервера Syslog Watcher v4.8.6.
Скачать утилиту можно на официальном сайте https://syslogwatcher.com
Чтобы установить syslog-сервер:
Запустите установочный файл SyslogWatcherSetup-*.*.*-win32.msi.
В окне License Agreement примите лицензионное соглашение.
В окне Installation Type выберите тип установки Install Syslog Watcher Service and GUI.
В окне Select installation Folder выберите путь установки для syslog-сервера.
В окне Windows Firewall Exception разрешите добавление правила на все входящие соединения для Syslog Watcher в брандмауэр Windows (Add Windows firewall exception (allow incoming connections)).
В окне Confirm Installation нажмите Next.
Дождитесь завершения установки сервера.
Чтобы настроить syslog-сервер:
- Запустите Syslog Watcher и выберите Manage Local Syslog Server.
- Нажмите Settings в верхнем меню программы.
- Перейдите в раздел Network Interfaces.
- Проверьте, что выбрано использование протокола udp и указан
порт.
- Перейдите в раздел Processing.
- Выберите кодировку UTF-8.
Редактировать конфигурационный файл
Откройте конфигурационный файл sampleSyslog.config (C:\inetpub\wwwroot\ls\targetConfigs\sampleSyslog.config) и укажите следующие параметры в теге
ConnectionString
:HostName
— имя или IP-адрес Syslog-сервера.Port
— порт Syslog-сервера (514 — порт по умолчанию).Protocol
— тип подключения к Syslog-серверу: UDP, TCP, TCPoverTLS.Format
— опциональный параметр, определяет формат логов: Plain (по умолчанию), CEF, LEEF.SyslogVersion
— опциональный параметр, спецификация протокола: RFC3164, RFC5424.
Пример настройки для Syslog Watcher<Settings HostName="localhost" Port="514" Protocol="UDP" Format="Plain" />
Откройте конфигурационный файл C:\inetpub\wwwroot\ls\clientApps.config.
Для блока с
"Application Id"="ea"
в тегеTargetId
дляWriteTargets
укажитеsampleSyslog
. ТегReadTargetId
оставьте пустым, так как чтение выполняется сторонней программой, в данном примере Syslog Watcher.ПримечаниеВ тегах
ReadTargetId
указывается идентификатор хранилища, откуда будут считываться события.В блоке
WriteTargets
, в тегахTargetId
указывается идентификатор хранилища, куда будут записываться события.Идентификаторы заданы в теге
Targets
, конфигурационные файлы для каждого типа находятся в папкеtargetConfigs
с соответствующим именем.<Application Id="ea" SchemaId="eaSchema">
<ReadTargetId> </ReadTargetId>
<WriteTargets>
<TargetId>sampleSyslog</TargetId>
</WriteTargets> <AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />--> </AccessControl>
</Application>Нажмите Start Server в верхнем левом углу программы Syslog Watcher.
Пример отображения
Резервное хранилище
Резервное хранилище
Настройка с несколькими хранилищами разного типа
В качестве примера выполнена настройка, при которой чтение событий осуществляется из событий Windows, запись осуществляется в события Windows и базу SQL.
Откройте конфигурационный файл сервера C:\inetpub\wwwroot\ls\clientApps.config.
Для блока с
"Application Id"="ea"
в тегахReadTargetId
укажитеsampleEventLog
илиsampleDb
.ПримечаниеВ тегах
ReadTargetId
указывается идентификатор хранилища, откуда будут считываться события.В блоке
WriteTargets
, в тегахTargetId
указывается идентификатор хранилища, куда будут записываться события.Идентификаторы заданы в теге
Targets
, конфигурационные файлы для каждого типа находятся в папке targetConfigs с соответствующим именем.В блоке
WriteTargets
укажите<TargetId>sampleEventLog</TargetId>
и<TargetId>sampleDb</TargetId>
.Откройте конфигурационный файл C:\inetpub\wwwroot\ls\targetConfigs\sampleDb.config.
Укажите данные для подключения к базе данных в теге
connectionString
:Data Source
— задает экземпляр сервера. Эта настройка является обязательной для всех соединений. Допустимые значения — сетевое имя или IP-адрес сервера, local или localhost для локальных соединений.Database
— определяет имя базы данных.User Id
— имя пользователя для подключения к базе данных.Password
— пароль пользователя для подключения к базе данных.
Пример<Settings>
<ConnectionString>Data Source=localhost;Database=LogServ;User Id=log;Password=Q1q2E3e4</ConnectionString>
</Settings>ПримечаниеПри такой конфигурации события считываться из событий Windows, события будут записываться в базу данных SQL.
Пример<Application Id="ea" SchemaId="eaSchema">
<ReadTargetId>sampleEventLog</ReadTargetId>
<WriteTargets>
<TargetId>sampleEventLog</TargetId>
<TargetId>sampleDb</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>
Настройка с резервным хранилищем в базе данных
Откройте конфигурационный файл сервера C:\inetpub\wwwroot\ls\clientApps.config.
В блоке
Targets
скопируйте тегTarget
сId="sampleDb"
и измените id на произвольное значение, напримерsampleDbBackup
.Пример<Targets>
<Target Id="sampleEventLog" Type="eventlog"/>
<Target Id="sampleDb" Type="mssql"/>
<Target Id="sampleDbBackup" Type="mssql"/>
<Target Id="akcSqlTarget" Type="mssql"/>
<Target Id="akcEventLogTarget" Type="eventlog"/>
<Target Id="sampleSyslog" Type="syslog"/>
</Targets>Для блока с
Application Id="ea"
в тегахReadTargetId
укажитеsampleDb
.ПримечаниеВ тегах
ReadTargetId
указывается идентификатор хранилища, откуда будут считываться события.В блоке
WriteTargets
, в тегахTargetId
указывается идентификатор хранилища, куда будут записываться события.Идентификаторы заданы в теге
Targets
, конфигурационные файлы для каждого типа находятся в папкеtargetConfigs
с соответствующим именем.В блоке
WriteTargets
укажите<TargetId>sampleDb</TargetId>
и<TargetId>sampleDbBackup</TargetId>
.ПримечаниеПри такой конфигурации чтение событий будет осуществляться из базы данных, указанной в конфигурационном файле ls\targetConfigs\sampleDb.config. Записываться события будут в базы данных, указанные в файлах:
- ls\targetConfigs\sampleDb.config
- ls\targetConfigs\sampleDbBackup.config
Пример<Application Id="ea" SchemaId="eaSchema">
<ReadTargetId>sampleDb</ReadTargetId>
<WriteTargets>
<TargetId>sampleDb</TargetId>
<TargetId>sampleDbBackup</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>Откройте конфигурационный файл C:\inetpub\wwwroot\ls\targetConfigs\sampleDb.config.
Укажите данные для подключения к базе данных в теге
connectionString
:ПримечаниеУкажите данные для подключения к основной базе данных.
Data Source
— задает экземпляр сервера. Эта настройка является обязательной для всех соединений. Допустимые значения — сетевое имя или IP-адрес сервера, local или localhost для локальных соединений.Database
— определяет имя базы данных.User Id
— имя пользователя для подключения к базе данных.Password
— пароль пользователя для подключения к базе данных.
Пример<Settings>
<ConnectionString>Data Source=localhost;Database=LogServ;User Id=log;Password=Q1q2E3e4</ConnectionString>
</Settings>Создайте файл sampleDbBackup с расширением .CONFIG.
ВажноИмя файла должно в точности повторять значение Id, заданного в пункте 2.
Укажите данные для подключения к базе данных в теге
connectionString
.ПримечаниеУкажите данные для подключения к резервной базе данных.
Data Source
— задает экземпляр сервера. Эта настройка является обязательной для всех соединений. Допустимые значения — сетевое имя или IP-адрес сервера, local или localhost для локальных соединений.Database
— определяет имя базы данных.User Id
— имя пользователя для подключения к базе данных.Password
— пароль пользователя для подключения к базе данных.Пример<Settings>
<ConnectionString>Data Source=localhost;Database=LogServBackup;User Id=log;Password=Q1q2E3e4</ConnectionString>
</Settings>
Настроить кеширование событий
Если Log Server недоступен, события кешируются в локальную папку на Core Server.
Информация о недоступности Log Server отображается в событиях Windows во вкладке Приложение со следующими параметрами:
Код события — 500.
Текст — Log server client fluentSchedulerBackgroundLoaderTask. Iteration WEB exception: Время ожидания операции истекло.
Чтобы изменить параметры хранения событий:
- Откройте конфигурационный файл сервера Indeed Web.config.
- Внесите следующие изменения:
Чтобы задать путь к папке для хранения событий, измените значение параметра
EventCacheDirectory
в тегеlogServerClient
. Значение по умолчанию — ./EventCache.Чтобы изменить время отправки логов после возобновления работы LogServer, измените значение параметра
EventCacheSendingIntervalSec
в тегеlogServerClient
. Значение по умолчанию — 600 секунд.Не рекомендуется устанавливать значение для параметра
EventCacheSendingIntervalSec
менее 30 секунд.
Сменить локализацию
В данный момент в схеме есть две локализации событий — ru-Ru и en-En. Когда с сервера поступает запрос на ru-Ru события, будут выбраны имеющиеся события с локализацией ru-Ru.
Если с сервера поступает запрос с неизвестной локализацией, то будут выбраны события с локализацией, заданной по умолчанию.
Чтобы настроить локализацию:
Откройте конфигурационный файл C:\ProgramData\Indeed\LogServer\Schemes\eaSchema.config.
Измените значение параметра
DefaultLanguage
.
<Languages DefaultLanguage="en-En">
<Languages DefaultLanguage="ru-RU">
- Сохраните изменения.