Переход к использованию нового экземпляра Сервиса Аудита
Опубликовано Андрей Солдатов on 2022-11-01 00:40

Внимание!

  1. Нижеуказанная информация актуальна только при использовании актуальной сборки КриптоПро DSS (2.0.3284 и новее) и только в том случае, если Вы не формируете в Сервисе Аудита отчеты, для сбора статистики/выставления счетов по оказанным услугам. 
  2. Есть альтернативный способ, предполагающий создание новой Базы Данных имеющегося экземпляра Сервиса Аудита, без необходимости создания нового экземпляра.

В силу того, что в базе данных (БД) Сервиса Аудита DSS фиксируется большое количество событий, со временем это может привести к:

  • Сильному разрастанию БД Сервиса Аудита;
  • Увеличению времени отклика, при работе в веб-интерфейсе Сервиса Подписи DSS;
  • Увеличению времени обработки запросов на получение списка событий Сервиса Аудита.

Если Вы столкнулись с указанными проявлениями, можно запланировать переход к использованию нового экземпляра Сервиса Аудита.

1. Запланировать технологическое окно для проведения работ по созданию и настройке нового экземпляра Сервиса Аудита.
2. Получить имя старого приложения Сервиса Аудита (ApplicationName) и его отображаемое имя (DisplayName), выполнив командлет: Get-DssAnalyticsServiceInstance
3. Объявить переменные:

$hostname = "Адрес Сервера DSS";
$auditAppname = "Имя нового экземпляра Сервиса Аудита" #Значение, объявленное в данной переменной не должно совпадать с ApplicationName и DisplayName, полученными в выводе командлета из п. 2.
$SQLServerName = "Имя SQL-сервера"
$auditDbName = "Имя БД нового экземпляра Сервиса Аудита" #Не должно совпадать с именем БД старого экземпляра Сервиса Аудита
$stsAppName = "Имя приложения Центра Идентификации" #По умолчанию: STS
$feDisplayName = "Имя приложения веб-интерфейса" #По умолчанию: Frontend
$ssAppName = "Имя приложения Сервиса Подписи" #По умолчанию: SignServer
$dsAppName = "Имя приложения Сервиса Обработки Документов" #По умолчанию: DocumentStore
$mdagAppName = "Имя приложения Сервиса Взаимодействия с мобильным приложением" #По умолчанию: mDAG
$auditCertThumb = "Отпечаток Сервисного сертификата Сервиса Аудита"
$stsCertThumb = "Отпечаток Сервисного сертификата Центра идентификации" #Может быть получен выводом командлета: Get-DssStsProperties|select -ExpandProperty "ServiceCertificate"

4. Создать новый экземпляр Сервиса Аудита (на примере создания БД на локальном SQL-сервере):

New-DssAnalyticsServiceInstance -SiteName "Default Web Site" –DisplayName $auditAppname -ApplicationName $auditAppname -SqlServerName "$SQLServerName"-DBName $auditDbName

Примечание: примеры создания БД на выделенном SQL-сервере приведены в руководстве администратора.

5. Указать отпечаток сервисного сертификата:

Set-DssAnalyticsServiceProperties –DisplayName $auditAppname -ServiceCertificate $auditCertThumb 

Примечание: предварительно сервисный сертификат должен быть установлен с привязкой к закрытому ключу в хранилище "Личные" (Personal) локального компьютера Сервера DSS + учетной записи (УЗ), под которой работает пул нового приложения Сервиса Аудита, должны быть выданы права на доступ к закрытому ключу сервисного сертификата. Также в хранилища локального компьютера Сервера DSS должна быть установлена цепочка сертификатов издателя сервисного сертификата. 
Требования к сервисному сертификату и порядок выдачи прав на доступ к закрытому ключу приведены в руководстве администратора.

6. Настроить конечные точки:

Set-DssAnalyticsServiceProperties –DisplayName $auditAppname -AnalyticsServiceUri "https://$hostname/$auditAppname/AnalyticsService.svc/issuedtoken/transport/nosc"
Set-DssAnalyticsServiceProperties –DisplayName $auditAppname -StsAddress "https://$hostname/$stsAppName/Active.svc/service"
Set-DssAnalyticsWSFederationSettings –DisplayName $auditAppname -Issuer "https://$hostname/$stsAppName/sts/issue/" -Realm "https://$hostname/$auditAppname/Audit"

7. Зарегистрировать Центр Идентификации в качестве доверенного издателя маркеров безопасности:

Add-DssAnalyticsClaimsProviderTrust –DisplayName $auditAppname -IssuerName realsts -Thumbprint $stsCertThumb

8. Зарегистрировать новый экземпляр Сервиса Аудита в качестве доверенной стороны Центра Идентификации:

Add-DssRelyingPartyTrust -DisplayName $stsAppName -Name $auditAppname –MetadataUri "https://$hostname/$auditAppname/federationmetadata/2007-06/federationmetadata.xml"

9. Удалить доверенную сторону старого экземпляра Сервиса Аудита в Центре идентификации:

$remove = Get-DssRelyingPartyTrust -DisplayName $stsAppName|where {$_.Identities -like "*Имя приложения старого экземпляра Сервиса Аудита*"}|select -ExpandProperty Id
Remove-DssRelyingPartyTrust -DisplayName $stsAppName -Id $remove

10. Удалить системы оповещения старого экземпляра Сервиса Аудита:

Get-DssStsAudit -DisplayName $stsAppName|foreach {Remove-DssStsAudit -DisplayName $stsAppName -NotifierId $_.Id}
Get-DssSignServerAudit -DisplayName $ssAppName|foreach {Remove-DssSignServerAudit -DisplayName $ssAppName -NotifierId $_.Id}

Get-DssDocumentStoreAudit -DisplayName $dsAppName|foreach {Remove-DssDocumentStoreAudit -DisplayName $dsAppName-NotifierId $_.Id}

11. Добавить системы оповещения нового экземпляра Сервиса Аудита:

New-DssStsAudit -DisplayName $stsAppName -UseRestApi 1 -AuditServiceAddress "http://$hostname/$auditAppname/api/writer"
New-DssSignServerAudit -DisplayName $ssAppName -UseRestApi 1 -AuditServiceAddress "http://$hostname/$auditAppname/api/writer"
New-DssDocumentStoreAudit -DisplayName $dsAppName -UseRestApi 1 -AuditServiceAddress "http://$hostname/$auditAppname/api/writer"

12. Настроить отображение записей нового экземпляра Сервиса Аудита в веб-интерфейсе Сервиса Подписи, личных кабинетах Пользователей/Операторов DSS, а также мобильных приложениях:

Set-DssStsProperties –DisplayName $stsAppName –AnalyticsServiceAddress "https://$hostname/$auditAppname/analyticsservice.svc/issuedtoken/transport/nosc"
Set-DssFEProperties –DisplayName $feDisplayName –AnalyticsServiceAddress "https://$hostname/$auditAppname"
Set-MdagProperties -DisplayName $mdagAppName -AnalyticsBaseAddress "https://$hostname/$auditAppname"

13. Перезапустить пулы приложений DSS:

Restart-DssStsInstance -DisplayName $stsAppName
Restart-DssSignServerInstance -DisplayName $ssAppName
Restart-DssFeInstance -DisplayName $feDisplayName
Restart-DssAnalyticsServiceInstance -DisplayName $auditAppname
Restart-DssDocumentStoreInstance -DisplayName $dsAppName
Restart-MdagInstance -DisplayName $mdagAppName

14. Выполнить проверку доступности конечных точек сервисов, в соответствие с руководством администратора.

15. Проверить, что в БД нового экземпляра Сервиса Аудита фиксируются события.

16. При необходимости - удалить из группы доступности SQL БД старого экземпляра Сервиса Аудита, а также исключить ее из заданий по созданию бэкапов.

17. Сделать финальный Full-бэкап БД старого экземпляра Сервиса Аудита. При необходимости - сохранить его.

18. Удалить старый экземпляр Сервиса Аудита с БД: Remove-DssAnalyticsServiceInstance -DisplayName "Имя приложения старого экземпляра Сервиса Аудита" -DeleteDB

19. При необходимости - добавить БД нового экземпляра Сервиса Аудита в группу доступности SQL, а также в план по созданию бэкапов.

ОБРАТИТЕ ВНИМАНИЕ: в случае кластерной конфигурации DSS потребуется дополнительно сделать следующие действия:

20. Сформировать на других узлах DSS строку подключения к БД нового экземпляра Сервиса Аудита (обязательно с указанием параметра -UseExistingDB). Примеры формирования строки подключения представлены в руководстве администратора

21. Развернуть на других узлах DSS новый экземпляр Сервиса Аудита, с указанием строки подключения к новой БД: 

New-DssAnalyticsServiceInstance -SiteName "Default Web Site" –DisplayName $auditAppname -ApplicationName $auditAppname -ConnectionInfo "Строка подключения к БД нового экземпляра Сервиса Аудита"

22. Установить на другие узлы DSS сервисный сертификат Сервиса Аудита, с привязкой к закрытому ключу, в хранилище "Личные" (Personal) локального компьютера Сервера + предоставить УЗ, под которой работает пул нового приложения Сервиса Аудита, права на доступ к закрытому ключу сервисного сертификата. Также в хранилища локального компьютера должна быть установлена цепочка сертификатов издателя сервисного сертификата.

23. Настроить на других узлах отображение записей нового экземпляра Сервиса Аудита в веб-интерфейсе Сервиса Подписи, а также мобильных приложениях:

Set-DssFEProperties –DisplayName $feDisplayName –AnalyticsServiceAddress "https://$hostname/$auditAppname"
Set-MdagProperties -DisplayName $mdagAppName -AnalyticsBaseAddress "https://$hostname/$auditAppname"

24. Выполнить на других узлах перезагрузку пулов приложений, по аналогии с п. 13.

25. Удалить на других узлах старый экземпляр Сервиса Аудита: Remove-DssAnalyticsServiceInstance -DisplayName "Имя приложения старого экземпляра Сервиса Аудита"

26. Выполнить проверку доступности конечных точек сервисов на других узлах, в соответствие с руководством администратора.

(3 плюсик(ов))
Класс!
Не очень :(