Indeed Log Server
Indeed Log Server (Log Server) — это веб-приложение, которое работает на базе IIS. Данный модуль отвечает за централизованный сбор и аудит событий системы.
События записываются в базы данных.
Как создать и настроить базу данных?
Файлы для установки
Файлы для Log Server расположены в папке Indeed AM Log Server.
- Indeed.LogServer-<номер версии>.x64.ru-ru.msi — пакет для установки Indeed Log Server;
- IndeedAM.Server.EventLog-<номер версии>.x64.ru-ru.msi — пакет для создания схемы событий Indeed AM и необходимой структуры журнала в Windows EventLog;
- Indeed.LogServer.Config.Encryptor.zip — утилита для шифрования конфигурационного файла.
Установка Log Server и EventLog
Выполните установку Log Server через запуск соответствующего пакета.
Выполните установку EventLog на машине с Log Server через запуск инсталлятора IndeedAM.Server.EventLog-<номер версии>.x64.ru-ru.msi.
Схема событий создается автоматически при установке компонента IndeedAM.Server.EventLog и находится в C:\ProgramData\Indeed\LogServer\Schemes.
Привязка HTTPS в настройках в IIS Manager
Log Server является веб-приложением, которое работает на базе IIS, в процессе установки для Log Server включается обязательно требование SSL в настройках, что в свою очередь требует включенной привязки HTTPS.
Как это сделать
- Запустите IIS Manager и раскройте пункт Сайты (Sites).
- Выберите сайт Default Web Site и нажмите Привязки (Bindings) в разделе Действия (Actions).
- Нажмите Добавить (Add):
- Тип (Type) — https.
- Порт (Port) — 443.
- Выберите SSL-сертификат (SSL Certificate).
- Сохраните привязку.
Если вы не намерены использовать протокол HTTPS, отключите требование SSL в настройках IIS для Log Server.
Настройка Log Server с разным типом хранилища данных
Вы можете выбрать доступное вам хранилище данных:
- базы данных Microsoft SQL или PostgreSQL
- хранилище в EventLog
- хранилище в SysLog
- резервное хранилище
Microsoft SQL
Microsoft SQL
Откройте конфигурационный файл sampleDb.config (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>
Откройте конфигурационный файл сервера clientApps.config (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
Перейдите в папку targetConfigs (C:\inetpub\wwwroot\ls\targetConfigs).
Создайте файл с произвольным именем и расширением .config, например postgresDb.config.
Добавьте в файл следующее:
Пример<?xml version="1.0" encoding="utf-8"?>
<Settings>
<ConnectionString>Server=Server;Database=Name;Integrated Security=False;User ID=User;Password=Password</ConnectionString>
</Settings>В строке ConnectionString укажите укажите следующие данные:
Server — DNS\IP-адрес сервера с базой данных PostgreSQL.
Database — имя базы данных.
Integrated Security — False.
ИнформацияВстроенная аутентификация не поддерживается
User ID — имя пользователя, который имеет полные права для базы данных Database.
Password — пароль пользователя.
ПримерServer=192.200.1.2;Database=AM8Log;Integrated Security=False;User ID=IndeedDB;Password=auqOVg
Откройте конфигурационный файл сервера 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>
Пример отображения
Хранилище в EventLog
Хранилище в EventLog
Редактирование конфигурационного файла
Откройте конфигурационный файл сервера clientApps.config (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
Запустите установочный файл SyslogWatcherSetup-*.*.*-win32.msi.
В окне License Agreement примите лицензионное соглашение.
В окне Installation Type выберите тип установки Install Syslog Watcher Service and GUI.
В окне Select installation Folder выберите путь установки для sys-log сервера.
В окне Windows Firewall Exception разрешите добавление правила на все входящие соединения для Syslog Watcher в брандмауэр Windows.
В окне 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" />
Откройте конфигурационный файл clientApps.config (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.
Откройте конфигурационный файл сервера clientApps.config (C:\inetpub\wwwroot\ls\clientApps.config).
Для блока с "Application Id"="ea" в тегах ReadTargetId указать sampleEventLog или sampleDb.
ИнформацияВ тегах ReadTargetId указывается идентификатор хранилища, откуда будет осуществляться чтение событий.
В блоке WriteTargets в тегах TargetId указывается идентификатор хранилища, куда будет осуществляться запись событий.
Идентификаторы заданы в теге Targets, конфигурационные файлы для каждого типа находятся в папке targetConfigs с соответствующим именем.
В блоке WriteTargets укажите
<TargetId>sampleEventLog</TargetId>
и<TargetId>sampleDb</TargetId>
.Откройте конфигурационный файл sampleDb.config (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>
Настройка с резервным хранилищем в базе данных
Откройте конфигурационный файл сервера clientApps.config (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>Откройте конфигурационный файл sampleDb.config (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 недоступен, события кешируются в локальную папку на сервере Indeed AM.
Информация о недоступности Log Server отображается в событиях Windows во вкладке Приложение.
Код события: 500.
Текст: Log server client fluentSchedulerBackgroundLoaderTask. Iteration WEB exception: Время ожидания операции истекло.
Путь к папке для хранения событий задается в конфигурационном файле сервера Indeed Web.config в теге logServerClient в параметре EventCacheDirectory ( по умолчанию: ./EventCache ). Время отправки логов после возобновления работы LogServer задается в теге logServerClient в параметре EventCacheSendingIntervalSec ( по умолчанию: 600 секунд).
Не рекомендуется устанавливать значение для параметра EventCacheSendingIntervalSec менее 30 секунд.
Локализация
В данный момент в схеме есть локализация событий ru-Ru и en-En. Когда с сервера поступает запрос на ru-Ru события, будут выбраны имеющиеся события с локализацией ru-Ru.
Если с сервера поступает запрос с неизвестной локализацией, то будут выбраны события с локализацией, заданной по умолчанию, данный параметр задается в конфигурационном файле схемы eaSchema.config (расположен в каталоге C:\ProgramData\Indeed\LogServer\Schemes).
<Languages DefaultLanguage="en-En">
<Languages DefaultLanguage="ru-RU">