Перейти к основному содержимому

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.

Как это сделать
  1. Запустите IIS Manager и раскройте пункт Сайты (Sites).
  2. Выберите сайт Default Web Site и нажмите Привязки (Bindings) в разделе Действия (Actions).
  3. Нажмите Добавить (Add):
    • Тип (Type) — https.
    • Порт (Port) — 443.
    • Выберите SSL-сертификат (SSL Certificate).
  4. Сохраните привязку.

Если вы не намерены использовать протокол HTTPS, отключите требование SSL в настройках IIS для Log Server.

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

Вы можете выбрать доступное вам хранилище данных:

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

Microsoft SQL

  1. Откройте конфигурационный файл sampleDb.config (C:\inetpub\wwwroot\ls\targetConfigs\sampleDb.config).

  2. Укажите данные для подключения к базе данных в теге connectionString.

    1. Data Source — задает экземпляр сервера. Это свойство является обязательным для всех соединений. Допустимые значения — сетевое имя или IP-адрес сервера, local или localhost для локальных соединений.
    2. Database — определяет имя базы данных.
    3. User Id — имя пользователя для подключения к базе данных.
    4. Password — пароль пользователя для подключения к базе данных.
      Пример
      <Settings>
      <ConnectionString>Data Source=localhost;Database=LogServ;User Id=log;Password=Q1q2E3e4</ConnectionString>
      </Settings>
  3. Откройте конфигурационный файл сервера clientApps.config (C:\inetpub\wwwroot\ls\clientApps.config).

  4. Раскомментируйте блок с "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>

Шифрование/Расшифрование конфигурационного файла

  1. Запустите командную строку от имени администратора.
  2. В командной строке перейдите в папку с утилитой для шифрования (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

  1. Перейдите в папку targetConfigs (C:\inetpub\wwwroot\ls\targetConfigs).

  2. Создайте файл с произвольным именем и расширением .config, например postgresDb.config

  3. Добавьте в файл следующее: 

    Пример
    <?xml version="1.0" encoding="utf-8"?>
    <Settings>
    <ConnectionString>Server=Server;Database=Name;Integrated Security=False;User ID=User;Password=Password</ConnectionString>
    </Settings>
  4. В строке ConnectionString укажите укажите следующие данные:

    1. Server — DNS\IP-адрес сервера с базой данных PostgreSQL.

    2. Database — имя базы данных.

    3. Integrated Security — False. 

      Информация

      Встроенная аутентификация не поддерживается

    4. User ID — имя пользователя, который имеет полные права для базы данных Database.

    5. Password — пароль пользователя. 

      Пример
       Server=192.200.1.2;Database=AM8Log;Integrated Security=False;User ID=IndeedDB;Password=auqOVg
  5. Откройте конфигурационный файл сервера clientApps.config (C:\inetpub\wwwroot\ls\clientApps.config).

  6. Раскомментируйте блок с "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>
  7. Далее в этом же файле в секции Targets добавьте новый элемент:

    Пример
    <Targets>
    ...
    <Target Id="postgresDb" Type="pgsql"/>
    </Targets>

Пример отображения

Хранилище в EventLog

Хранилище в EventLog

Редактирование конфигурационного файла

  1. Откройте конфигурационный файл сервера clientApps.config (C:\inetpub\wwwroot\ls\clientApps.config).

  2. Раскомментируйте блок с "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

  1. Запустите установочный файл SyslogWatcherSetup-*.*.*-win32.msi.

  2. В окне License Agreement примите лицензионное соглашение.

  3. В окне Installation Type выберите тип установки Install Syslog Watcher Service and GUI. 

  4. В окне Select installation Folder выберите путь установки для sys-log сервера.

  5. В окне Windows Firewall Exception разрешите добавление правила на все входящие соединения для Syslog Watcher в брандмауэр Windows.

  6. В окне Confirm Installation нажмите Next для подтверждения установки.

  7. Дождитесь завершения установки сервера.

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

  1. Запустите Syslog Watcher и выберите Manage Local Syslog Server.
  2. Нажмите Settings в верхнем меню программы.
    1. Выберите пункт Network Interfaces.
    2. Проверьте, что выбрано использование протокола udp и указан порт.
    3. Выберите пункт Processing. Выберите кодировку UTF-8.

Редактирование конфигурационного файла

  1. Откройте конфигурационный файл 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"  />
  2. Откройте конфигурационный файл clientApps.config (C:\inetpub\wwwroot\ls\clientApps.config).

  3. Для блока с "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>
  4. Нажмите Start Server в верхнем левом углу программы Syslog Watcher.

Пример отображения

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

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

Настройка с несколькими хранилищами разного типа

Информация

В качестве примера выполнена настройка, при которой чтение событий осуществляется из событий Windows, запись осуществляется в события Windows и базу SQL.

  1. Откройте конфигурационный файл сервера clientApps.config (C:\inetpub\wwwroot\ls\clientApps.config).

  2. Для блока с "Application Id"="ea" в тегах ReadTargetId указать sampleEventLog или sampleDb.

    Информация

    В тегах ReadTargetId указывается идентификатор хранилища, откуда будет осуществляться чтение событий.

    В блоке WriteTargets в тегах TargetId указывается идентификатор хранилища, куда будет осуществляться запись событий.

    Идентификаторы заданы в теге Targets, конфигурационные файлы для каждого типа находятся в папке targetConfigs с соответствующим именем.

  3. В блоке WriteTargets укажите <TargetId>sampleEventLog</TargetId> и <TargetId>sampleDb</TargetId>.

  4. Откройте конфигурационный файл sampleDb.config (C:\inetpub\wwwroot\ls\targetConfigs\sampleDb.config).

  5. Укажите данные для подключения к базе данных в теге 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>

Настройка с резервным хранилищем в базе данных

  1. Откройте конфигурационный файл сервера  clientApps.config (C:\inetpub\wwwroot\ls\clientApps.config).

  2. В блоке 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>
  3. Для блока с Application Id="ea" в тегах ReadTargetId указать sampleDb.

    Информация

    В тегах ReadTargetId указывается идентификатор хранилища, откуда будет осуществляться чтение событий.

    В блоке WriteTargets в тегах TargetId указывается идентификатор хранилища, куда будет осуществляться запись событий.

    Идентификаторы заданы в теге Targets, конфигурационные файлы для каждого типа находятся в папке targetConfigs с соответствующим именем.

  4. В блоке 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>
  5. Откройте конфигурационный файл  sampleDb.config (C:\inetpub\wwwroot\ls\targetConfigs\sampleDb.config).

  6. Укажите данные для подключения к базе данных в теге connectionString:

    Информация

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

    Data Source — задает экземпляр сервера. Это свойство является обязательным для всех соединений. Допустимые значения — сетевое имя или IP-адрес сервера, local или localhost для локальных соединений.
    Database — определяет имя базы данных.
    User Id — имя пользователя для подключения к базе данных.
    Password — пароль пользователя для подключения к базе данных.

    Пример
    <Settings>
    <ConnectionString>Data Source=localhost;Database=LogServ;User Id=log;Password=Q1q2E3e4</ConnectionString>
    </Settings>
  7. Создайте файл sampleDbBackup с расширением .config.

    Важно

    Имя файла должно в точности повторять значение Id, заданного в пункте 2.

  8. Укажите данные для подключения к базе данных в теге 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).

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