Единый журнал событий
Единый журнал событий используется для инсталляций 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.Server cкопируйте:
- Файл 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В каталоге 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.Server cкопируйте файл 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В каталоге /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. Инструкция для подключения журнала событий
- Проверьте работу журнала событий. Перейдите в Консоль управления, откройте раздел Журнал и выполните поиск событий.
Ожидаемый результат: отсутствие ошибок.
Поиск в журнале может не дать результатов, если журнал на удаленном сервере не содержит никаких событий. Выполните в веб-приложениях системы любое действие, результат которого записывается в журнал. Например, выключите устройство, добавьте или измените комментарий и повторите поиск событий.