Сбор метрик кластера «1С:Предприятие» на базе Linux
В этом руководстве вы настроите сбор метрик кластера «1С:Предприятие» на базе Linux в формате Prometheus и их визуализацию в сервисе Yandex Monitoring. Помимо визуализации, Monitoring позволяет настраивать алерты, гибридные дашборды с метриками различных сервисов Yandex Cloud и обладает большими возможностями по масштабированию.
Метрики кластера будут собираться с помощью свободно распространяемой утилиты Prometheus 1C Exporter
Руководство предполагает, что у вас уже развернут кластер «1С:Предприятие» на виртуальной машине в сервисе Yandex Compute Cloud. Пример развертывания см. в руководстве Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL.
Чтобы начать работать с метриками в Yandex Monitoring:
- Установите и настройте Prometheus 1C Exporter
- Установите и настройте Unified Agent
- Создайте сервисный аккаунт и привяжите его к ВМ
- Проверьте, что метрики передаются в Monitoring
- Создайте дашборд для наблюдения за метриками
Если созданные ресурсы больше не нужны, удалите их.
Необходимые платные ресурсы
Плата за передачу метрик в Monitoring (см. тарифы Monitoring).
Установите и настройте Prometheus 1C Exporter
-
На виртуальной машине с «1С:Предприятие» скачайте Prometheus 1C Exporter:
wget https://github.com/LazarenkoA/prometheus_1C_exporter/releases/download/v1.5.0/prometheus_1C_exporter-linux-amd64 -
Переименуйте экспортер и переместите его в системный каталог:
mv prometheus_1C_exporter-linux-amd64 exporter_1C sudo mv exporter_1C /usr/local/bin/exporter_1C -
Назначьте файл исполняемым:
sudo chmod +x /usr/local/bin/exporter_1C -
Создайте файл конфигурации для экспортера:
sudo mkdir /etc/exporter_1C/ sudo vi /etc/exporter_1C/settings.yaml -
Скопируйте конфигурацию ниже в файл
settings.yaml, при необходимости настройте свой набор метрик для сбора.Конфигурация экспортера settings.yaml
# Доступные значения метрик, которые можно собирать с помощью экспортера: # ClientLic — Клиентские лицензии # AvailablePerformance — Доступная производительность (через RAC) # SheduleJob — Проверка опции "Блокировка регламентных заданий" # Session — Сеансы # Connect — Соединения # SessionsData — Различные показатели из консоли 1C (через RAC) # ProcData — Данные процессов (собираются метрики ОС Linux) # CPU — Загрузка процессора # disk — Метрики диска (сейчас поддерживается только Linux и WeightedIO) # Property — Дополнительные параметры, у каждой метрики свой набор параметров # Processes — Дополнительный параметр ProcData, определяет список процессов, которые нужно отслеживать # Можно включить или отключить любой набор метрик для отслеживания Exporters: - Name: client_lic - Name: available_performance # - Name: processes # - Name: cpu # - Name: disk # - Name: shedule_job # - Name: session - Name: connect # - Name: sessions_data # HTTP-сервис, который возвращает JSON-массив с параметрами доступа к БД # Требуется для метрики SheduleJob # пример json: #[ # { # "Name": "hrmcorp-n17", # Имя базы 1C # "UserName": "", # "UserPass": "" # } #] #DBCredentials: # обязательный параметр для метрики shedule_job # Адрес, по которому 1С возвращает список баз данных в JSON-формате # URL: http://ca-fr-web-1/fresh/int/sm/hs/PTG_SysExchange/GetDatabase # User: "" # Password: "" # TLSSkipVerify: true # true — при обращении к сервису игнорировать ошибки проверки сертификата RAC: Path: "/usr/local/bin/rac" Port: "1545" # Необязательный параметр Host: "localhost" # Необязательный параметр Login: "" # Необязательный параметр Pass: "" # Необязательный параметр LogDir: # Если каталог не указан, логи будут записываться в каталог с исполняемым файлом экспортера LogLevel: 5 # Уровень логирования: 2 (ошибка), 3 (предупреждение), 4 (информация), 5 (отладка)В этой конфигурации настроена передача метрик:
available_performance— доступная производительность хоста (Histogram).client_lic— клиентские лицензии 1С (Histogram).connect— соединения 1С (Histogram).
При необходимости можно добавить другие метрики
. -
Создайте символическую ссылку для утилиты управления 1C RAC:
sudo ln -s /opt/<путь_установки_1C>/rac /usr/local/bin/rac -
Создайте unit-файл для systemd для управления экспортером:
sudo vi /etc/systemd/system/exporter_1C.serviceСодержимое файла exporter_1C.service
[Unit] Description=Prometheus 1C exporter After=local-fs.target network-online.target network.target Wants=local-fs.target network-online.target network.target [Service] Type=simple ExecStart=/usr/local/bin/exporter_1C -port=9095 --settings=/etc/exporter_1C/settings.yaml ExecReload=/bin/kill -s HUP $MAINPID [Install] WantedBy=multi-user.targetЭта конфигурация запускает экспортер после загрузки ОС и сети. Экспортер начинает прослушивать порт
9095по параметрам из файлаsettings.yaml. -
Запустите экспортер:
sudo systemctl daemon-reload sudo systemctl start exporter_1C.service sudo systemctl enable exporter_1C.service -
Проверьте состояние экспортера и убедитесь, что сервис находится в состоянии
active (running).sudo systemctl status exporter_1C.service
После запуска экспортера метрики доступны по адресу curl http://localhost:9095/metrics. Чтобы работать с метриками в Yandex Monitoring, надо установить Unified Agent и настроить его на прием метрик по этому адресу и передачу метрик в Monitoring.
Создайте сервисный аккаунт и привяжите его к ВМ
Сервисный аккаунт нужен для передачи метрик из ВМ в Monitoring.
- Создайте сервисный аккаунт
sa-1c-monitoringв каталоге, куда будут записываться метрики. - Назначьте сервисному аккаунту роль
monitoring.editor. - Подключите сервисный аккаунт к ВМ, на которой установлено «1С:Предприятие».
Установите и настройте Unified Agent
-
Скачайте последнюю версию deb-пакета:
ubuntu_name="<версия_ОС>" ua_version=$(curl --silent https://storage.yandexcloud.net/yc-unified-agent/latest-version) bash -c 'curl --silent --remote-name https://storage.yandexcloud.net/yc-unified-agent/releases/${ua_version}/deb/${ubuntu_name}/yandex-unified-agent_${ua_version}_amd64.deb' -
Посмотрите версию deb-пакета с помощью команды
ls. -
Установите Unified Agent из deb-пакета, указав его версию:
sudo dpkg -i yandex-unified-agent_<версия_агента>_amd64.debДругие способы установки описаны в разделе Установка и обновление Yandex Unified Agent.
-
Проверьте, что Unified Agent запущен:
sudo systemctl status unified-agent.service -
Откройте конфигурационный файл Unified Agent:
sudo vi /etc/yandex/unified_agent/config.yml -
Замените содержимое файла на конфигурацию ниже. Добавьте идентификатор каталога, в который будут передаваться метрики.
Конфигурация Unified Agent config.yml
monitoring: port: 16300 status: port: 16301 channels: - name: yc_metrics_channel channel: output: plugin: yc_metrics config: folder_id: "<идентификатор_каталога>" iam: cloud_meta: {} - name: monitoring_1c channel: output: plugin: yc_metrics config: folder_id: "<идентификатор_каталога>" iam: cloud_meta: {} routes: - input: id: linux_metrics_input plugin: linux_metrics config: poll_period: 15s channel: channel_ref: name: yc_metrics_channel - input: plugin: metrics_pull config: url: http://localhost:9095/metrics format: prometheus: {} namespace: app1c channel: pipe: - filter: plugin: transform_metric_label config: label: cluster rename_to: cluster_1c - filter: plugin: transform_metric_labels config: labels: - servicename: "-" - filter: plugin: transform_metric_labels config: labels: - user: "-" - filter: plugin: transform_metric_labels config: labels: - base: "-" - filter: plugin: transform_metric_labels config: labels: - licSRV: "-" channel_ref: name: monitoring_1c import: - /etc/yandex/unified_agent/conf.d/*.ymlВ конфигурации для меток с эндпоинта
/metricsзадан префиксapp1c_. Префикс может быть произвольным.В Yandex Monitoring есть ограничения на метки и их значения:
- имя метки не может быть пустым;
- имя метки и значение метрики могут содержать только латинские буквы;
- нельзя использовать метку
cluster.
Для этих ограничений в файле конфигурации Unified Agent настроено:
- переименование метки
clusterнаcluster_1c; - фильтрация (удаление) меток, которые содержат нелатинские символы:
servicename,user,base,licSRV.
Подробнее о настройке Unified Agent см. в разделе Конфигурирование.
-
Проверьте, что файл конфигурации составлен верно (команда должна вывести содержимое файла):
unified_agent check-config -c /etc/yandex/unified_agent/config.yml -
Перезапустите Unified Agent, чтобы применить обновленную конфигурацию:
sudo systemctl restart unified-agent.service -
Посмотрите статус службы Unified Agent:
sudo systemctl status unified-agent.service
Проверьте, что метрики передаются в Monitoring
-
На главной странице
сервиса Monitoring на панели слева выберите Метрики. -
В строке запроса выберите:
- Каталог, в который собираются метрики.
- Значение метки
service—custom. - Значение метки
name, начинающееся с префиксаapp1c_. Например,app1c_available_performance. - Значение метки
host— имя ВМ кластера «1С:Предприятие».
-
Нажмите кнопку Выполнить запрос.
Создайте дашборд для наблюдения за метриками
Ниже приведен пример дашборда, который позволяет следить за метриками, настроенными в конфигурации экспортера.
-
На главной странице
сервиса Monitoring нажмите Создать дашборд. -
Справа вверху нажмите
и выберите График. -
Переключите строку запроса в текстовый режим. Для этого справа от строки нажмите
. В текстовом режиме удобно добавлять уже готовые запросы. -
Укажите запрос для доступной производительности хоста:
"app1c.available_performance"{folderId = "<идентификатор_каталога>", service = "custom", quantile = "0.99", type = "available", host = "<имя_ВМ_1C>"} -
Справа вверху нажмите
Сохранить. -
Таким же образом добавьте на дашборд графики:
-
Использование клиентских лицензий:
"app1c.client_lic"{folderId = "<your-folder-id>", service = "custom", quantile = "0.99", host = "<имя_ВМ_1C>"} -
Соединения:
"app1c.connect"{folderId = "<your-folder-id>", service = "custom", quantile = "0.99"}
-
Дополнительные настройки дашборда см. в разделе Добавление виджета на дашборд.
Удалите созданные ресурсы
Остановите чтение и запись метрик одним из способов:
- Остановите Unified Agent.
- В файле конфигурации Unified Agent удалите настройки сбора и передачи метрик.
- Удалите Unified Agent.