Журнал событий КриптоПро Центр Мониторинга
Сообщения о работе Служб КриптоПро Центр Мониторинга записываются в автоматически создаваемые при установке журналы событий:
/var/log/cprohm/hmsrv/cprohm-hmsrv*.log
(/var/log/cprohm/hmsrv/cprohm-hmsrv*.clef
) - Служба Мониторинга;/var/log/cprohm/hmfe/cprohm-hmfe*.log
(/var/log/cprohm/hmfe/cprohm-hmfe*.clef
) - Служба Веб-интерфейса.
Новые файлы журнала создаются в каждый выбранный интервал тестирования и за каждые сутки.
Подробнее о настройке мониторинга журналов — в разделе Мониторинг журналов.
Поддерживаемые типы и форматы журналов событий
В КриптоПро Центр Мониторинга реализована запись событий в файл при помощи библиотеки Serilog. Для файла журнала Службы Мониторинга поддерживается ротация, а также автоматическое удаление старых файлов.
Настройка журналирования и ротации журналов мониторинга
Настройка журналов мониторинга производится при помощи
командлета PowerShell Set-HmLoggingProperties
. Настройка влияет и на журнал Службы Мониторинга, и на
журнал Веб-интерфейса одновременно.
Название свойства | Описание |
---|---|
LogLevel |
Уровень логирования по умолчанию. |
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 |
Включение структурированного журналирования. По умолчанию false . |
EnableDebugLogging |
Параметр зарезервирован для дальнейшего использования. |
Поддерживаются следующие виды журналирования:
- текстовое (используется по умолчанию);
- структурированное журналирование (JSON).
Текстовое журналирование
Режим журналирования используется по умолчанию. Журналы событий имеют расширение *.log. Шаблон форматирования по умолчанию имеет следующий вид.
Примечание
В случае использования данного способа журналирования (по умолчанию) необходимо при настройке мониторинга
журналов выбирать тип журнала 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$
Структурированное журналирование
Структурированное журналирование представляет собой запись журналов событий в формате JSON. Переход на использование структурированного журналирования с использованием serilog осуществляется при помощи следующей команды:
Set-HmLoggingProperties -UseStructuredLogging $true -UseRenderedClef $true
Журналы событий имеют расширение *.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}
Коды событий
Каждое из событий, создаваемых Службой для журнала событий мониторинга, абстрактно можно сгруппировать по следующим характеристикам:
- группа;
- тип;
- код.
Каждое из событий может иметь один из трех типов, представленных в Таблице 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) |