Статья
Анализ ошибок технологического журнала 1С
Пример
Сделали обновление, все хорошо, ошибок нет, пользователи не жалуются. Вечером выясняется, что весь день не работали обмены с внешней системой из-за программной ошибки. Обмены выполнялись регламентным заданием, из-за этого ошибка не была замечена сразу.
Чтобы избежать подобных ситуаций, нужна система мониторинга ошибок. Например, в Мониторе этот функционал есть, и он бесплатен - для мониторинга и анализа ошибок используется показатель Ошибка ТЖ.
Список показателей
При включении показателя в технологическом журнале начинают фиксироваться события EXCP, то есть различные ошибки и исключения.
Если просто выводить ошибки одним большим списком, то разобраться в этом море информации будет довольно сложно. Чтобы избежать хаоса, в Мониторе работает категоризация ошибок. Каждой ошибке присваивается определенная категория, и дальнейший анализ выполняется уже в разрезе этих категорий.
Список ошибок из тех. журнала с категоризацией
Правила для категоризации заданы по умолчанию, но их можно поменять или создать свои.
Принцип действия очень простой: в категории указываются условия, и если ошибка подходит хотя бы под одно из условий, ей присваивается эта категория.
Пример на скрине ниже можно трактовать следующим образом: если текст ошибки (свойство Descr) соответствует хотя бы одному из трех шаблонов регулярного выражения, то ошибке назначается данная категория. В данном случае регулярные выражения простые, фактически если текст ошибки содержит хотя бы одну из трех фраз, ошибке будет присвоена данная категория.
Пример условий категории
Более подробно про настройку и работу с категориями можно почитать в документации.

Рассмотрим на примерах как показатель Ошибка ТЖ помогает отслеживать состояние системы.
Ситуация 1.
Необходимо получать уведомление в Телеграм, если случилось падение рабочего процесса.

Решение:
Для начала заполним настройки уведомлений, чтобы иметь возможность получать сообщения от Монитора.
Монитор может отправить сообщение по почте либо в Телеграм, либо сразу по обоим каналам.
Соответствующие параметры указываются в разделе Настройки - Уведомления.
Подробности по настройке уведомлений описаны в документации.
Настройка параметров уведомлений
Ошибки, связанные с падением рабочего процесса, попадают в категорию "Падение рабочего процесса".
Создадим новый триггер и заполним его как на скрине ниже.
Новый триггер с условием на падение рабочего процесса
Рассмотрим основные настройки.

Вид события - определяет за какими именно событиями (показателями) будет следить данный триггер. Каждому показателю соответствует одноименное событие. В данном случае мы отслеживаем ошибки, поэтому и тип события выбираем соответствующий - "Ошибка из тех. журнала".

Обрабатывать события за последние ... минут - период, за который будут обработаны события. Если нужно обработать событие сразу при появлении, можно поставить 1 минуту. Если условие накопительное, например 4 таймаута за час, тогда для этого примера параметр будет равен 60 минутам.

Алгоритм - алгоритм обработки выбранных событий. Именно в алгоритме происходит проверка условий и выполнение необходимых действий. Есть набор уже готовых алгоритмов, хотя можно написать и свой собственный. Все алгоритмы написаны на языке 1С.
В данном случае алгоритм отправляет уведомление, если появилась хотя бы одна ошибка из указанной категории ("Падение рабочего процесса") в течение выбранного времени.
Ситуация 2.
Необходимо проверять - появились ли какие-либо программные ошибки после обновления, изменения настроек и пр.

Решение:
Нужно открыть форму анализа ошибок Анализ - Ошибки тех. журнала.
Далее выбираем нужный период и базу.
Все программные ошибки попадают в категорию Программные. Рекомендуется регулярно просматривать данную категорию на предмет появления новых ошибок, особенно после выполнения обновлений.
Анализ программных ошибок 1С
Ситуация 3.
Появилось большое количество ошибок "Рабочий процесс не найден". Нужно определить критичность проблемы и выяснить причину.

Решение:
В форме анализа ошибок находим необходимую категорию.
Ошибки категории Рабочий процесс не найден
Судя по данным, ошибка возникает каждые несколько минут, хотя жалоб от пользователей не поступает. Поиск в интернете не внёс ясности, кроме рекомендаций обновить платформу.
Чтобы выявить какие-то закономерности, решили посмотреть появление ошибки на линии времени.
Частота ошибок Рабочий процесс не найден
На графике видно, что нет ярко выраженных пиков ошибки, и она повторяется почти равномерно с интервалом в несколько минут.
Возникло предположение, что кто-то поменял время перезапуска процессов в настройках кластера. Проверили - перезапуск стоял раз в сутки.
Заодно посмотрели другие настройки кластера и заметили, что в свойствах сервера параметр Количество соединений на процесс установлен в значение 256, что очень близко к количеству пользователей, работающих в базе.
Решили провести эксперимент, создали новый кластер с одной тестовой базой. Для сервера в данном кластере поставили Количество соединений на процесс в значение 5 и настроили технологический журнал на сбор ошибок по этой базе.
При попытке подключения шестого пользователя был создан новый рабочий процесс. Потом оставили 4 активных сеанса, завершив 2. Через несколько минут второй рабочий процесс штатно завершил свою работу, но при этом в технологический журнал попала строка:

20:55.183005-0,EXCP,0,process=rphost,OSThread=20868,Exception=acea3e6e-3687-4792-8319-09c009274c9a,Descr='src\rserver\src\RPHostImpl.cpp(1564):
acea3e6e-3687-4792-8319-09c009274c9a: Рабочий процесс не найден'

Получается, что запись об ошибке попадает в лог даже в том случае, если процесс штатно завершил свою работу.
В данном случае количество соединений в кластере колебалось возле пороговой величины в 256 соединений, в итоге постоянно стартовали и завершались рабочие процессы, что и приводило к большому числу подобных записей в логах.
После изменения значения параметра до 300 количество подобных сообщений сильно сократилось.
Ситуация 4.
Необходимо найти пользователей, у которых ошибки наблюдаются чаще всего.

Решение:
Форму анализа ошибок ТЖ использовать не получится, так как там идёт разбивка по категориям, а не по пользователям.
Для выполнения задачи можно использовать отчет "Ошибки тех. журнала", вариант "Пользователи".
Отчет по ошибкам тех. журнала 1С
Как видно из отчета, 97% записей технологического журнала не содержат имени пользователя. Зачастую эти записи даже не являются ошибками и у пользователей не появляются. В этом отчете нам они не интересны - установим отбор, исключающий пустое значение пользователя.
Отчет по ошибкам тех. журнала 1С только с заполненным пользователем
Сразу определились два лидера по количеству ошибок, и если под DefUser скрывается пользователь по умолчанию, под которым запускается большое число регламентных заданий, то деятельность пользователя ...ваОК требует внимательного рассмотрения.
Далее можно сделать расшифровку только по этому пользователю и принимать очередные действия по анализу.
Отчет по ошибкам тех. журнала 1С с отбором по пользователю
Используя отчеты и всю мощь СКД, можно получить необходимую информацию в любых разрезах.
Монитор позволяет не только собирать ошибки, но и классифицировать, группировать и формировать отчеты.
Возможность анализировать ошибки тех. журнала доступна в Мониторе бесплатно.
Показатель "Ошибка ТЖ", описанный в данной статье, доступен в бесплатной версии Монитора.
Подпишитесь на наш канал в Telegram чтобы не пропускать новые материалы
Если вы хотите поделиться своим кейсом, напишите нам на support@1smonitor.ru