Единый журнал событий
Единый журнал событий используется для инсталляций 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="DOMAIN\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 дистрибутива Indeed CM и следуйте указаниям мастера.
- Из каталога Log.Server cкопируйте:
- Файл cmSchema.config в каталог C:\inetpub\wwwroot\ls.
- Файлы cmEventLogTarget.config, cmMsSqlTarget.config, cmPgSqlTarget.config и cmSysLogTarget.config в каталог C:\inetpub\wwwroot\ls\targetConfigs.
Настройка чтения и записи событий
Log Server поддерживает чтение событий только из одного хранилища (ReadTargetId), запись событий возможна одновременно в несколько хранилищ (WriteTargets).
Вы можете настроить чтение и запись событий в хранилища Windows Event Log, Microsoft SQL, PostgreSQL, Syslog.
- Windows Event Log
- Microsoft SQL Server
- PostgreSQL
- Syslog
Перейдите в каталог C:\inetpub\wwwroot\ls и отредактируйте файл clientApps.config.
- В секции
Applicationsдобавьте следующие параметры.
<Application Id="cm" SchemaId="cmSchema">
<ReadTargetId>cmEventLogTarget</ReadTargetId>
<WriteTargets>
<TargetId>cmEventLogTarget</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>- В секции
Targetsдобавьте новый элемент.
<Targets>
<Target Id="cmEventLogTarget" Type="eventlog"/>
</Targets>- В секции
Сохраните изменения и закройте файл конфигурации.
Создайте базу данных и сервисную учетную запись в SQL Server Management Studio.
Перейдите в каталог C:\inetpub\wwwroot\ls\targetConfigs и отредактируйте файл cmMsSqlTarget.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>cmMsSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>cmMsSqlTarget</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>- В секции
Targetsдобавьте новый элемент.
<Targets>
<Target Id="cmMsSqlTarget" Type="mssql"/>
</Targets>- В секции
Сохраните изменения и закройте файл конфигурации.
Создайте базу данных и сервисную учетную запись в PostgreSQL.
Создайте расширение uuid-ossp, которое предоставляет функции для генерации Universally Unique Identifiers (UUID).
- Введите текст запроса в поле ввода Запросника.
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";- В меню Запросника нажмите Выполнить (Execute/Refresh).
Перейдите в каталог C:\inetpub\wwwroot\ls\targetConfigs и отредактируйте файл cmPgSqlTarget.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>cmPgSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>cmPgSqlTarget</TargetId>
</WriteTargets>
<AccessControl>
<!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
</AccessControl>
</Application>- В секции
Targetsдобавьте новый элемент.
<Targets>
<Target Id="cmPgSqlTarget" Type="pgsql"/>
</Targets>- В секции
Возможности Syslog ограничены только записью событий (WriteTargets). В примере дополняется конфигурация из примера с PostgreSQL.
В каталоге C:\inetpub\wwwroot\ls\targetConfigs отредактируйте файл cmSysLogTarget.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>cmPgSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>cmPgSqlTarget</TargetId>
<TargetId>cmSysLogTarget</TargetId>
</WriteTargets>
<AccessControl>
<!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
</AccessControl>
</Application>
</Applications>- В секции
Targetsдобавьте новый элемент.
<Targets>
<Target Id="cmPgSqlTarget" Type="pgsql"/>
<Target Id="cmSysLogTarget" Type="syslog"/>
</Targets>- В секции
Чтобы сохранить изменения, перезапустите пул приложений IIS.
- Откройте Диспетчер служб IIS (Internet Information Services Manager) и в левом меню выберите Пул приложений IIS (Application pools).
- Выберите приложение Log Server и в правом меню нажмите Перезапуск (Recycle).
Установка
Установите Log Server.
Debiansudo dpkg -i indeed.logserver-<номер версии>_amd64.debRHELsudo 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).
Вы можете настроить чтение и запись событий в хранилища Microsoft SQL, PostgreSQL и Syslog.
- Microsoft SQL
- PostgreSQL
- Syslog
База для хранения данных Log Server создается вручную, а ее наполнение происходит автоматически.
Создайте базу данных в среде SQL Server Management Studio с произвольным именем.
- В окне Обозреватель объектов (Object Explorer) нажмите правой кнопкой мыши по вкладке Базы данных (Databases).
- Выберите Создать базу данных... (New Database...) и укажите Имя базы данных: (Database name:).
- В поле Владелец: (Owner:) определите владельца создаваемой базы.
- Нажмите ОК, чтобы сохранить созданную базу данных.
ПримечаниеСоздайте или выберите любую внутреннюю учетную запись Microsoft SQL или учетную запись из поддерживаемого LDAP-каталога пользователей. Например, сервисную учетную запись для работы Indeed CM.
После создания базы данных указанная учетная запись будет обладать правами db_owner, public. Indeed CM будет использовать эту учетную запись для чтения/записи в базу данных.
Перейдите в каталог /opt/indeed/ls/targetConfigs и отредактируйте файл cmMsSqlTarget.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>cmMsSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>cmMsSqlTarget</TargetId>
</WriteTargets>
<AccessControl>
<!--<CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" />-->
</AccessControl>
</Application>- В секции
Targetsдобавьте новый элемент.
<Targets>
<Target Id="cmMsSqlTarget" 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).
Создайте расширение uuid-ossp, которое предоставляет функции для генерации Universally Unique Identifiers (UUID):
- Очистите поле ввода Запросника.
- Введите текст запроса.
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";- В меню Запросника нажмите Выполнить (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 отредактируйте файл cmPgSqlTarget.config. В секции
<ConnectionString>…</ConnectionString>заполните следующие параметры:Host– имя сервера PostgreSQL Server.Port– порт для подключения к PostgreSQL. Значение по умолчанию — 5432.Database– имя базы данных.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>cmPgSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>cmPgSqlTarget</TargetId>
</WriteTargets>
<AccessControl>
<!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
</AccessControl>
</Application>- В секции
Targetsдобавьте новый элемент.
<Targets>
<Target Id="cmPgSqlTarget" Type="pgsql"/>
</Targets>- В секции
Возможности Syslog ограничены только записью событий (WriteTargets). В примере дополняется конфигурация из примера с PostgreSQL.
В каталоге /opt/indeed/ls/targetConfigs отредактируйте файл cmSysLogTarget.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>cmPgSqlTarget</ReadTargetId>
<WriteTargets>
<TargetId>cmPgSqlTarget</TargetId>
<TargetId>cmSysLogTarget</TargetId>
</WriteTargets>
<AccessControl>
<!-- <CertificateAccessControl CertificateThumbprint="001122...AA11" Rights="Read" /> -->
</AccessControl>
</Application>
</Applications>- В секции
Targetsдобавьте новый элемент.
<Targets>
<Target Id="cmPgSqlTarget" Type="pgsql"/>
<Target Id="cmSysLogTarget" 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 для работы с единым журналом событий
- Настройте подключение к журналу событий в Мастере настройки.
- Проверьте работу журнала событий. Перейдите в Консоль управления, откройте раздел Журнал и выполните поиск событий.
Ожидаемый результат: отсутствие ошибок.
Поиск в журнале может не дать результатов, если журнал на удаленном сервере не содержит никаких событий. Выполните в веб-приложениях системы любое действие, результат которого записывается в журнал. Например, выключите устройство, добавьте или измените комментарий и повторите поиск событий.