Инструкции
18.01.2024

Использование механизмов платформы "1С:Предприятие" для мониторинга и аудита

1. Журналирование с помощью технологического журнала

1.1 Требования

Платформа 1С:Предприятие:

Операционная система:

Используемые инструменты:

1.2 Описание

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

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

Обычно же технические специалисты для анализа больших массивов текстовых логов используют подручные инструменты и подпрограммы. Например, такие как: grep, cat, awk, скрипты различных интерпретаторов и ЦУП. Как правило, это делается для того, чтобы упростить транслитерацию "сырых" логов в более удобную для анализа структуру данных.

Тем не менее, это накладывает дополнительные ограничения в виде технических знаний как операционных систем, так и используемых утилит и подпрограмм этих систем.

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

Далее будет приведен пример, как можно быстро экспортировать данные технологического журнала в систему сбора больших данных с возможностью поиска и фильтрации этих данных, OpenSearch.

Для достижения этой цели, понадобится следующий технологический стек:

fluentbit и сервер 1С:Предприятие будут установлены на сервере с операционной системой Linux Ubuntu 22.04 LTS. На этом же сервере будут формироваться логи технологического журнала, которые с помощью fluenbit будут в реальном времени отправляться в OpenSearch-сервер.

Инструменты OpenSearch и OpenSearch Dashboards будут установлены на другом сервере, также под управлением операционной системы Ubuntu 22.04 LTS.

1.3 Настройка сервера 1С:Предприятие

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

В качестве первого шага создайте отдельную директорию и сделайте владельцем пользователя, от имени которого запускается сервер 1С:Предприятие для логов технологического журнала.

 

Копировать в буфер обмена
sudo mkdir -p /1c/logs
sudo chown usr1cv8:grp1cv8 -R /1c

 

Далее создайте новый файл logcfg.xml с текстом из следующего примера (замените location на реальный путь для своей файловой системы). Вместо <x.x.x.x> укажите актуальную версию дистрибутива установленной платформы 1С:Предприятие.

Копировать в буфер обмена
sudo tee /opt/1cv8/x86_64/<x.x.x.x>/conf/logcfg.xml<<EOF

<?xml version='1.0' encoding='UTF-8'?>

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

  <log location="/1c/logs" history="4" placement="plain" format="json">

    <event>

      <ne property="Name" value=""/>

    </event>

 

    <property name="all">

    </property>

  </log>

</config>

EOF

Обратите внимание на поля placement и format. С помощью них определяется способ создания новых файлов лога и формат содержимого логов технологического журнала. В данном случае placement=plain означает, что файлы будут расположены в указанной директории без создания промежуточных каталогов с именами процессов, а format=json определяет содержимое логов в формате JSON (https://www.json.org/json-en.html).

Осталось только определить владельцем пользователя сервера 1С:Предприятие/

Копировать в буфер обмена
sudo chown usr1cv8:grp1cv8 /opt/1cv8/x86_64/<x.x.x.x>/conf/logcfg.xml

Спустя минуту должен начаться сбор логов технологического журнала. Чтобы это проверить, выполните команду:

Копировать в буфер обмена
ls -l /1c/logs/

В ответ должен получиться примерно следующий листинг файлов:

 

Если сбор данных ведется не на постоянной основе, то для отключения сбора логов технологического журнала удалите или переименуйте файл logcfg.xml.

После того, как будут установлены остальные программные компоненты, полученный файл сохраните в директорию conf установленного дистрибутива платформы 1С:Предприятие.

 

1.4 Установка OpenSearch и OpenSearch Dashboards

Установка сервера будет выполняться с помощью менеджера пакета apt. Если ваша операционная система отличается, то воспользуйтесь инструкцией по установке по ссылке https://opensearch.org/docs/latest/install-and-configure/install-opensearch/index/ для вашей операционной системы.

Порядок установки следующий:

  1. Импортируйте публичный GPG-ключ.

 

Копировать в буфер обмена
curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo apt-key add –

 

  1. Создайте APT-репозиторий для OpenSearch.

Копировать в буфер обмена
echo "deb https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/opensearch-2.x.list

  1. Создайте APT-репозиторий для OpenSearch Dashboards.

 

Копировать в буфер обмена
echo "deb https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/opensearch-dashboards-2.x.list

  1. Проверьте, что репозитории были успешно созданы.

Копировать в буфер обмена
sudo apt-get update

 

  1. Запустите процесс установки OpenSearch.

Копировать в буфер обмена
sudo apt-get install opensearch

 

  1. После установки активируйте daemon для OpenSearch.

Копировать в буфер обмена
sudo systemctl enable opensearch

 

  1. Откройте файл /etc/opensearch/opensearch.yml в любом доступном вам редакторе. В рассматриваемом примере не используется протокол https и связанные с ним сертификаты. Для настройки использования сертификатов вы можете воспользоваться руководством по ссылке https://opensearch.org/docs/latest/install-and-configure/install-opensearch/debian/#configure-tls .
  1. Запустите daemon OpenSearch.

Копировать в буфер обмена
sudo systemctl start opensearch

 

  1. Проверьте состояние запуска OpenSearch.

Копировать в буфер обмена
sudo systemctl status opensearch

 

  1. Запустите процесс установки OpenSearch Dashboards.

Копировать в буфер обмена
sudo apt-get install opensearch-dashboards

 

  1. После установки активируйте daemon для OpenSearch Dashboards.

Копировать в буфер обмена
sudo systemctl enable opensearch -dashboards

  1. Запустите daemon OpenSearch Dashboards.

Копировать в буфер обмена
sudo systemctl start opensearch -dashboards

  1. Проверьте состояние запуска OpenSearch Dashboards.

 

Копировать в буфер обмена
sudo systemctl status opensearch -dashboards

 

1.5 Установка fluenbit

Установка fluentbit будет выполняться с помощью менеджера пакета apt. Если ваша операционная система отличается, то воспользуйтесь инструкцией по установке по ссылке https://docs.fluentbit.io/manual/installation/getting-started-with-fluent-bit для вашей операционной системы.

Порядок установки следующий:

  1. Импортируйте публичный GPG-ключ.

Копировать в буфер обмена
sudo sh -c 'curl https://packages.fluentbit.io/fluentbit.key | gpg --dearmor > /usr/share/keyrings/fluentbit-keyring.gpg'

 

  1. Создайте APT-репозиторий для fluentbit.

Копировать в буфер обмена
echo " deb [signed-by=/usr/share/keyrings/fluentbit-keyring.gpg] https://packages.fluentbit.io/ubuntu/jammy jammy main" | sudo tee -a /etc/apt/sources.list.d/fluent-bit.list

 

  1. Проверьте, что репозиторий был успешно создан.

Копировать в буфер обмена
sudo apt-get update

 

  1. Запустите процесс установки fluentbit.

Копировать в буфер обмена
sudo apt-get install fluent-bit

 

  1. После установки создайте директорию конфигурационных файлов fluentbit.

Копировать в буфер обмена
sudo mkdir -p /1c/config

 

  1. Поместите архив fluentbit_config_1c.tar.gz (скачать) в директорию /tmp.
  2. Распакуйте архив.

Копировать в буфер обмена
sudo tar –xzf /tmp/fluentbit_config_1c.tar.gz –C /1c/config

 

  1. Дайте права на чтение для всех на конфигурационные файлы.

Копировать в буфер обмена
sudo chmod o+r /1c/config

 

В файле techlog.conf, который входит в состав дистрибутива распакованных ранее скриптов, содержатся основные параметры fluentbit для сбора данных. В большинстве случаев требуется изменить только несколько параметров:

После настройки файлов конфигураций fluentbit, перейдем к его запуску.

В окне консоли перейдите в директорию fluentbit. Обычно это директория /opt/fluent-bit/bin.

Копировать в буфер обмена
cd /opt/fluent-bit/bin

Далее запустите fluentbit со следующими параметрами (в параметрах указаны файлы, которые были размещены в директории /1c/config).

Копировать в буфер обмена
sudo ./fluent-bit --config /1c/config/techlog.conf --parser /1c/config/techlog_parser.conf

 

Если все настроено правильно, то в консоль будет выведена служебная информация, подобно этой:

 

 

Если же будут строки c информацией об ошибке (событие [error]), то внимательно изучите сообщение и попытайтесь ее исправить на основании текста ошибки. Пример ошибки во время запуска fluenbit:

 

 

Если fluentbit запустился без ошибок, то пора перейти проверке получаемых данных.

1.6 Просмотр данных в OpenSearch Dashboards

Откройте страницу OpenSearch Dashboards в браузере. По умолчанию порт для OpenSearch Dashboards выглядит как:

http://<имя-сервера>:5601, где <имя-сервера> - это имя компьютера, на котором установлен OpenSearch Dashboards.

При открытии будет предложено ввести логин и пароль. Используйте пару admin и admin, либо свои учетные данные доступа.

 

 

После авторизации откроется либо домашняя страница, либо, если это новая установка дистрибутива, то страница приветствия. Если это новая установка, нажмите на "Explore on my own" и в следующем окне "Confirm".

 

 

 

В открывшейся домашней странице нажмите на пункт меню "Index Management" в боковом меню. В открывшейся странице выберите "Indices".

 

 

 

В этом окне нужно убедиться, что индекс был создан (наименование индекса должно совпадать с параметром Index секции [OUTPUT] в файле techlog.conf).

 

 

Теперь для того, чтобы просматривать данные в OpenSearch Dashboards, нужно создать Index pattern. Для этого щелкните по пиктограмме , а затем по ссылке с надписью "Manage". Откроется форма управления. На форме управления в боковом меню перейдите по ссылке "Index Patterns" и нажмите на кнопку "Create index pattern".

 

 

 

В поле "Index pattern name" введите techlog_index. При использовании множества индексов можно использовать символ * для создания шаблона индекса по маске. Например, при наличии индексов techlog_index_calls и techlog_index_exceptions, можно использовать наименование шаблона techlog_index*. Тогда в итоговый шаблон попадут данные по подходящим по маске индексам. После указания наименования, нажмите "Next step".

 

 

На следующем шаге нужно выбрать поле, которое будет отвечать за временную метку фильтра событий. Выберите поле @timestamp и нажмите кнопку "Create index pattern".

 

 

На этом шаге настройка считается завершенной, теперь можно перейти непосредственно к просмотру и поиску по данным.

Выберите в боковом меню пункт "Discover".

 

 

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

 

 

Если же шаблонов было создано несколько, то их можно выбрать в раскрывающемся списке под ссылкой "+ Add filter".

 

 

1.7 Поиск данных в OpenSearch

Рассмотрим несколько вариантов поиска в качестве примера. Примеры поиска выполняются в формат по умолчанию - "DQL".

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

Для поиска по всем доступным событиям по всем полям введите нужную фразу в строке поиска. Например, поиск по строке "Ошибка при вызове метода контекста".

 

 

Пример 2. Поиск текста по заданным полям

Для поиска текста по заданным полям, укажите в поисковой строке имя нужного поля (имена полей можно посмотреть в списке "Available fields", слева от результата поиска). Затем укажите символ ":" в качестве разделителя. После разделителя введите текст, который необходимо найти. Искомый текст может содержать специальные символы "*", "?".

Введите в строке поиска name:EXCP и нажмите клавишу "Enter". В результате поиска будут отображены элементы только по событиям "EXCP" технологического журнала.

 

 

Также в поисковом запросе вы также можете применять логические операции OR, AND или NOT для логического связывания запроса. Например, можно объединить предыдущие два примера и получить более конкретную выборку событий.

name:EXCP AND Ошибка при вызове метода контекста

 

 

Более подробно ознакомиться с возможностями DQL можно по ссылке https://opensearch.org/docs/2.6/dashboards/discover/dql/.

2. Аудит с помощью данных журнала регистрации

2.1 Требования

Операционная система:

Используемые инструменты:

2.2 Описание

Еще одним полезным инструментом для аудита работы прикладного кода является журнал регистрации.

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

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

Распространённой практикой раньше был просмотр и анализ журнала регистрации в режиме конфигуратора или клиента 1С:Предприятие. Для упрощения анализа журнала регистрации в одной системе, в платформе был реализован вывод событий журнала регистрации в поток вывода утилиты ibcmd, которая входит в поставку дистрибутива платформы 1С:Предприятие.

2.3 Описание скрипта сбора данных журнала регистрации

В отличие от предыдущего раздела, в этом будет использоваться скрипт на языке программирования Python для демонстрации возможности работы с журналом регистрации из потока вывода. Вместо скрипта на Python можно использовать все тот же fluentbit и выгружать его в OpenSearch. Но в скрипте демонстрируется возможность не только чтения потока процесса ibcmd, но также мониторинг утилиты и необходимый перезапуск ibcmd, если по каким-то причинам процесс был завершен.

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

2.4 Установка Python и настройка скрипта

Исходные данные скрипта можно получить по этой ссылке. Скопируйте архив в любую доступную директорию на сервере, например в /tmp.

Далее создайте корневую директорию скриптов и выполните:

Копировать в буфер обмена
sudo mkdir -p /1c/scripts

 

После создания директории разархивируйте файлы скрипта в отдельную директорию, например, с именем eventlog-watcher:

Копировать в буфер обмена
sudo tar –xzf /tmp/eventlog-watcher.tar.gz –C /1c/config/eventlog-watcher

 

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

 

Копировать в буфер обмена

sudo chmod o+r /1c/scripts/eventlog-watcher

 

Убедитесь, что интерпретатор Python установлен. Для этого в консоли выполните команду:

Копировать в буфер обмена
python3 --version

В ответ на команду должен появиться вывод команды с версией установленного дистрибутива Python:

 

 

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

 

 

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

Копировать в буфер обмена
pip3 install –r /1c/scripts/eventlog-watcher/requirements.txt

 

Прежде чем запускать скрипт, его необходимо настроить. Настройка скрипта выполняется в файле settings.yml.

Откройте его и укажите следующие обязательные параметры:

/home/usr1cv8/.1cv8/1C/1cv8/reg_1541/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/1Cv8Log'. Вместо xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx укажите конкретный идентификатор информационной базы.\

Из необязательных параметров можно отметить следующие:

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

 

Копировать в буфер обмена
python3 /1c/config/eventlog-watcher/main.py

 

При успешном запуске скрипта можно сразу переходить к OpenSearch Dashboards.

2.5 Просмотр данных в OpenSearch

Откройте страницу OpenSearch Dashboards в браузере и создайте шаблон индекса с наименованием eventlog* (индекс указывается в настройках settings.yml в параметре index секции receiver-parameters/opensearch), руководствуясь инструкцией в разделе "1.4 Просмотр данных в OpenSearch Dashboards".

Выберите в боковом меню пункт "Discover".

 

 

Выберите шаблон eventlog* в раскрывающемся списке под ссылкой "+ Add filter"

 

 

В результате откроется форма просмотра доступных элементов поиска в соответствии с шаблоном индекса eventlog*.

 

 

О том, как работать с поиском OpenSearch, указано в разделе "1.4 Просмотр данных в OpenSearch Dashboards".

3. Мониторинг серверов платформы 1С:Предприятие и операционной системы

3.1 Требования

Операционная система:

Используемые инструменты:

3.2 Описание

 

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

Сбор метрик будет производиться в Prometheus – программное обеспечение с открытым исходным кодом, которое используется для компьютерного мониторинга и оповещения. Более подробную информацию о Prometheues можно получить по ссылке: https://prometheus.io/.

3.3 Установка Prometheus

  1. Создайте группу prometheus.

Копировать в буфер обмена
sudo groupadd --system prometheus

 

  1. Создайте пользователя prometheus и добавьте его в ранее созданную группу.

Копировать в буфер обмена
sudo useradd -s /sbin/nologin --system -g prometheus prometheus

 

  1. Создайте директорию хранения данных и конфигурационных файлов.

Копировать в буфер обмена
sudo mkdir /var/lib/prometheus

  1. Создайте дочерние служебные  директории prometheus.

Копировать в буфер обмена
for i in rules rules.d files_sd; do sudo mkdir -p /etc/prometheus/${i}; done

 

  1. Выполните обновление информации из репозиториев.

Копировать в буфер обмена
sudo apt-get update

 

  1. Создайте временную директорию, в которую будет скачан дистрибутив Prometheus, и перейдите в нее.

Копировать в буфер обмена
mkdir -p /tmp/prometheus && cd /tmp/prometheus

 

  1. Скачайте дистрибутив Prometheus.

Копировать в буфер обмена
curl -s https://api.github.com/repos/prometheus/prometheus/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi -

 

  1. Разархивируйте дистрибутив Prometeus.

Копировать в буфер обмена
tar xvf prometheus*.tar.gz

 

  1. Перейдите в директорию дистрибутива.

Копировать в буфер обмена
cd prometheus*/

  1. Переместите исполняемые файлы Prometheus в /ust/local/bin.

Копировать в буфер обмена
sudo mv prometheus promtool /usr/local/bin/

 

  1. Переместите конфигурационный файл Prometheus в /etc/prometheus.

Копировать в буфер обмена
sudo mv prometheus.yml /etc/prometheus/prometheus.yml

  1. Переместите директории cobsoles и console_libraries в /etc/prometheus.

 

Копировать в буфер обмена
sudo mv consoles/ console_libraries/ /etc/prometheus/

  1. Перейдите в домашнюю директорию пользователя.

Копировать в буфер обмена
cd $HOME

  1. Откройте файл /etc/prometheus/prometheus.yml в любом доступном вам редакторе. В конфигурационном файле нужно будет добавить две секции. Первая отвечает за сбор метрик кластера 1С:Предприятие, вторая секция отвечает за сбор метрик скрипта на Python. Измените значения <server-name> на реальное значение адреса (-ов) сервера (-ов), на котором будут расположены сервер платформы 1С:Предприятие и предполагаемый скрипт на Python.

 

Копировать в буфер обмена
  - job_name: "cluster_metrics"

    static_configs:

      - targets:

          - ":1555"

    params:

      sessions: ["1"]

 

  - job_name: "os_ws_proc_metrics"

    static_configs:

      - targets:

          - ":8081"

 

Значения параметра job_name могут быть произвольными. При желании их можно переименовать в более понятный вид.

Обратите внимание, что для метрик кластера используется параметр sessions со значением 1. Это означает, что метрики будут собираться с учетом данных сессий. Если удалить секцию params, будут выводиться только метрики кластера. Помимо этого запомните порты в targets. Эти значения пригодятся при запуске генераторов метрик.

  1. Создайте файл службы systemd для запуска Prometheus в качестве daemon’а.

 

Копировать в буфер обмена
sudo tee /etc/systemd/system/prometheus.service<<EOF

[Unit]

Description=Prometheus

Documentation=https://prometheus.io/docs/introduction/overview/

Wants=network-online.target

After=network-online.target

 

[Service]

Type=simple

User=prometheus

Group=prometheus

ExecReload=/bin/kill -HUP \$MAINPID

ExecStart=/usr/local/bin/prometheus \

  --config.file=/etc/prometheus/prometheus.yml \

  --storage.tsdb.path=/var/lib/prometheus \

  --web.console.templates=/etc/prometheus/consoles \

  --web.console.libraries=/etc/prometheus/console_libraries \

  --web.listen-address=0.0.0.0:9090 \

  --web.external-url=

 

SyslogIdentifier=prometheus

Restart=always

 

[Install]

WantedBy=multi-user.target

EOF

 

  1. Измените права доступа и владельца к директориям Prometheys.

 

Копировать в буфер обмена
for i in rules rules.d files_sd; do sudo chown -R prometheus:prometheus /etc/prometheus/${i}; done

for i in rules rules.d files_sd; do sudo chmod -R 775 /etc/prometheus/${i}; done

sudo chown -R prometheus:prometheus /var/lib/prometheus/

 

  1. Перечитайте настройки сервисов systemd .

Копировать в буфер обмена
sudo systemctl daemon-reload

 

  1. Включите запуск сервиса при загрузке системы.

Копировать в буфер обмена
sudo systemctl enable prometheus

 

  1. Запустите сервис Prometheus.

 

Копировать в буфер обмена
sudo systemctl start prometheus

  1. Проверьте состояние запуска Prometheus.

Копировать в буфер обмена
systemctl status prometheus

 

 

3.4 Установка и настройка Apache 2.4

Подсчет метрик успешных и неуспешных вызов к серверу, а также время выполнения исходящего запроса производятся только с помощью анализа поступающих логов работы Apache. Поэтому для сбора таких метрик требуется опубликовать информационную базу на веб-сервере, а тонким клиентом подключаться по ws-ссылке.

Для начала установите Apache.

Копировать в буфер обмена
sudo apt install apache2

 

Далее нужно опубликовать информационную базу. Вместо <server_1c> и <infobase_name> используйте свои значения. Также заменить x.x.x.x на актуальную версию установленного дистрибутива платформы 1С:Предприятие.

Копировать в буфер обмена
sudo /opt/1cv8/x86_64/<x.x.x.x>/webinst -publish -apache24 -wsdir <infobase_name> -dir /var/www/<infobase_name> -connstr “Srvr=<server_1c>;Ref=<infobase_name>;”

Откройте файл /etc/apache2/apache2.conf на редактирование и замените строки в конце файла:

Копировать в буфер обмена
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%r\" %>s %O" common

 

На:

Копировать в буфер обмена
LogFormat "%h %l %u %t %D \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t %D \"%r\" %>s %O" common

 

В измененных строках добавился параметр %D, который отвечает за вывод времени выполнения исходящих запросов в микросекундах.

Далее выполните проверку конфигурационных файлов Apache на предмет ошибок.

Копировать в буфер обмена
apachectl configtest

 

Если в выводе команды будут отсутствовать строки ошибок, то перезапустите Apache для применения настроек. В противном случае ознакомьтесь с текстом ошибок и попробуйте их исправить.

Копировать в буфер обмена
sudo systemctl restart apache2

 

3.5 Описание работы скрипта

Скрипт на Python для сбора метрик производительности представляет собой универсальный Prometheus-клиент, который может предоставлять метрики:

Для каждого из типа метрик есть возможность включения и отключения. Например, можно настроить скрипт так, чтобы собирались метрики только успешных и неуспешных вызовов сервера 1С:Предприятие к серверу СУБД.

При запуске скрипта инициализируется клиент Prometheus, который содержит значения метрик в понятном для сервера Prometheus виде.

 

 

3.6 Развертывание и настройка скриптов

Исходные данные скрипта можно получить по этой ссылке. Скопируйте архив в любую доступную директорию на сервере, например в /tmp.

Если директория /1c/scripts еще не создана, создайте корневую директорию скриптов:

Копировать в буфер обмена
sudo mkdir -p /1c/scripts

Разархивируйте файлы скрипта в отдельную директорию, например, с именем server-follower:

 

Копировать в буфер обмена
sudo tar –xzf /tmp/server-follower.tar.gz –C /1c/config/server-follower

 

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

Копировать в буфер обмена
sudo chmod o+r /1c/scripts/server-follower

 

Убедитесь, что интерпретатор Python установлен в системе (2.4 Установка Python и настройка скрипта).

Запустите установку необходимых зависимостей из файла requirements.txt и дождитесь завершения процесса.

Копировать в буфер обмена
pip3 install –r /1c/scripts/server-follower/requirements.txt

 

Настройка скрипта выполняется в файле settings.yml.

Откройте его в режиме редактирования и заполните следующие обязательные параметры:

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

Копировать в буфер обмена
python3 /1c/config/server-follower/main.py

 

3.7 Запуск сервера администрирования RAS в режиме отображения метрик

Для того, чтобы запустить RAS в режиме отображения метрик, никаких предварительных настроек делать не требуется.

Для запуска сборка метрик выполните команду:

 

Копировать в буфер обмена
/opt/1cv8/x86_64/<x.x.x.x>/ras cluster --monitor-base /metrics --monitor-address 0.0.0.0 --monitor-port 1555

 

Где:

 

 

3.8 Что можно сделать с помощью метрик

Вы можете использовать метрики в "чистом" виде на сервере Prometheus и добавлять нужные метрики с целью мониторинга.

 

 

Альтернативным вариантом может быть использование инструмента Grafana, который позволяет отображать метрики, хранящиеся в Prometheus в виде дашбордов. Например, дашборд может выглядеть так: