Какой профит?
- Простая установка и настройка - за 15 минут рабочее решение для "неограниченного" количества баз
- Ничего лишнего и никакой "магии" - используются возможности платформы
- Дружественный интерфейс - только то что нужно
- Информация в реальном времени - ошибки конфигурации, блокировки, длительные запросы и др.
- Бесплатно - проект с открытым исходным кодом на GitHub
Структура статьи:
В первой части статьи мы приводим список и описание из 5 шагов для самостоятельного выполнения процедуры. Если же Вам лень читать и Вы любите смотреть и слушать, то можно перейти к видео-уроку и посмотреть небольшой 5 минутный ролик по выполнению необходимой последовательности действий и повторить при необходимости.
Проект 1с-parsing-tech-log является open source. Уже более года мы активно и продуктивно используем данную систему в облаке для мониторинга наших приложений.
1. Установим
Рассматриваются два варианта:
- Подключаемся к проекту через EDT, закачиваем конфигурацию с репозитория и разворачиваем базу.
(github.com/Polyplastic/1c-parsing-tech-log) - Для тех кто по каким-то причинам не хочет использовать EDT скачиваем скомпилированную конфигурацию и разворачиваем через привычный конфигуратор.
(Решение проблемы быстродействия в ERP на рабочем примере)
Совет. Боевую базу мониторинга лучше всего развернуть на отдельном сервере, по крайней мере на отдельном кластере.
2. Определим цели и задачи
Что мы будем мониторить? Проблемные ситуации влияющие в целом на производительность и работоспособность базы:
- блокировки,
- долгие запросы более 60с,
- ошибки.
Вы можете использовать эти или добавить/выработать другие критерии. Ситуации, которые описаны говорят сами за себя и расшифровывать их не будем.
Зачем будем мониторить? Для возможности проведения анализа проблемных ситуаций возникающих при работе базы и последующему их исправлению. Ознакомлен - значит вооружен.
3. Настроим технологический журнал (ТЖ) для 1С
Давайте настроим конфигурационный файл для технологического журнала всех указанных случаев. Эту операцию настроим вручную с использованием Notepad++. Однако вы всегда можете воспользоваться специальной обработкой с ИТС для настройки этого файла.
Каждую проблемную ситуацию будем выгружать в отдельный каталог и обрамляется она тегом "log" (примерный исходный код файла приведен ниже). Эти каталоги должны быть видны с сервера где развернута наша конфигурация - можно сделать общий каталог.
Созданный файл "logcfg.xml" копируем в папку с установленным предприятием 1С боевого сервера (обычно куда-то по похожему пути: "c:\Program Files\1cv8\8.3.12.1855\bin\conf\").
Пример файла "logcfg.xml":
Совет. Обязательно ставьте фильтры для настроек технологического журнала. Никогда не сохраняйте всё подряд. Для рассматриваемого примера нам важны только проблемные ситуации, а не весь стек всех возможных событий.
4. Настроим базу мониторинга
Теперь перейдем к настройке самой базы мониторинга. Наши логи уже начали формироваться, т.ч. продолжим.
- Создаем в справочнике "Замеры" три замера с наименованиями по ситуациям: блокировки, долгие запросы и ошибки;
- Указываем путь к соответствующим каталогам;
- Ставим флаг "загружать в реальном времени" - означает, что данные будут подгружаться автоматически регламентным заданием;
- Ставим флаг "загружать автоматически" и указываем интервал загрузки 5-10 минут - будет загружаться по регламентному заданию;
- Детализируем расписание загрузки лога.
После создания замеров с указанными параметрами загрузка логов технологического журнала будет выполняться автоматически (по регламентному заданию для каждого замера).
Совет. Вы можете для каждого замера указать фильтры загрузки данных из логов, чтобы ограничить количество и качество поступаемой информации (дополнительно к настройкам logcfg.xml). К примеру, игнорировать события не подлежащие анализу - обрывы соединений и т.п.
5. Запустим и проверим
Фактически все необходимые операции мы выполнили и теперь можно проверить что получилось.
Для анализа ситуации у нас имеются следующие обработки:
1. Журнал событий замеров. Позволяет просматривать список событий в временной последовательности с отборами и сортировками.
2. Рабочее место по изменению количества событий. Позволяет сравнить изменение количества событий на временной относительной оси по двум временным окнам, к примеру, сравнить среду и вторник текущей недели или разных.
Совет. Для изменения состава отображаемых колонок (добавить новые поля через ссылку, которых нет изначально) в динамическом списке пользуйтесь возможностью "изменить форму" через "еще".
Видео-урок.
В этом видео-уроке мы с вами установим конфигурацию "Анализ ТЖ", проведем необходимые настройки и посмотрим результаты на примере искусственных ситуаций.
Дополнительно.
Подключиться к проекту или его скачать вы можете с git-hub репозитория polyplastic 1c-parsing-tech-log.
Если хотите посмотреть в действии и вам "лень" ставить/компилировать EDT, то можете воспользоваться ссылкой для скачивания присоединенного файла конфигурации из статьи Решение проблемы быстродействия в ERP на рабочем примере. Также в этой статье приводится методика пример выполнения задачи оптимизации проблемного участка для базы 1С.
Есть ли аналоги? К аналогам в какой-то мере можно отнести: Notepad++ и другие механизмы полу-ручного анализа; ЦУП от 1С из Корпоративного инструментального пакета.
Исправления и анализ проблемных ситуаций.
Проблемы исправляются в зависимости от проведения анализа и дальнейшей классификации. К примеру, выявленные ошибки можно классифицировать по следующим уровням:
- ошибки разработчика - ошибки вызванные результатом деятельности разработчиков. Локализуются, формируются задачи на исправления через систему баг трекинга и исправляются последующими релизами;
- ошибки системные - ошибки вызванные проблемами окружения: доступ, отсутствие сети, проблемы внешних ресурсов, недостаток места на диске или выделенной памяти и др. Локализуются и в зависимости от возможности исправления формируются задачи на их устранение.
Наличие "долгих" запросов сообщает о проблемах в производительности базы данных. Для их анализа и наличия можно воспользоваться журналом "свойства замеров" с сортировкой по длительности и фильтром за сегодня. Их можно классифицировать
- проблемы rls - вызваны сложными ограничениями и/или не верным назначением прав доступа;
- проблемы запроса - не правильный запрос, который стоит оптимизировать;
- проблемы производительности - проседание мощности в часы пик или по другим подобными причинам.
Наличие конфликта блокировок говорит об наличии определенных ситуациях в базе приводящих к отказам в действиях пользователей. Их рост во временном интервале может свидетельствовать о грядущих проблемах, который может быть связан с ростом пользователей, проблемами архитектуры и требует незамедлительных мероприятий по устранению. Провести анализ ситуации во времени можно с помощью рабочего места "анализ".