|

Настройка технологического журнала 1С: Мощный инструмент для диагностики и анализа работы системы


Содержание:

  1. Зачем нужен технологический журнал при работе в системе 1С
  2. Архитектура технологического журнала в 1С
  3. Основные события для мониторинга в программе 1C:Предприятие
  4. Рекомендации по настройке
  5. Инструменты для анализа логов ТЖ

Технологический журнал (ТЖ) 1С:Предприятие – это мощный механизм логирования событий, происходящих на различных уровнях системы: от взаимодействия с СУБД до выполнения кода на встроенном языке и ошибок платформы. Правильная настройка и анализ данных ТЖ позволяют разработчикам и администраторам оперативно выявлять причины проблем, узкие места в производительности, отслеживать действия пользователей и глубоко понимать внутренние процессы работы 1С.

Зачем нужен технологический журнал при работе в системе 1С

ТЖ является бесценным источником информации для:

1. Диагностики ошибок:

    • Выявление причин сбоев и аварийных завершений работы клиента или сервера 1С.
    • Анализ ошибок при выполнении запросов к СУБД (SQL).
    • Отслеживание ошибок в коде на встроенном языке (исключений).
    • Диагностика проблем с COM-объектами, внешними компонентами.

    2. Анализа производительности:

    • Идентификация “тяжелых” запросов к базе данных.
    • Анализ длительности выполнения серверных вызовов.
    • Определение узких мест в бизнес-логике конфигурации.
    • Оценка времени выполнения фоновых и регламентных заданий.

    3. Отладки и разработки:

    • Детальное логирование выполнения участков кода (с помощью события CALL).
    • Отслеживание значений переменных и параметров функций.

    4. Аудита и безопасности (ограниченно):

    • Логирование подключений/отключений пользователей (событие CONN).
    • В некоторых случаях – анализ выполняемых операций, хотя для полноценного аудита действий пользователей лучше использовать журнал регистрации 1С.

    5. Анализа блокировок:

    • Выявление транзакционных блокировок СУБД (события TLOCK, TDEADLOCK, TIMEOUT).
    • Определение объектов и сеансов, участвующих в конфликтах блокировок.

    Архитектура технологического журнала в 1С

    ТЖ собирает информацию о событиях, происходящих в различных процессах системы 1C:Предприятие:

    • Клиентские приложения: Толстый клиент, тонкий клиент, веб-клиент (частично, через сервер).
    • Сервер 1С:Предприятия: Рабочие процессы (rphost), менеджер кластера (rmngr), агент сервера (ragent).
    • COM-соединения: Внешние приложения, подключающиеся к 1С через COM.

    Сбор логов управляется конфигурационным файлом logcfg.xml, который определяет, какие события, для каких процессов и с какими параметрами будут записываться. Логи сохраняются в виде текстовых файлов (обычно с расширением .log) в указанном каталоге.

    Ключевые элементы файла logcfg.xml:

    Файл logcfg.xml имеет следующую структуру:

    <config xmlns=”http://v8.1c.ru/v8/tech-log”>

        <!– Каталог для логов и время хранения файлов (в часах) –>

        <log location=”C:\Путь\К\Папке\Логами\ТЖ” history=”24″>

            <!– Событие, интересующее производительность MS SQL –>

            <event>

                <eq property=”name” value=”DBMSQL”/> <!– Интересующее событие (в данном случае, взаимодействие с MS SQL) –>

                <eq property=”sql” value=”% deadlock %”/> <!– Фильтр по свойству события (содержащие ” deadlock ” в тексте SQL) –>

                <gt property=”duration” value=”500000″/> <!– Фильтр: длительность более 500 мс (500000 микросекунд) –>

            </event>

            <!– Событие, интересующее исключения –>

            <event>

                <eq property=”name” value=”EXCP”/> <!– Событие “Исключение” –>

                <!– Фильтр по тексту исключения –>

                <eq property=”descr” value=”%Объект не найден%”/>

            </event>

            <!– Записывать все свойства для отфильтрованных событий –>

            <property name=”all”>

                <eq property=”value” value=”true”/>

            </property>

            <!– Можно указать конкретные процессы для логирования –>

            <process name=”rphost”/>

            <process name=”ragent”/>

            <!– <process name=”1cv8.exe”/> для толстого клиента –>

        </log>

        <!– Могут быть и другие секции <log> для разных настроек –>

    </config>   

    Основные теги и их назначение:

    • <config>: Корневой элемент файла.
    • <log location=”…” history=”…”>: Определяет каталог для сохранения логов (location) и глубину хранения файлов в часах (history). По истечении этого времени старые файлы логов будут автоматически удаляться.
    • <event>: Определяет, какие события нужно логировать. Внутри могут быть:
      • <eq property=”name” value=”ИМЯ_СОБЫТИЯ“/>: Равно. Логировать событие с указанным именем (например, DBMSSQL, EXCP, CALL, SDBL).
      • <ne property=”name” value=”ИМЯ_СОБЫТИЯ”/>: Не равно.
      • <like property=”ИМЯ_СВОЙСТВА” value=”ШАБЛОН”/>: Фильтр по значению свойства события с использованием масок (% – любая последовательность символов, _ – любой одиночный символ).
      • <gt property=”ИМЯ_СВОЙСТВА” value=”ЗНАЧЕНИЕ”/>: Больше (например, для duration – длительности).
      • <lt property=”ИМЯ_СВОЙСТВА” value=”ЗНАЧЕНИЕ”/>: Меньше.
    • <property name=”all”> <eq property=”value” value=”true”/> </property>: Указывает, что для событий, прошедших фильтр, нужно записывать все их свойства. Можно указать и конкретные свойства.
    • <process name=”ИМЯ_ПРОЦЕССА”/>: Ограничивает сбор логов только указанными процессами (например, rphost, ragent, 1cv8.exe, 1cv8c.exe). Если не указано, логируются события от всех процессов.

    Расположение файла logcfg.xml:

    Местоположение файла logcfg.xml зависит от того, для каких процессов настраивается логирование:

    • Для сервера 1С:Предприятия (rphost, rmngr, ragent): В каталоге конфигурационных файлов кластера серверов. Обычно это подкаталог вида C:\Program Files\1cv8\srvinfo\reg_XXXX\YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY\, где XXXX – порт агента сервера, а YYYY… – GUID кластера. Наиболее частый и рекомендуемый способ – разместить logcfg.xml в каталоге conf сервера 1С: C:\Program Files\1cv8\conf\ (или C:\Program Files (x86)\1cv8\conf\ для 32-битного сервера). Этот файл будет применяться ко всем кластерам на данном сервере.
    • Для клиентских приложений (1cv8.exe, 1cv8c.exe): В каталоге conf установки соответствующего клиента, например: C:\Program Files (x86)\1cv8\common\conf\ или C:\Users\<ИмяПользователя>\AppData\Local\1C\1cv8\conf\ (путь может немного варьироваться в зависимости от версии платформы и способа установки).
    • Для COM-соединения: Зависит от того, в каком процессе выполняется COM-объект 1С.

    Важно: После изменения файла logcfg.xml для сервера 1С обычно требуется перезапуск агента сервера 1С:Предприятия, чтобы новые настройки вступили в силу. Для клиентских приложений – перезапуск самого приложения.

    Основные события для мониторинга в программе 1C:Предприятие

    • DBMSSQL, DBPOSTGRS, DBORACLE, DB2, DBMYSQL: Взаимодействие с соответствующей СУБД. Позволяют видеть тексты SQL-запросов, их длительность, ошибки. Очень полезны для анализа производительности.
      • Свойства: Sql (текст запроса), Rows (количество строк), Duration (длительность в микросекундах).
    • SDBL (Server DataBase Layer): Взаимодействие слоя данных сервера 1С с СУБД. Дает более высокоуровневое представление запросов, чем DBMSSQL, иногда позволяет увидеть контекст вызова из кода 1С.
    • EXCP: Исключения платформы и конфигурации. Обязательно к мониторингу для отлова ошибок.
      • Свойства: Descr (текст ошибки), Context (стек вызовов).
    • EXCPCNTX: Дополнительный контекст для исключений (значения переменных на момент ошибки). Включается отдельно и может сильно увеличивать объем логов.
    • CALL: Вызовы серверных процедур и функций. Полезно для трассировки выполнения кода и анализа длительности серверных вызовов.
      • Свойства: Method (имя метода), Args (аргументы), RetVal (возвращаемое значение).
    • TLOCK: Конфликты транзакционных блокировок.
    • TDEADLOCK: Взаимные блокировки (deadlocks).
    • TIMEOUT: Ожидания на блокировках, завершившиеся по таймауту.
    • CONN: Подключения и отключения к информационной базе.
    • ATTN: События внимания, ошибки уровня СУБД, не являющиеся исключениями в 1С.
    • PROC: Создание и завершение процессов сервера.
    • MEM: События, связанные с управлением памятью.

    Рекомендации по настройке

    1. Не включайте всё и сразу: Полное логирование всех событий генерирует огромный объем данных, что затрудняет анализ и создает нагрузку на дисковую подсистему.
    2. Настраивайте точечно под задачу:
    • Для поиска проблем с производительностью – DBMSSQL/SDBL с фильтром по duration, CALL.
    • Для отлова ошибок – EXCP, EXCPCNTX.
    • Для анализа блокировок – TLOCK, TDEADLOCK, TIMEOUT.

    3. Используйте фильтры:

    • Фильтр по длительности (duration) для отсева быстрых запросов.
    • Фильтр по Context или sql для поиска конкретных проблемных участков.
    • Фильтр по пользователю (Usr) или приложению (AppID), если проблема локализована.

    4. Управляйте каталогом логов и history: Выбирайте диск с достаточным свободным местом. Параметр history помогает не замусоривать диск старыми логами.

    5. Структурируйте logcfg.xml: Можно использовать несколько секций <log> для разных наборов событий или разных каталогов вывода, что упрощает анализ.

    6. Проверяйте синтаксис logcfg.xml: Ошибка в синтаксисе приведет к тому, что ТЖ не будет работать.

    7. Отключайте ТЖ после решения проблемы: Если ТЖ не нужен постоянно, отключайте его или минимизируйте настройки, чтобы не создавать лишнюю нагрузку. Можно просто переименовать logcfg.xml (например, в logcfg.xml.off).

    Инструменты для анализа логов ТЖ

    Просматривать логи ТЖ можно обычным текстовым редактором, но для больших объемов это неудобно. Существуют специализированные инструменты:

    • 1C:Enterprise Development Tools (EDT): Включает в себя анализатор технологического журнала.
    • Независимые разработки: Множество платных и бесплатных утилит от сообщества 1С, предоставляющих фильтрацию, группировку, подсветку синтаксиса и другие удобства (например, ” Анализатор технологических журналов”, “Классический просмотрщик логов ТЖ 1С” и др.).

    Пример logcfg.xml для отладки медленных запросов и ошибок:

    <config xmlns=”http://v8.1c.ru/v8/tech-log”>

        <log location=”D:\1C_Logs\TechJournal_SlowAndErrors” history=”48″> <!– Логируем долгие запросы к MS SQL (более 1 секунды) –>

            <event>

                <eq property=”name” value=”DBMSQL”/>

                <gt property=”duration” value=”1000000″/> <!– 1 000 000 микросекунд = 1 секунда –>

            </event>

            <!– Логируем все исключения –>

            <event>

                <eq property=”name” value=”EXCP”/>

            </event>

            <!– Логируем контекст исключений –>

            <event>

                <eq property=”name” value=”EXCPCNTХ”/>

            </event>

            <!– Логируем серверные вызовы дольше 500 мс –>

            <event>

                <eq property=”name” value=”CALL”/>

                <gt property=”duration” value=”500000″/>

            </event>

            <!– Логируем конфликты блокировок и дедлоки –>

            <event>

                <eq property=”name” value=”TLOCK”/>

            </event>

            <event>

                <eq property=”name” value=”TDEADLOCK”/>

            </event>

            <event>

                <eq property=”name” value=”TIMEOUT”/>

            </event>

            <!– Записывать все свойства для отобранных событий –>

            <property name=”all”>

                <eq property=”value” value=”true”/>

            </property>

            <!– Только для серверных процессов –>

            <process name=”rphost”/>

            <process name=”rmngr”/>

            <process name=”ragent”/>

        </log>

    </config>

    Технологический журнал – это неотъемлемый атрибут профессиональной работы с системой 1С:Предприятие. Освоение его настройки и анализа данных открывает перед специалистом широкие возможности для диагностики проблем, оптимизации производительности и глубокого понимания функционирования системы. Хотя первоначальная настройка может показаться сложной, преимущества от использования ТЖ многократно окупают затраченные усилия.

    Специалист компании ООО “Кодерлайн”,

    Радченко Степан


      Помогла ли вам статья? Оставьте свой комментарий:

      Добавить комментарий

      Ваш адрес email не будет опубликован. Обязательные поля помечены *

      Блог про 1С:Предприятие

      Copyright © 2024 TopKoder

      Мы занимаемся внедрением и обслуживанием программных продуктов 1С.