Единый журнал событий
Единый журнал событий используется для инсталляций 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.
- По завершении установки нажмите Готово и закройте Мастер установки.
- Выберите способ аутентификации по сертификату. По завершении установки нажмите Готово и закройте Мастер установки.
- Откройте файл 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 или OC Linux. Системные требования совпадают с требованиями для установки серверных компонентов.
- ОС Windows
- ОС Linux
Установка
Перед установкой Log Server установите платформу .NET версии 8.0 и модуль URL Rewrite.
Чтобы установить Log Server:
- Выполните вход на рабочую станцию с правами локального администратора.
- Запустите LogServer-<номер версии>.x64.ru-ru.msi из каталога Log.Server дистрибутива системы и следуйте указаниям Мастера.
- Из каталога Log.Server cкопируйте:
- файл Schema.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
- MS 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:) определите владельца создаваемой базы.
- Нажмите ОК, чтобы сохранить созданную базу данных.
Создайте или выберите любую внутреннюю учетную запись MS SQL или Active Directory. Например, сервисную учетную запись для работы 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).
Установка
- RHEL-based
- Debian-based
Установите Log Server из RPM-пакета indeed.logserver-<номер версии>.x86_64.rpm:
sudo rpm -i indeed.logserver-<номер версии>.x86_64.rpm
Установите Log Server из DEB пакета indeed.logserver-<номер версии>_amd64.deb.
sudo dpkg -i indeed.logserver-<номер версии>_amd64.deb
- Из каталога Log.Server cкопируйте файл cmSchema.config в каталог /opt/indeed/ls:
sudo cp ./cmSchema.config /opt/indeed/ls/
Настройка чтения и записи событий
Log Server поддерживает чтение событий только из одного хранилища (ReadTargetId
). Запись событий возможна одновременно в несколько хранилищ (WriteTargets
).
Настройте чтение и запись событий в следующие хранилища:
- MS SQL;
- PostgreSQL;
- Syslog.
- MS SQL
- PostgreSQL
- Syslog
База для хранения данных Log Server создается вручную, а ее наполнение происходит автоматически.
Создайте базу данных в среде SQL Server Management Studio с произвольным именем:
- В окне Обозреватель объектов (Object Explorer) нажмите правой кнопкой мыши по вкладке Базы данных (Databases).
- Выберите Создать базу данных... (New Database...) и укажите Имя базы данных: (Database name:).
- В поле Владелец: (Owner:) определите владельца создаваемой базы.
- Нажмите ОК, чтобы сохранить созданную базу данных.
ИнформацияСоздайте или выберите любую внутреннюю учетную запись MS SQL или Active Directory. Например, сервисную учетную запись для работы 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. Инструкция для подключения журнала событий
- Проверьте работу журнала событий. Перейдите в Консоль управления, откройте раздел Журнал и выполните поиск событий.
Ожидаемый результат: отсутствие ошибок.
Поиск в журнале может не дать результатов, если журнал на удаленном сервере не содержит никаких событий. Выполните в веб-приложениях системы любое действие, результат которого записывается в журнал. Например, выключите устройство, добавьте или измените комментарий и повторите поиск событий.