Indeed Log Server
Indeed Log Server (Log Server) — это веб-приложение, работающее на базе HTTP-сервера Kestrel. Данный модуль отвечает за централизованный сбор и аудит событий системы.
События записываются в базы данных.
Как создать и настроить базу данных?
Установка Log Server
Отдельно устанавливать Log Server не нужно. Компонент устанавливается автоматически при распаковке архива am-<номер версии>.tar.gz.
Для корректной работы компонента Log Server необходимо отредактировать конфигурационный файл.
Редактирование конфигурационного файла
Откройте файл 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>При необходимости использовать дополнительное хранилище данных, откройте конфигурационный файл сервера 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
Запустите установочный файл 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.
Редактирование конфигурационного файла
Откройте конфигурационный файл 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" />
Откройте конфигурационный файл am/ls/clientApps.config.
Для блока с
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>Нажмите Start Server в верхнем левом углу программы Syslog Watcher.
Пример отображения
Резервное хранилище
Резервное хранилище
Настройка с резервным хранилищем в базе данных
Откройте конфигурационный файл сервера am/ls/clientApps.config.
В блоке
Targets
скопируйте тегTarget
сId="sqlTargetAM"
и измените id на произвольное значение, напримерsqlDbBackup
.Пример<Targets>
<Target Id="sampleEventLog" Type="pgsql"/>
<Target Id="sqlDbBackup" Type="pgsql"/>
<Target Id="sampleSyslog" Type="syslog"/>
</Targets>Для блока с
Application Id="ea"
в тегахReadTargetId
указатьsqlTargetAM
.ИнформацияВ тегах
ReadTargetId
указывается идентификатор хранилища, откуда будет осуществляться чтение событий.В блоке
WriteTargets
в тегахTargetId
указывается идентификатор хранилища, куда будет осуществляться запись событий.Идентификаторы заданы в теге
Targets
, конфигурационные файлы для каждого типа находятся в папке am/ls/target/ с соответствующим именем.В блоке
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>Откройте конфигурационный файл am/ls/sqlTargetAM.config.
В строке 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>Создайте файл sqlDbBackup с расширением .config.
ВажноИмя файла должно в точности повторять значение Id, заданного в пункте 2.
Укажите данные для подключения к резервной базе данных в теге
connectionString
, аналогично пункту 6.
Включить/отключить шифрование конфигурационных файлов 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
Чтобы расшифровать конфигурационные файлы, запустите скрипт
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 находится в разделе Сбор логов серверных компонентов.