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

Indeed Log Server

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

События записываются в базы данных.

Как создать и настроить базу данных?

Установка Log Server

Отдельно устанавливать Log Server не нужно. Компонент устанавливается автоматически при распаковке архива am-<номер версии>.tar.gz.

Для корректной работы компонента Log Server необходимо отредактировать конфигурационный файл.

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

  1. Откройте файл am/ls/targets/DbTargetSqlAM.config и в строке ConnectionString укажите следующие данные:

    • Server — DNS/IP-адрес сервера с базой данных PostgreSQL.
    • Database — имя базы данных.
    • User ID — имя пользователя, который имеет полные права для базы данных Database.
    • Password — пароль пользователя.
    Пример
    <?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</ConnectionString>
    </Settings>
  2. При необходимости использовать дополнительное хранилище данных, откройте конфигурационный файл сервера am/ls/clientApps.config и раскомментируйте необходимые значения в секции Targets:

    Пример
    <Targets>
    <Target Id="DbTargetSqlAM" Type="pgsql" />
    <!-- <Target Id="DbTargetMssqlAM" Type="mssql" /> -->
    <Target Id="DbTargetSqlIndeedKey" Type="pgsql" />
    <!-- <Target Id="DbTargetMssqlIndeedKey" Type="mssql" /> -->
    <Target Id="TargetSyslog" Type="syslog" />
    </Targets>

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

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

  • хранилище в SysLog
  • резервное хранилище
Хранилище в 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. Откройте конфигурационный файл am/ls/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. Откройте конфигурационный файл am/ls/clientApps.config.

  3. Для блока с Application Id"="ea" в теге TargetId для WriteTargets укажите sampleSyslog.  Тег ReadTargetId оставьте пустым, так как чтение выполняется сторонней программой, в данном примере Syslog Watcher.

    Информация

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

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

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

    В CertificateThumbprint указывается отпечаток клиентского сертификата Core Server.

    Пример
     <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.

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

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

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

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

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

  2. В блоке Targets скопируйте тег Target с Id="sqlTargetAM" и измените id на произвольное значение, например sqlDbBackup.

    Пример
    <Targets>
    <Target Id="sampleEventLog" Type="pgsql"/>
    <Target Id="sqlDbBackup" Type="pgsql"/>
    <Target Id="sampleSyslog" Type="syslog"/>
    </Targets>
  3. Для блока с Application Id="ea" в тегах ReadTargetId указать sqlTargetAM.

    Информация

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

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

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

  4. В блоке WriteTargets укажите <TargetId>sqlTargetAM</TargetId> и <TargetId>sqlDbBackup</TargetId>.

    Информация

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

    • am/ls/sqlTargetAM.config
    • am/ls/sqlDbBackup.config
    Пример
    <Application Id="ea" SchemaId="eaSchema">
    <ReadTargetId>sqlTargetAM</ReadTargetId>
    <WriteTargets>
    <TargetId>sqlTargetAM</TargetId> 
    <TargetId>sqlDbBackup</TargetId> 
    </WriteTargets>
    <AccessControl>
    <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />
    </AccessControl>
    </Application>
  5. Откройте конфигурационный файл  am/ls/sqlTargetAM.config.

  6. В строке ConnectionString укажите укажите следующие данные:

    • Server — DNS/IP-адрес сервера с базой данных PostgreSQL.
    • Database — имя базы данных.
    • User ID — имя пользователя, который имеет полные права для базы данных Database.
    • Password — пароль пользователя. 
    Пример
    <?xml version="1.0" encoding="utf-8"?>
    <Settings>
    <ConnectionString>Server=Server;Database=Name;User ID=User;Password=Password</ConnectionString>
    </Settings>
  7. Создайте файл sqlDbBackup с расширением .config.

    Важно

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

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

Включить/отключить шифрование конфигурационных файлов 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
  4. Чтобы расшифровать конфигурационные файлы, запустите скрипт protector.sh с параметром unprotect.

    sudo bash ./protector.sh unprotect

Отказоустойчивость

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

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

Код события: 500.

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

Путь к папке для хранения событий задается в конфигурационных файлах серверных компонентов (Core, Management Console, User Console) в теге logServer в параметре location (по умолчанию: ./EventCache). Время отправки логов после возобновления работы LogServer задается в теге logServer в параметре FlushInterval (по умолчанию: 10 минут).

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

Локализация

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

Если с сервера поступает запрос с неизвестной локализацией, то будут выбраны события с локализацией, заданной по умолчанию, данный параметр задается в конфигурационном файле схемы am/ls/eaSchema.config.

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

Сбор логов

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