Журнал событий КриптоПро Центр Мониторинга
Сообщения о работе Служб КриптоПро Центр Мониторинга записываются в автоматически создаваемые при установке журналы событий:
/var/log/cprohm/hmsrv/cprohm-hmsrv*.clef(/var/log/cprohm/hmsrv/cprohm-hmsrv*.log) - Служба Мониторинга;/var/log/cprohm/hmfe/cprohm-hmfe*.clef(/var/log/cprohm/hmfe/cprohm-hmfe*.log) - Служба Веб-интерфейса.
Новые файлы журнала создаются в каждый выбранный интервал тестирования и за каждые сутки.
Подробнее о настройке мониторинга журналов — в разделе Мониторинг журналов.
Поддерживаемые типы и форматы журналов событий
В КриптоПро Центр Мониторинга реализована запись событий в файл при помощи библиотеки Serilog. Для файла журнала Службы Мониторинга поддерживается ротация, а также автоматическое удаление старых файлов.
Настройка журналирования и ротации журналов мониторинга
Настройка журналов мониторинга производится при помощи
командлета PowerShell Set-HmLoggingProperties. Настройка влияет и на журнал Службы Мониторинга, и на
журнал Веб-интерфейса одновременно.
| Название свойства | Описание |
|---|---|
LogLevel |
Уровень логирования по умолчанию. Может быть использовано значение Trace для добавления в журналы дополнительной отладочной информации. |
OutputTemplate |
Шаблон сообщения. Параметры и вид шаблона по умолчанию описаны ниже. |
RollingInterval |
Задает частоты создания нового файла журнала. Доступны значения:Minute,Hour,Day,Month,Year, Infinite. По умолчанию имеет значение Day. |
FileSizeLimitBytes |
Максимальный размер файла журнала в байтах, при достижении заданного размера будет создан новый файл. Для неограниченного роста необходимо указать 0. По умолчанию имеет значение 1MB. |
RetainedFileCountLimit |
Максимальное количество файлов журналов, при достижении этого значения старые файлы будут удаляться. Для отключения удаления необходимо указать 0. |
IsAsync |
Используется ли асинхронная запись в файл. Данный режим ускоряет производительность, но снижает надежность. По умолчанию false. |
AsyncBufferSize |
Размер очереди для асинхронной записи. Определяется опытным путем, по умолчанию имеет значение 10000. Слишком большие значения увеличат объем занятой памяти и снизят надежность из-за риска потерять все содержимое очереди в результате сбоя, слишком маленькие значения нивелируют преимущество асинхронной записи. |
AsyncBlockWhenFull |
Определяет режим работы асинхронной записи при превышении размера очереди, блокирование записи новых событий или игнорирование (отбрасывание не помещающихся сообщений с их потерей. По умолчанию false. |
FlushToDiskIntervalSeconds |
Интервал записи в файл на диск. По умолчанию 2 секунды. |
UseRenderedClef |
Построение текстовок записей журнала в удобно читаемом формате с учетом подстановочных параметров. По умолчанию false. Рекомендуется использовать при включении структурированного журналирования (параметр UseStructuredLogging). |
UseStructuredLogging |
Включение структурированного журналирования. По умолчанию true. |
EnableDebugLogging |
Параметр зарезервирован для дальнейшего использования. |
Поддерживаются следующие виды журналирования:
- структурированное журналирование (JSON, используется по умолчанию);
- текстовое.
Структурированное журналирование
Режим журналирования используется по умолчанию. Структурированное журналирование представляет собой запись журналов событий в формате JSON. Журналы событий имеют расширение *.clef. Шаблон форматирования по умолчанию имеет следующий вид.
| Компонент | Имя | Описание | Обязательность |
|---|---|---|---|
@t |
Timestamp | Метка времени в формате YYYY-MM-DDThh:mm:ss.fffffffzzz (ISO 8601). |
Обязательный |
@m |
Message | Текст сообщения | |
@mt |
Message Template | Шаблон сообщения. Будет отображен вместо поля Message, если при настройке структурированного журналирования не был взведен флаг -UseRenderedClef $true |
|
@l |
Level | Уровень логирования | Отсутствие означает, чтобы событие является информационным |
@x |
Exception | Сообщение об ошибке вместе со стектрейсом (при наличии). | |
@i |
Event id | Идентификатор события мониторинга |
Примечание
В случае использования данного способа журналирования необходимо при настройке мониторинга
журналов выбирать тип журнала CryptoPro.MonitoringTool.SerilogParser.LogLineReader.
Пример записи:
{"@t":"2024-10-23T13:14:32.2100090Z","@m":"Content root path: \"/opt/cprohm/hmfe\"","@i":"cc26f24e","ContentRoot":"/opt/cprohm/hmfe","SourceContext":"Microsoft.Hosting.Lifetime","ProcessId":21753,"ThreadId":1}
Текстовое журналирование
Журналы событий имеют расширение *.log. Шаблон форматирования по умолчанию имеет следующий вид.
Переход на использование текстового журналирования с использованием serilog осуществляется при помощи следующей команды:
Set-HmLoggingProperties -UseStructuredLogging $false -UseRenderedClef $false
Примечание
В случае использования данного способа журналирования (по умолчанию) необходимо при настройке мониторинга
журналов выбирать тип журнала CryptoPro.MonitoringTool.SerilogParser.LogReader.
[{Level:u3}] {EventId}: {Timestamp:o } | {RequestId,22} | {Message:lj} | {Properties:j} |{NewLine}{Exception}<|
Компоненты шаблона (в случае если компонент отсутствует, он будет представлять собой пустое значение | |:
{Level:u3}- уровень логирования в виде трехбуквенного сокращения в верхнем регистре:DBG,INF,WRN,ERR,CRT.{EventId}- идентификатор события мониторинга.{Timestamp:o}- метка времени в форматеYYYY-MM-DDThh:mm:ss.fffffffzzz(ISO 8601).{RequestId,22}- уникальный идентификатор запроса. Представляет из себя 22 символа в форматеConnectionId:RequestNumber, гдеConnectionId- это идентификатор HTTP соединения, аRequestNumber- номер HTTP запроса, полученного по данному соединению.{Message:lj}- текст сообщения.{Propertie:j}- дополнительные свойства сообщения, не вошедшие в текстовку{Message}, в виде сериализованного в строку объекта JSON.{NewLine}- специальное свойство, отображающее новую строку.{Exception}- сообщение об ошибке вместе со стектрейсом (при наличии).
Символы {, }, :u3, :o, :lj, :j являются специальными элементами самого
шаблона, они не попадают в результирующий вывод.
Специальные символы | и <| облегчают его автоматизированный разбор, поэтому
настоятельно не рекомендуется менять шаблон, так как на его формат ориентируется
КриптоПро Центр Мониторинга во время анализа журналов.
Пример записи:
<|[INF] { Id: 2 }: 2024-10-23T13:16:38.3581225+03:00 | 0HN7HSNB5Q8GS:00000002 | Request finished HTTP/1.1 GET http://hostname:53001/api/Configuration - 200 null application/json; charset=utf-8 0.5856ms | {"SourceContext":"Microsoft.AspNetCore.Hosting.Diagnostics","RequestPath":"/api/Confi$
Коды событий
Каждое из событий, создаваемых Службой для журнала событий мониторинга, абстрактно можно сгруппировать по следующим характеристикам:
- группа;
- тип;
- код.
Каждое из событий может иметь один из трех типов, представленных в Таблице 2.
Для событий типов e и w может быть настроено оповещение
администратора программного комплекса по почте.
Таблица 2 — Описание типов событий
| Тип события | Обозначение | Описание |
|---|---|---|
| Сведения (Information) | i |
Информационное сообщение, иллюстрирующее важные моменты в работе Службы. |
| Предупреждение (Warning) | w |
Сообщение с важной информацией, предупреждающей о необходимых действиях с системой во избежание появления ошибок. |
| Ошибка (Error) | e |
Сообщение об ошибке. |
Группы событий, их типы и коды представлены в Таблице 3. Остальные характеристики событий (дата, время и проч.) являются типовыми и отображаются в журнале событий.
Таблица 3 — События журнала Центра Мониторинга
| Код события | Тип события | Название |
|---|---|---|
| Информационные события Службы (100-199) | ||
| 100 | i | Нетипизированное информационное сообщение |
| 101 | i | Запуск сервиса: начало |
| 102 | i | Запуск сервиса: конец |
| 103 | i | Тесты успешно сконфигурированы |
| 104 | i | Остановка сервиса: начало |
| 105 | i | Остановка сервиса: конец |
| 106 | i | Ожидается завершение тестов |
| 107 | i | Запуск тестов |
| 108 | i | Тесты завершены |
| 109 | i | Результат выполнения тестов (тесты без ошибок) |
| 110 | i | Результат выполнения тестов (одна или несколько ошибок в тестах) |
| 111 | i | Отправка отчетов успешно сконфигурирована |
| 112 | i | Веб-служба успешно сконфигурирована |
| 113 | i | Отправка отчетов по SMS успешно сконфигурирована |
| 114 | i | Обновление конфигурации тестирования |
| 115 | i | Отслеживаемый тест [{0}] для [{1}] вновь успешно завершён (после завершения с ошибкой) |
| Ошибки работы Службы (200-299) | ||
| 200 | e | Нетипизированная ошибка |
| 201 | e | Ошибка при чтении конфигурации тестов |
| 202 | e | Ошибка при инициализации тестов |
| 203 | e | Не удалось настроить рассылку по Email |
| 204 | e | Не удалось запустить таймер для запуска тестов |
| 205 | e | Произошла ошибка при отправке Email |
| 206 | e | Не удалось настроить веб-службу |
| 207 | e | Ошибка при отправке SMS |
| 208 | e | Ошибка при настройке SMS-оповещения |
| Разрешение сборок КриптоПро Ключ (400-499) | ||
| 400 | i | Общее сообщение с трассировкой |
| 401 | i | Разрешение сборки |
| 402 | e | Ошибка разрешения сборки |
| 403 | i | Успех разрешения сборки |
| Ошибки тестов (500-599) | ||
| 500 | e | Нетипизированная ошибка теста КриптоПро Ключ с (id события по умолчанию) |
| 501 | e | Ошибка теста AuthenticationTest (Тестовая аутентификация) |
| 502 | e | Ошибка теста ComplexSignatureTest (Тестовая подпись) |
| 503 | e | Ошибка теста CryptoProviderTest (Тест криптопровайдеров Сервиса Подписи КриптоПро Ключ) |
| 504 | e | Ошибка теста EndpointTest (Тест конечных точек КриптоПро Ключ) |
| 505 | e | Ошибка теста EnrollsTest (Тест доступности обработчика УЦ) |
| 506 | e | Ошибка теста FeCertificateValidationTest (Проверка сертификатов Веб-интерфейса КриптоПро Ключ) |
| 507 | e | Ошибка теста OcspTest (Тест доступности службы OCSP) |
| 508 | e | Ошибка теста SsCertificateValidationTest (Проверка сертификатов Сервиса Подписи КриптоПро Ключ) |
| 509 | e | Ошибка теста SsDataBaseConnectionTest (Тест подключения к БД Сервиса Подписи КриптоПро Ключ) |
| 510 | e | Ошибка теста StsCertificateValidationTest (Проверка сертификатов Центра Идентификации КриптоПро Ключ) |
| 511 | e | Ошибка теста StsDataBaseConnectionTest (Тест подключения к БД сервиса Центра Идентификации КриптоПро Ключ) |
| 512 | e | Ошибка теста SvsTest (Тест Сервиса Проверки Подписи) |
| 513 | e | Ошибка теста TspTest (Тест TSP-службы) |
| 514 | e | Ошибка теста CrlTest (Тест CRL) |
| 515 | e | Ошибка теста HsmLogTest (Загрузка журналов HSM) |
| 516 | e | Ошибка теста SimpleCryptoProviderTest (Тест указанного криптопровайдера) |
| 517 | e | Ошибка теста SimpleCertificateTest (Тест указанного сертификата) |
| 518 | e | Ошибка теста SimpleDataBaseConnectionTest (Тест указанной базы данных) |
| 519 | e | Ошибка теста SimpleServiceTest (Тест указанной службы) |
| 520 | e | Ошибка теста SimpleHttpAvailabilityTest (Тест указанной веб службы) |
| 521 | e | Ошибка теста CrlVerificationTest (Тест срока действия CRL) |
| 522 | e | Ошибка теста PingCaTest (Тестирование связи с Центром Сертификации УЦ) |
| 523 | e | Ошибка теста RaServiceBrokerTest (Тест компонента Service Broker Центра Регистрации УЦ) |
| 524 | e | Ошибка теста RaQueuesOverflowTest (Проверка количества сообщений в системных очередей ЦР УЦ) |
| 525 | e | Ошибка теста RaQueuesStateTest (Тест состояния очередей Центра Регистрации УЦ) |
| 526 | e | Ошибка теста RaDataBaseConnectionTest (Тест подключения к БД Центра Регистрации УЦ) |
| 527 | e | Ошибка теста StsLicenseTest (Тест лицензий Центра Идентификации КриптоПро Ключ) |
| 528 | e | Ошибка теста SsLicenseTest (Тест лицензий Сервиса Подписи КриптоПро Ключ) |
| 529 | e | Ошибка теста UsedMemoryTest (Проверка используемой оперативной памяти) |
| 530 | e | Ошибка теста UsedDiskSpaceTest (Проверка используемого места на диске) |
| 531 | e | Ошибка теста GetLogsTest (Получение журналов Агента Мониторинга) |
| 532 | e | Ошибка теста HsmStatusTest (Тест состояния HSM) |
| 533 | e | Ошибка теста GetLastTestStatusTest (Тест состояния удаленного Агента Мониторинга) |
| 534 | e | Ошибка теста SimplePowershellTest (Выполнение указанного скрипта) |
| 535 | e | Ошибка теста NGateTest (Тест NGate) |
| 536 | e | Ошибка теста CaDataBaseConnection (Тест подключения к БД Центра Сертификации УЦ) |
| 537 | e | Ошибка теста PerfomanceCounterTest (Мониторинг счетчика производительности) |
| 538 | e | Ошибка теста StsCryptoProviderTest (Тест криптопровайдера Центра Идентификации КриптоПро Ключ) |
| 539 | e | Ошибка теста AuditCryptoProviderTest (Тест криптопровайдера Сервиса Аудита) |
| 540 | e | Ошибка теста ClientSecretTest (Тест проверки срока действия ClientSecret) |
| 541 | e | Ошибка теста TspOcspTimeTest (Тест синхронизации времени служб TSP и OCSP) |
| 542 | e | Ошибка теста DssOperationStatisticTestError (Тест сбойных операций) |
| 543 | e | Ошибка теста SimpleCryptoContainerTest (Тест указанного криптоконтейнера ключа) |
| 544 | e | Ошибка теста SimpleShellTest (Выполнение указанного Bash скрипта) |
| 545 | e | Ошибка теста MyDssCryptoProviderTest (Тест криптопровайдеров для мобильного приложения) |
| 546 | e | Ошибка теста GammaCryptoProviderTest (Тест оставшихся ключей указанного криптопровайдера) | 553 | e | Ошибка теста HsmLicenseTest (Тест лицензий HSM) |
| Предупреждения тестов (600-699) | ||
| 600 | w | Нетипизированное предупреждение теста КриптоПро Ключ (id события по умолчанию) |
| 603 | w | Предупреждение теста CryptoProviderTest (Тест криптопровайдеров Сервиса Подписи КриптоПро Ключ) |
| 606 | w | Предупреждение теста FeCertificateValidationTest (проверка сертификатов Веб интерфейса КриптоПро Ключ) |
| 608 | w | Предупреждение теста SsCertificateValidationTest (проверка сертификатов Сервиса Подписи КриптоПро Ключ) |
| 610 | w | Предупреждение теста StsCertificateValidationTest (проверка сертификатов Центра Идентификации КриптоПро Ключ) |
| 617 | w | Предупреждение теста SimpleCertificateTest (тест указанного сертификата) |
| 622 | w | Предупреждение теста PingCaTest (Тестирование связи с Центром Сертификации УЦ) |
| 627 | w | Предупреждение теста StsLicenseTest (Тест лицензий Центра Идентификации КриптоПро Ключ) |
| 628 | w | Предупреждение теста SsLicenseTest (Тест лицензий Сервиса Подписи КриптоПро Ключ) |
| 631 | w | Предупреждение теста GetLogsTest (Получение журналов Агента Мониторинга) |
| 632 | w | Предупреждение теста HsmStatusTest (Тест состояния HSM) |
| 640 | w | Предупреждение теста ClientSecretTest (Тест проверки срока действия ClientSecret) |
| 643 | w | Предупреждение теста SimpleCryptoContainerTest (Тест указанного криптоконтейнера ключа) |
| 645 | w | Предупреждение теста MyDssCryptoProviderTest (Текст криптопровайдеров для мобильного приложения) |
| 646 | w | Ошибка теста GammaCryptoProviderTest (Тест оставшихся ключей указанного криптопровайдера) |
| 653 | w | Предупреждение теста HsmLicenseTest (Тест лицензий HSM) |