Единый журнал событий
Единый журнал событий используется для инсталляций Indeed Certificate Manager под управлением ОС Linux или в конфигурациях с несколькими серверами системы под управлением ОС Windows. Единый журнал событий позволяет записывать события со всех серверов в общий журнал.
Единый журнал можно настроить с помощью приложений Indeed CM Event Log Proxy или Log Server.
Indeed CM Event Log Proxy
Приложение Indeed CM Event Log Proxy позволяет записывать события с одного или нескольких серверов Indeed Certificate Manager в единый журнал Windows Event Log.
Indeed CM Event Log Proxy можно установить только на систему под управлением ОС Windows. Системные требования совпадают с требованиями для установки серверных компонентов.
Чтобы установить и настроить Indeed CM Event Log Proxy:
Выполните вход на рабочую станцию с правами локального администратора.
Откройте каталог
IndeedCM.Serverдистрибутива системы и запустите Мастер установкиIndeedCM.EventLog.Proxy-<номер версии>.x64.ru-ru.msi.В Мастере установки выберите способ аутентификации в зависимости от ОС, где установлен сервер Indeed CM, и укажите необходимые настройки в файлах конфигурации:
- Windows
- Linux
- Выберите способ аутентификации Windows.
- По завершении установки нажмите Готово и закройте Мастер установки.
- Откройте файл
web.config(C:\inetpub\wwwroot\cm\eventlogproxy) в редакторе Блокнот от имени администратора. - В параметре
allow usersукажите учетную запись из домена, где установлен Event Log Proxy. Например, сервисную учетную запись для работы с каталогом пользователей.Пример<authorization>
<clear />
<add accessType="Allow" users="DEMO\servicecm" />
</authorization> - Сохраните изменения и закройте файл
web.config.
- Выберите способ аутентификации по сертификату. По завершении установки нажмите Готово и закройте Мастер установки.
- Откройте файл
appsettings.json(C:\inetpub\wwwroot\cm\eventlogproxy) в редакторе Блокнот от имени администратора. - В секции
authSettingsв параметреallowedCertificateThumbprintsукажите отпечаток клиентского сертификата, разрешенного к предъявлению сервером Indeed CM. Убедитесь, что поле Улучшенный ключ (Enhanced Key Usage) сертификата содержит значение «Проверка подлинности клиента» (Client Authentication), и сертификат установлен в хранилище сертификатов сервера Indeed CM.
Как выпустить клиентский сертификатПример"authSettings":{
"authorizeByCertificate": "true",
"allowedCertificateThumbprints": "aba8b93d73343f2182e3c1c40482b2ae2d75b6ec"
} - Сохраните изменения и закройте файл
appsettings.json.
Перезапустите пул приложения Indeed CM Event Log Proxy, чтобы сохранить изменения:
- Откройте Диспетчер служб IIS (Internet Information Services Manager) и в левом меню выберите Пул приложений IIS (Application pools).
- Выберите приложение Indeed CM Event Log Proxy и в правом меню нажмите Перезапуск (Recycle).
Log Server
Log Server позволяет записывать события с одного или нескольких серверов Indeed CM в единый журнал Windows Event Log, Microsoft SQL Server, PostgreSQL Server, SysLog Server.
Log Server можно установить на систему под управлением ОС Windows или Linux. Системные требования совпадают с требованиями для установки серверных компонентов.
- Windows
- Linux
Установка
Перед установкой Log Server установите платформу .NET версии 8.0 и модуль URL Rewrite.
Чтобы установить Log Server:
- Выполните вход на рабочую станцию с правами локального администратора.
- Запустите
LogServer-<номер версии>.x64.ru-ru.msiиз каталогаLog.Serverдистрибутива системы и следуйте указаниям Мастера. - Из каталога
Log.Servercкопируйте:- Файл
cmSchema.configв каталогC:\inetpub\wwwroot\ls. - Файлы
EventLogTarget.config,MsSqlTarget.config,PgSqlTarget.configиSysLogTarget.configв каталогC:\inetpub\wwwroot\ls\targetConfigs.
- Файл
Настройка чтения и записи событий
Log Server поддерживает чтение событий только из одного хранилища (ReadTargetId), запись событий возможна одновременно в несколько хранилищ (WriteTargets).
Поддерживается настройка чтения и записи событий в следующие хранилища:
- Windows Event Log
- MS SQL
- PostgreSQL
- Syslog
- Windows Event Log
- Microsoft SQL
- PostgreSQL
- Syslog
Перейдите в каталог
C:\inetpub\wwwroot\lsи отредактируйте файлclientApps.config:- В секции
Applicationsдобавьте:
<Application Id="cm" SchemaId="cmSchema">
<ReadTargetId>EventLogTarget</ReadTargetId>
<WriteTargets>
<TargetId>EventLogTarget</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>- В секции
Targetsдобавьте новый элемент:
<Targets>
<Target Id="EventLogTarget" Type="eventlog"/>
</Targets>- В секции
Сохраните изменения и закройте файл конфигурации.
База для хранения данных Log Server создается вручную, а ее наполнение происходит автоматически.
- Создайте базу данных в среде SQL Server Management Studio с произвольным именем:
- В окне Обозреватель объектов (Object Explorer) нажмите правой кнопкой мыши по вкладке Базы данных (Databases).
- Выберите Создать базу данных... (New Database...) и укажите Имя базы данных: (Database name:).
- В поле Владелец: (Owner:) определите владельца создаваемой базы.
- Нажмите ОК, чтобы сохранить созданную базу данных.
Создайте или выберите любую внутреннюю учетную запись Microsoft SQL или учетную запись из поддерживаемого LDAP-каталога (Active Directory, FreeIPA, ALD Pro). Например, сервисную учетную запись для работы Indeed CM.
После создания базы данных указанная учетная запись будет обладать правами db_owner, public. Indeed CM будет использовать эту учетную запись для чтения/записи в базу данных.
Перейдите в каталог
C:\inetpub\wwwroot\ls\targetConfigsи отредактируйте файлMsSqlTarget.config. В секции<Settings>…</Settings>задайте параметры:Data Source– имя сервера Microsoft SQL Server или именованного экземпляра Microsoft SQL Server в форматеимя сервера\имя экземпляра.Database– имя базы данных (ILS).User Id– сервисная учетная запись для работы с базами данных Indeed CM.Password– пароль сервисной учетной записи.TrustServerCertificate– настройка доверия сертификату сервера. Установите значение True.
<Settings>
<ConnectionString>Data Source=MSSQL\SQLEXPRESS;Database=LogServer;User Id=servicesql;Password=P@ssw0rd;TrustServerCertificate=True</ConnectionString>
</Settings>Перейдите в каталог
C:\inetpub\wwwroot\lsи отредактируйте файлclientApps.config:- В секции
Applicationдобавьте:
<Application Id="cm" SchemaId="cmSchema">
<ReadTargetId>MsSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>MsSqlTarget</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>- В секции
Targetsдобавьте новый элемент:
<Targets>
<Target Id="MsSqlTarget" Type="mssql"/>
</Targets>- В секции
Сохраните изменения и закройте файл конфигурации.
База для хранения данных Log Server создается вручную, а ее наполнение происходит автоматически.
Создайте базу данных в PostgreSQL, например, в среде pgAdmin:
- В окне Обозреватель (Browser) нажмите правой кнопкой мыши по пункту Базы данных (Databases).
- Выберите Создать (Create) → База данных... (Database...).

- На вкладке Общие (General) в поле База данных (Database) укажите произвольное название базы данных, выберите из списка Владелец (Owner) сервисную четную запись, которая будет использоваться для подключения к базе данных.
- Нажмите Сохранить (Save).

Предоставьте сервисной учетной записи привилегии на таблицы базы данных:
- Выберите созданную базу данных и перейдите в меню Запросника (Query Tool).
- Введите текст запроса, указав в запросе имя учетной записи:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO <имя сервисной учетной записи>;- В меню Запросника нажмите Выполнить (Execute/Refresh).
По умолчанию в PostgreSQL разрешены только локальные подключения к базам данных, поэтому для работы между различными серверами требуется настройка удаленного подключения к БД:
- В каталоге PostgreSQL откройте конфигурационный файл
pg_hba.conf. Файл находится в каталогеC:\Program Files\PostgreSQL\<номер версии>\data. - В конце файла добавьте строку следующего типа:
CONNECTIONTYPE DATABASE USER ADDRESS METHODГде:
CONNECTIONTYPE– тип подключения. Чтобы использовать подключение по TCP/IP, укажитеhost.DATABASE– имя базы данных, для которой предоставляется доступ. Для доступа ко всем базам данных укажитеALL.USER– имя пользователя, для которого будет доступно подключение. Для доступа всех пользователей укажитеALL.ADDRESS– IP-адрес удаленного сервера Indeed CM. Для доступа с любых адресов укажите0.0.0.0/0.METHOD– метод аутентификации пользователя. Например,md5,scram-sha-256.
Примерhost LogServer servicepg 192.200.1.0/24 md5
host ALL servicepg 10.0.0.0/8 md5
host ALL ALL 0.0.0.0/0 scram-sha-256- В каталоге PostgreSQL откройте конфигурационный файл
В каталоге
C:\inetpub\wwwroot\ls\targetConfigsотредактируйте файлPgSqlTarget.config. В секции<ConnectionString>…</ConnectionString>задайте параметры:Host- имя сервера PostgreSQL Server.Port- порт для подключения к PostgreSQL (5432 — значение по умолчанию).Database- имя созданной в п.1 базы данных.Username- сервисная учетная запись для подключения к указанной базе данных.Password- пароль сервисной учетной записи.
<Settings>
<ConnectionString>Host=SRV-POSTGRESQL;Port=5432;Database=LogServer;Username=servicepg;Password=P@ssw0rd</ConnectionString>
</Settings>Перейдите в каталог
C:\inetpub\wwwroot\lsи отредактируйте файлclientApps.config:- В секции
Applicationдобавьте новыйTargetIdдляReadTarget,WriteTarget:
<Application Id="cm" SchemaId="cmSchema">
<ReadTargetId>PgSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>PgSqlTarget</TargetId>
</WriteTargets>
<AccessControl>
<!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
</AccessControl>
</Application>- В секции
Targetsдобавьте новый элемент:
<Targets>
<Target Id="PgSqlTarget" Type="pgsql"/>
</Targets>- В секции
Возможности Syslog ограничены только записью событий (WriteTargets). В примере дополняется конфигурация из примера с PostgreSQL.
В каталоге
C:\inetpub\wwwroot\ls\targetConfigsотредактируйте файлSysLogTarget.config. В секции<ConnectionString>…</ConnectionString>задайте параметры:HostName– имя или IP-адрес Syslog сервера.Port– порт Syslog сервера (514 — порт по умолчанию).Protocol– тип подключения к Syslog серверу: UDP, TCP, TCPoverTLS.Format– опциональный параметр, определяет формат логов: Plain, CEF, LEEF.SyslogVersion– опциональный параметр, спецификация протокола: RFC3164, RFC5424.
<Settings HostName="SRV-SYSLOG" Port="514" Protocol="UDP"/>Перейдите в каталог
C:\inetpub\wwwroot\lsи отредактируйте файлclientApps.config:- В секции
Applicationдобавьте новыйTargetIdдляWriteTarget:
<Applications>
<Application Id="cm" SchemaId="cmSchema">
<ReadTargetId>PgSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>PgSqlTarget</TargetId>
<TargetId>SysLogTarget</TargetId>
</WriteTargets>
<AccessControl>
<!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
</AccessControl>
</Application>
</Applications>- В секции
Targetsдобавьте новый элемент:
<Targets>
<Target Id="PgSqlTarget" Type="pgsql"/>
<Target Id="SysLogTarget" Type="syslog"/>
</Targets>- В секции
Чтобы сохранить изменения, перезапустите пул приложений IIS:
- Откройте Диспетчер служб IIS (Internet Information Services Manager) и в левом меню выберите Пул приложений IIS (Application pools).
- Выберите приложение Log Server и в правом меню нажмите Перезапуск (Recycle).
Установка
- Debian-based
- RHEL-based
Установите Log Server из DEB пакета
indeed.logserver-<номер версии>\_amd64.deb.sudo dpkg -i indeed.logserver-<номер версии>_amd64.deb
Установите Log Server из RPM-пакета
indeed.logserver-<номер версии>.x86\_64.rpm:sudo rpm -i indeed.logserver-<номер версии>.x86_64.rpm
- Из каталога
Log.Servercкопируйте файлcmSchema.configв каталог/opt/indeed/ls:sudo cp ./cmSchema.config /opt/indeed/ls/
Настройка чтения и записи событий
Log Server поддерживает чтение событий только из одного хранилища (ReadTargetId). Запись событий возможна одновременно в несколько хранилищ (WriteTargets).
Поддерживается настройка чтения и записи событий в следующие хранилища:
- MS SQL
- PostgreSQL
- Syslog
- Microsoft SQL
- PostgreSQL
- Syslog
База для хранения данных Log Server создается вручную, а ее наполнение происходит автоматически.
Создайте базу данных в среде SQL Server Management Studio с произвольным именем:
- В окне Обозреватель объектов (Object Explorer) нажмите правой кнопкой мыши по вкладке Базы данных (Databases).
- Выберите Создать базу данных... (New Database...) и укажите Имя базы данных: (Database name:).
- В поле Владелец: (Owner:) определите владельца создаваемой базы.
- Нажмите ОК, чтобы сохранить созданную базу данных.
ПримечаниеСоздайте или выберите любую внутреннюю учетную запись Microsoft SQL или учетную запись из поддерживаемого LDAP-каталога (Active Directory, FreeIPA, ALD Pro). Например, сервисную учетную запись для работы Indeed CM.
После создания базы данных указанная учетная запись будет обладать правами db_owner и public. Indeed CM будет использовать эту учетную запись для чтения/записи в базу данных.
Перейдите в каталог
/opt/indeed/ls/targetConfigsи отредактируйте файлMsSqlTarget.config. В секции<Settings>…</Settings>задайте параметры:Data Source– имя сервера Microsoft SQL Server или именованного экземпляра Microsoft SQL Server в форматеимя сервера\имя экземпляра.Database– имя базы данных (ILS).User Id– сервисная учетная запись для работы с базами данных Indeed CM.Password– пароль сервисной учетной записи.TrustServerCertificate– настройка доверия сертификату сервера. Установите значение True.
<Settings>
<ConnectionString>Data Source=MSSQL\SQLEXPRESS;Database=LogServer;User Id=servicesql;Password=P@ssw0rd;TrustServerCertificate=True</ConnectionString>
</Settings>Перейдите в каталог
/opt/indeed/lsи отредактируйте файлclientApps.config:- В секции
Applicationдобавьте:
<Application Id="cm" SchemaId="cmSchema">
<ReadTargetId>MsSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>MsSqlTarget</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>- В секции
Targetsдобавьте новый элемент:
<Targets>
<Target Id="MsSqlTarget" Type="mssql"/>
</Targets>- В секции
База для хранения данных Log Server создается вручную, а ее наполнение происходит автоматически.
Создайте базу данных в PostgreSQL, например, в среде pgAdmin:
- В окне Обозреватель (Browser) нажмите правой кнопкой мыши по пункту Базы данных (Databases).
- Выберите Создать (Create) → База данных... (Database...).

- На вкладке Общие (General) укажите произвольное название базы данных в поле База данных (Database), выберите из списка Владелец (Owner) сервисную четную запись, которая будет использоваться для подключения к базе данных.
- Нажмите Сохранить (Save).

Предоставьте сервисной учетной записи привилегии на таблицы базы данных:
- Выделите созданную базу данных в списке и перейдите в меню Запросника (Query Tool).
- Введите текст запроса, указав в запросе имя учетной записи:
GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO <имя сервисной учетной записи>;- В меню Запросника нажмите Выполнить (Execute/Refresh).
По умолчанию в PostgreSQL разрешены только локальные подключения к базам данных, поэтому для работы между различными серверами требуется настройка удаленного подключения к БД:
- В каталоге PostgreSQL откройте конфигурационный файл
pg_hba.conf. Файл находится в каталоге/etc/postgresql/<номер версии>/main. - В конце файла добавьте строку следующего типа:
CONNECTIONTYPE DATABASE USER ADDRESS METHODГде:
CONNECTIONTYPE– тип подключения. Чтобы использовать подключение по TCP/IP, укажитеhost.DATABASE– имя базы данных, для которой предоставляется доступ. Для доступа ко всем базам данных укажитеALL.USER– имя пользователя, для которого будет доступно подключение. Для доступа всех пользователей укажитеALL.ADDRESS– IP-адрес удаленного сервера Indeed CM. Для доступа с любых адресов укажите0.0.0.0/0.METHOD– метод аутентификации пользователя. Например,md5,scram-sha-256.
Примерhost LogServer servicepg 192.200.1.0/24 md5
host ALL servicepg 10.0.0.0/8 md5
host ALL ALL 0.0.0.0/0 scram-sha-256- В каталоге PostgreSQL откройте конфигурационный файл
В каталоге
/opt/indeed/ls/targetConfigsотредактируйте файлPgSqlTarget.config. В секции<ConnectionString>…</ConnectionString>задайте параметры:Host– имя сервера PostgreSQL Server.Port– порт для подключения к PostgreSQL (5432 — значение по умолчанию).Database– имя созданной в п.1 базы данных.Username– сервисная учетная запись для подключения к указанной базе данных.Password– пароль сервисной учетной записи.
<Settings>
<ConnectionString>Host=SRV-POSTGRESQL;Port=5432;Database=LogServer;Username=servicepg;Password=P@ssw0rd</ConnectionString>
</Settings>Перейдите в каталог
/opt/indeed/lsи отредактируйте файлclientApps.config:- В секции
Applicationдобавьте новыйTargetIdдляReadTarget,WriteTarget:
<Application Id="cm" SchemaId="cmSchema">
<ReadTargetId>PgSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>PgSqlTarget</TargetId>
</WriteTargets>
<AccessControl>
<!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
</AccessControl>
</Application>- В секции
Targetsдобавьте новый элемент:
<Targets>
<Target Id="PgSqlTarget" Type="pgsql"/>
</Targets>- В секции
Возможности Syslog ограничены только записью событий (WriteTargets). В примере дополняется конфигурация из примера с PostgreSQL.
В каталоге
/opt/indeed/ls/targetConfigsотредактируйте файлSysLogTarget.config. В секции<ConnectionString>…</ConnectionString>задайте параметры:HostName- имя или IP-адрес Syslog сервера.Port- порт Syslog сервера. Порт по умолчанию — 514.Protocol- тип подключения к Syslog серверу: UDP, TCP, TCPoverTLS.Format- опциональный параметр, определяет формат логов: Plain, CEF, LEEF.SyslogVersion- опциональный параметр, спецификация протокола: RFC3164, RFC5424.
<Settings HostName="SRV-SYSLOG" Port="514" Protocol="UDP"/>Перейдите в каталог
/opt/indeed/lsи отредактируйте файлclientApps.config:- В секции
Applicationдобавьте новыйTargetIdдляWriteTarget:
<Applications>
<Application Id="cm" SchemaId="cmSchema">
<ReadTargetId>PgSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>PgSqlTarget</TargetId>
<TargetId>SysLogTarget</TargetId>
</WriteTargets>
<AccessControl>
<!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
</AccessControl>
</Application>
</Applications>- В секции
Targetsдобавьте новый элемент:
<Targets>
<Target Id="PgSqlTarget" Type="pgsql"/>
<Target Id="SysLogTarget" Type="syslog"/>
</Targets>- В секции
Применение настроек
Откройте конфигурационный файл веб-сервера nginx или Apache и раскомментируйте строки обработки приложения api:
Пример для nginxlocation /api
{ include /etc/nginx/conf.d/proxy.conf; proxy_pass http://localhost:5010/api; }Пример для ApacheProxyPass /api http://localhost:5010/api
ProxyPassReverse /api http://localhost:5010/apiПерезапустите веб-сервер.
Перезапустите сервис Log Server:
sudo systemctl restart indeed-ls.service
Настройка Indeed CM для работы с единым журналом событий
- Настройте подключение к журналу событий в Мастере настройки Indeed CM. Инструкция для подключения журнала событий
- Проверьте работу журнала событий. Перейдите в Консоль управления, откройте раздел Журнал и выполните поиск событий.
Ожидаемый результат: отсутствие ошибок.
Поиск в журнале может не дать результатов, если журнал на удаленном сервере не содержит никаких событий. Выполните в веб-приложениях системы любое действие, результат которого записывается в журнал. Например, выключите устройство, добавьте или измените комментарий и повторите поиск событий.