Автоматизация задач эксплуатации систем 1С

21/04/2017

Автоматизация задач эксплуатации систем 1С

Введение

Скрипты предназначены для автоматизации рутинных действий, они помогают программистам и администраторам систем в повседневной жизни, и, несомненно, экономят время, которое можно потратить с пользой. Эксперты «1С-Рарус:Техлаб» разработали несколько полезных скриптов для операционной системы Windows и внешний отчет для платформы «1С:Предприятие 8» по анализу APDEX, которые мы хотим вам представить.

Архивирование технологического журнала и дампов

При работе с высоконагруженными системами, при переводе системы в промышленную эксплуатацию, а также в других ситуациях требуется отслеживать состояние системы и иметь возможность расследовать причины замедлений в работе, ошибок различного характера и другие проблемы. Для этих целей в платформе «1С:Предприятие» существует технологический журнал. Его настройка (файл logcfg.xml) позволяет выбрать необходимые для анализа события с фильтрами и указанием глубины истории их хранения (в часах), а также позволяет указать платформе, нужно ли собирать дампы аварийно завершившихся процессов и в каком формате дампы должны формироваться платформой. Кроме этого, бывают ситуации, когда платформа по различным причинам не смогла самостоятельно сформировать дамп процесса «1С». Для предотвращения потери дампов, которые могут быть полезны для дальнейшей диагностики, следует в дополнение к логам и дампам технологического журнала настроить сбор дампов средствами операционной системы. Для ОС Windows — это подсистема Windows Error Reporting. Описание настройки Windows Error Reporting представлено на сайте ИТС.

Технологический журнал и дампы процессов могут быть в дальнейшем переданы для анализа специалистам фирмы «1С». Объем информации, собираемой технологическим журналом, может исчисляться десятками гигабайт в день, а объем одного дампа рабочего процесса может варьироваться в зависимости от настройки кластера «1С», чаще всего это значение можно оценить, как 3-5 Гб. Таким образом, возникает задача регулярной архивации данных и для сокращения их объема, и для сохранения истории для анализа прошлых периодов.

Здесь и далее мы приводим примеры скриптов с использованием бесплатного свободно распространяемого архиватора 7z, а точнее с его небольшой консольной версией без зависимостей 7za, которую можно скачать на официальном сайте (standalone console version).

Следующий скрипт позволяет выполнять архивирование логов технологического журнала: tj_logs_arc.bat.

Данный скрипт имеет следующий алгоритм работы: в каталоге ARC_PATH создаются архивы каталогов TJ_PATH\ARC_CATS[i], где TJ_PATH — каталог технологического журнала, а ARC_CATS — массив имен подкаталогов каталога TJ_PATH, где хранятся отдельные группы событий. Имя архива формируется как:

[имя компьютера]_[имя группы событий]_[дата начала архивации].7z

Указанная выше структура каталогов задается в настройках технологического журнала logcfg.xml параметром location. Например, есть две группы событий EXCP (события excp) и FULL (все события), и мы хотим их собирать в разные каталоги, тогда настройка logcfg.xml будет выглядеть следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
  <log location="C:\TJ_logs\FULL" history="28">
    <event>
      <ne property="name" value=" "/>
    </event>
    <property name="all"/>
  </log>    
  <log location="C:\TJ_logs\EXCP" history="28">
    <event>
      <eq property="name" value="EXCP"/>
    </event>
    <property name="all"/>
  </log>
</config>

При этом, если мы хотим архивировать обе группы событий: EXCP и FULL, то параметры TJ_PATH и ARC_CATS будут выглядеть следующим образом:

  • TJ_PATH = C:\TJ_logs
  • ARC_CATS = (FULL EXCP)

В ходе выполнения скрипта в файл, указанный в переменной LOG_FILENAME, производится логирование: даты начала и окончания архивации, ошибок и описаний событий, возвращаемых архиватором.

Перед выполнением скрипта в нем следует указать значения переменных:

  • ARC_PATH — каталог для архивов технологического журнала.
  • TJ_PATH — «корневой» каталог логов технологического журнала.
  • ARC_CATS – имена подкаталогов корневого каталога, разделенные пробелом.
  • LOG_FILENAME — путь к файлу логов скрипта.
  • ARC_EXE — путь к исполняемому файлу 7za.exe.

Для архивации дампов предлагаем использовать этот скрипт: tj_dumps_arc.bat.

Данный скрипт имеет следующий алгоритм работы: в каталоге ARC_PATH создаются архивы дампов из каталога DUMPS_PATH.

Если дамп сформирован платформой 1С, то имя архива формируется как:

[имя компьютера]_[имя файла дампа с расширением].7z

Если дамп сформирован операционной системой, то имя архива формируется как:

[имя компьютера]_[имя файла дампа с расширением]_[дата формирования дампа].7z

Такое разделение обусловлено тем, что при формировании дампов платформой 1С имя файла дампа содержит не только идентификатор процесса (PID), но и метку времени. В случае же формирования дампов средствами операционной системы имя дампа состоит только из имени процесса и его идентификатора, и могут возникнуть ситуации, когда в каталоге с архивами дампов уже есть архив с таким же именем, но сформированный ранее, так как идентификатор процесса уникален только в конкретный, отдельно взятый момент времени, и может с течением времени повторяться. Для исключения таких ситуаций мы добавляем к имени архива дату формирования дампа.

Перед выполнением скрипта в нем следует указать переменные:

  • ARC_PATH — каталог для архивов дампов.
  • DUMPS_PATH — каталог сбора дампов.
  • LOG_FILENAME — путь к файлу логов скрипта.
  • ARC_EXE — путь к исполняемому файлу 7za.exe.

Данные скрипты следует назначить для выполнения по расписанию, например, для ОС Windows средствами планировщика заданий.

Передача данных на FTP

В некоторых случаях диагностические данные, такие как архивы технологического журнала и архивы дампов, необходимо регулярно передавать специалистам фирмы 1С на их FTP-сервер, либо использовать для хранения архивов не локальный каталог, а собственный FTP-сервер. Чтобы автоматизировать процесс регулярной передачи (загрузки) данных на FTP-сервер мы можем поделиться следующим скриптом: ftp_upload_wscp.bat.

Для передачи данных в примере скрипта используется бесплатный свободно распространяемый клиент FTP для операционной системы Windows — WinSCP, который можно скачать на официальном сайте. Необходимость использования данного клиента вместо встроенного клиента операционной системы обусловлена тем, что встроенный клиент не поддерживает работу в пассивном режиме, которая достаточно часто необходима для успешной загрузки.

Алгоритм работы скрипта следующий: в качестве его входного параметра можно указать либо каталог, все файлы которого будут загружены на FTP-сервер, либо можно передавать массив имен файлов, которые необходимо загрузить. Далее скрипт формирует последовательность команд для клиента WinSCP, которую записывает в файл и запускает ее на выполнение. Скрипт не выполняет удаление локальных файлов, при необходимости это следует реализовать отдельно.

Таким образом, перед выполнением скрипта в нем следует указать переменные:

  • ftp_srv — адрес сервера FTP с логином и паролем (вида «ftp://user:pass@server»).
  • ftp_dir — каталог для загрузки данных на сервере FTP.
  • ftp_exe — путь к исполняемому файлу WinSCP.
  • script_filename — путь к файлу команд для WinSCP.
  • log_filename — путь к файлу логов скрипта.

Перевод журнала регистрации в старый формат для всех баз кластера

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

Для тех, кому необходимо выполнить перевод формата журнала регистрации в старый формат для системы с большим количеством информационных баз, или тех, кто просто не хочет выполнять действия по переключения вручную, мы создали специальный скрипт: 1Cv8Log_format_switch.bat.

Алгоритм работы скрипта следующий: производится поиск файлов *.lgd во всех подкаталогах каталога SRV_INFO, где SRV_INFO — каталог реестра кластера «1С». Все найденные файлы копируются в каталог BACKUP_PATH с сохранением их пути относительно каталога SRV_INFO и заменяются на пустые файлы журнала регистрации в старом формате 1Cv8.lgf. Выполнение скрипта следует осуществлять при остановленной службе «1С».

Перед выполнением скрипта в нем следует указать переменные:

  • SRV_INFO — каталог реестра кластера «1С».
  • BACKUP_PATH — каталог для резервных копий журналов регистрации в новом формате.

Отчет по показателю APDEX

Показатель APDEX позволяет оценить удовлетворенность пользователей при работе с системой и может быть рассмотрен как в разрезе отдельных операций, так и в качестве интегрального показателя для всей системы. Если в вашей информационной базе используется подсистема «Оценка производительности» и выделены ключевые операции, по которым встроены замеры времени и установлено целевое время или вы предполагаете это сделать в будущем, то вам пригодится наш внешний отчет: APDEX_v11.erf.

В отличие от типовой обработки, используемой на данный момент в БСП, наш отчет реализован на базе системы компоновки данных и позволяет гибко настраивать выводимые данные. В нем представлено несколько предопределенных вариантов отчетов, которые позволяют сформировать его с группировкой данных по часам, дням или неделям. В отчете есть возможность задать локальный период отчета и выполнить отбор по ключевым операциям. Вариант отчета представляет собой таблицу с числовыми значениями APDEX по каждой операции, а также график изменения интегрального показателя APDEX по всем выбранным операциям. Данный отчет работает на относительно новых типовых конфигурациях (например, ERP) и может потребовать незначительной доработки в случае использования подсистемы «Оценка производительности» старых версий.

Пример результата отчета, которым мы чаще всего пользуемся, представлен ниже:

Пример результата отчета

Заключение

Надеемся, представленные инструменты позволят сократить время на рутинные операции при эксплуатации систем на базе платформы «1С:Предприятие» и автоматизировать наиболее важные из них, а внешний отчет позволит контролировать производительность систем во всех возможных разрезах и с понятной визуализацией. Ну а если у вас что-то не получится, или вы столкнетесь с какими-то трудностями, обращайтесь к нам, мы обязательно поможем!