Администраторам и разработчикам платформы 1С:Предприятие часто приходится сталкиваться с ситуациями, когда информационная база начинает работать медленно или выдавать неочевидные ошибки. Стандартные методы диагностики не всегда дают полную картину происходящего в ядре системы. Именно в таких случаях на помощь приходит мощный инструмент отладки и мониторинга.
Технологический журнал (ТЖ) позволяет записывать события, происходящие внутри сервера 1С, в текстовые файлы. Это включает в себя запросы к базе данных, блокировки, работу с памятью и ошибки исполнения. Грамотная настройка этого инструмента является ключом к поиску узких мест в производительности.
Однако включать логирование на всех пользователей и всех процессах без разбора нельзя. Это может привести к переполнению дискового пространства и еще большему падению быстродействия. В этом руководстве мы рассмотрим, как правильно запустить журнал, какие параметры отвечают за детализацию и как анализировать полученные данные.
Подготовка конфигурационного файла logcfg.xml
Для активации записи событий необходимо наличие специального файла конфигурации. Он должен называться logcfg.xml и располагаться в каталоге, где установлены файлы платформы 1С:Предприятие. Обычно это папка bin в директории установки сервера или клиента.
Если файл отсутствует, его нужно создать вручную. Структура файла определяет, какие именно события будут попадать в лог. Базовая структура включает корневой элемент config и вложенные теги для настройки уровней и исключений.
⚠️ Внимание: Файл logcfg.xml чувствителен к синтаксису XML. Любая ошибка в структуре тегов приведет к тому, что технологический журнал не запустится, а в системном журнале ОС появятся соответствующие ошибки инициализации.
Внутри конфигурации вы можете задать глобальные настройки, такие как имя файла лога и предельный размер. Также здесь настраиваются исключения — конкретные процессы или пользователи, для которых логирование будет включено или, наоборот, отключено. Это позволяет снизить нагрузку на диск.
Используйте относительные пути в настройках файла лога, чтобы при переносе сервера не пришлось править конфиг заново.
Пример минимальной конфигурации, которая пишет все события в файл 1Cv8.log:
<config>
<dump>
<file>1Cv8.log</file>
</dump>
<log>
<event>
<ne>all</ne>
</event>
</log>
</config>
Настройка уровней детализации и фильтров
Самая важная часть настройки — это выбор событий, которые будут записываться. Платформа поддерживает множество типов событий, от соединения с базой до выполнения конкретных запросов SQL. Запись всего подряд (all) допустима только на тестовых стендах.
Для продакшн-среды рекомендуется использовать точечную настройку. Вы можете фильтровать события по имени компьютера, имени пользователя или даже по конкретному сеансу. Это критически важно для изоляции проблем конкретного рабочего места.
- 🔍 DBMSSQL или DBMSOracle — события работы с драйвером СУБД, показывают длительность выполнения запросов.
- 🔒 LOCK — информация о захвате и освобождении блокировок, незаменимо при поиске взаимоблокировок.
- ❌ EXCP — запись всех исключительных ситуаций и ошибок скрипта.
- 📊 PROC — информация о процессах сервера, их запуске и завершении.
Чтобы сузить круг поиска, используйте тег except внутри настройки события. Например, можно записывать события DBMSSQL только для пользователя Admin. Это резко сократит объем генерируемых данных.
Помните, что каждый лишний бит информации в логе увеличивает нагрузку на дисковую подсистему сервера. При высокой интенсивности транзакций даже filtered-лог может расти со скоростью гигабайт в час. Всегда устанавливайте лимиты на размер файла.
Активация журнала на сервере и клиенте
Процесс запуска зависит от того, где именно вы планируете отлавливать события. Для файловой базы достаточно разместить logcfg.xml рядом с исполняемым файлом 1cv8.exe. Для клиент-серверного варианта ситуация сложнее.
На сервере 1С:Предприятие файл конфигурации должен лежать в каталоге установки серверной части. После размещения файла необходимо перезапустить службу агента сервера 1С:Предприятие (RAS) или перезагрузить весь сервер, чтобы изменения вступили в силу.
| Компонента | Расположение файла | Действие для применения |
|---|---|---|
| Тонкий клиент | Папка bin клиента | Перезапуск клиента |
| Сервер 1С (x64) | Папка bin сервера | Перезапуск службы RAS |
| Кластер серверов | Центральная нода | Перезапуск менеджера кластера |
| Веб-сервер | Папка расширения IIS/Apache | Перезапуск пула приложений |
Если вы используете публикацию на веб-сервере, файл должен быть доступен процессу, от имени которого работает пул приложений IIS или сервис Apache. Часто права доступа становятся препятствием для записи логов.
Особенности работы в режиме предприятия
Если запустить 1С в режиме предприятия, журнал начнет писать данные немедленно после выполнения первого действия, подпадающего под фильтр.
Проверить активность журнала можно, открыв файл лога сразу после выполнения проблемной операции. Если файл пуст или не обновляется, проверьте права на запись в папку и синтаксис XML.
Анализ логов и поиск узких мест
Полученный файл лога представляет собой текстовый документ, где каждая строка содержит метку времени, идентификатор потока, тип события и детали. Читать его в "Блокноте" крайне неудобно из-за огромного объема данных.
Существуют специализированные утилиты и скрипты для парсинга ТЖ. Они позволяют визуализировать длительность запросов и строить диаграммы нагрузки. Самый простой способ — использовать встроенные средства анализа или сторонние обработчики.
- 📈 Ищите строки с меткой
dur(duration) — они показывают длительность выполнения в миллисекундах. - ⏱ Сортируйте события по времени, чтобы соотнести их с жалобами пользователей.
- 🔎 Обращайте внимание на события
CALL— они указывают на вызов общих модулей.
Частая ошибка — игнорирование контекста. Длительный запрос сам по себе не всегда является проблемой. Важно понять, что вызвало его выполнение: действие пользователя, регламентное задание или фоновая обработка.
⚠️ Внимание: Никогда не храните файлы технологического журнала в рабочей базе данных или в общих сетевых папках без ограничения доступа. Они могут содержать чувствительные данные о структуре запросов и именах пользователей.
Для глубокого анализа SQL-запросов обращайте внимание на текст запроса в событиях DBMSSQL. Часто там видно отсутствие индексов или неоптимальные планы соединения таблиц.
Оптимальный сценарий анализа: включение ТЖ только на время воспроизведения проблемы с фильтром по конкретному пользователю и событию DBMS.
Автоматизация сбора и ротация файлов
При постоянной работе технологического журнала необходимо решать проблему переполнения диска. В конфигурационном файле можно задать предельный размер файла и количество файлов ротации.
Параметр limit задает максимальный размер одного файла в байтах. Когда лимит достигнут, система переключается на следующий файл. Параметр history определяет, сколько старых файлов хранить.
<dump>
<file>1Cv8.log</file>
<limit>104857600</limit>
<history>5</history>
</dump>
В данном примере будет храниться 5 файлов по 100 Мб каждый. Как только шестой файл достигнет лимита, самый старый будет удален. Это обеспечивает непрерывность мониторинга без вмешательства администратора.
☑️ Проверка настроек ротации
Также рекомендуется настраивать внешние скрипты (BAT или PowerShell), которые будут архивировать старые логи и отправлять их в долгосрочное хранилище для последующего аудита.
Частые ошибки при настройке и запуске
Даже опытные специалисты допускают ошибки при работе с ТЖ. Одна из самых распространенных — включение логирования на боевом сервере без фильтров. Это гарантированно приведет к остановке базы данных из-за диск-айо.
Другая проблема — неверный путь к файлу лога. Если указан относительный путь, он считается от рабочей директории процесса. Для сервера 1С это не всегда очевидно и может отличаться от каталога установки.
- 🚫 Забыли перезапустить службу после изменения конфига.
- 🚫 Указали несуществующий каталог для записи логов.
- 🚫 Использовали кодировку файла отличную от UTF-8 или ANSI, что привело к краху парсера.
Если журнал не пишется, первым делом проверьте системный журнал Windows (Event Viewer). Ошибки инициализации подсистемы логирования обычно отражаются там с кодом события.
⚠️ Внимание: Интерфейс и параметры конфигурационного файла могут отличаться в разных версиях платформы 1С. Всегда сверяйтесь с документацией к вашей конкретной версии релиза перед внедрением в продуктивную среду.
Правильное использование технологического журнала превращает его из источника проблем в мощнейший инструмент поддержки. Главное правило — включать его точечно и выключать сразу после сбора информации.
FAQ: Вопросы по технологическому журналу
Где точно должен лежать файл logcfg.xml для сервера 1С?
Файл должен находиться в папке bin каталога установки сервера 1С:Предприятие. Для 64-битной версии это обычно C:\Program Files\1cv8\8.3.xx.xxxx\bin. Файл должен быть доступен на чтение процессом сервера.
Как включить логирование только для одного пользователя?
Используйте тег except внутри настройки события. Внутри него укажите тег name с именем пользователя в домене или базе данных. Это отфильтрует все события, не относящиеся к указанному имени.
Можно ли писать логи напрямую в базу данных SQL?
Нет, технологический журнал 1С пишет данные только в текстовые файлы на диске. Для анализа в SQL необходимо использовать сторонние парсеры, которые будут импортировать данные из текстовых файлов в таблицы.
Влияет ли включенный ТЖ на скорость работы базы?
Да, влияет. Запись на диск — ресурсоемкая операция. При включенном логировании всех событий (all) производительность может упасть в разы. Используйте фильтры для минимизации влияния.
Как остановить запись в технологический журнал?
Достаточно удалить или переименовать файл logcfg.xml в каталоге установки и перезапустить соответствующую службу (клиент или сервер 1С). Без этого файла подсистема логирования не активна.