Вокруг да около Prometheus: Подготовка и установка

23.01.26

Администрирование - Мониторинг

Описания проблем и решений при настройке мониторинга. Мои подготовительные мероприятия.

Решил тоже написать о своем (пока не законченном) опыте настройки мониторинга 1С-ландшафта, с использованием Prometheus.

На это меня побудили некоторые статьи, где все описано в радужных цветах. Типа: "Все уже сделано! Бери, настраивай и радуйся!". Но на деле все сопровождается какими-то нюансами разной степени тяжести.

Всего планируется три статьи:

  • Подготовка (эта статья)
  • Мониторинг кластера 1С
  • Инструментирование конфигураций

Цель статей - описать, с чем и почему мне пришлось дополнительно разбираться в своих около-Prometheus-работах.

 

Литература

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

  • Mastering Prometheus

Автор William Hegedus. Издательство Packt Publishing.

С этой книги началось мое погружение в мир observability, docker и проч. Начал ее читать на песочке Пицунды, в 2024.

Книга оставила великолепные впечатления. Технические аспекты Prometheus расписаны подробно и нескучно. Но на около-литературном английском! Пол-книги пришлось со словарем читать.

  • Kubernetes изнутри

Авторы Вьяс Дж., Лав К.  Издательство DMK Press.

Теоретические знания о Prometheus появились, пришло время переходить к его развертыванию. С windows и установками на хост решил не связываться, пришло время использовать контейнеры.

В предыдущей книге (по Prometheus) все примеры по развертыванию и конфигурированию описаны с использованием кластера Kubernetes. "Автор плохого не порекомендует" - подумал я. Значит тоже буду поднимать кубер (понимающие улыбнулись;). Прочитав четверть книги, понял, что пусть этим kubernetes занимаются специально обученные люди.

Сама книга, думаю, неплохая. Даже начал немного понимать проблематику статей о kubernetes. Побаловался с k8n и helm, узнал про Штурвал.

  • Docker Compose для разработчика

Автор Гадзурас Э. Издательство ДМК Пресс.

От kubernetes я отказался, иду в сторону docker compose.

Книга "Docker Compose для разработчика" для меня оказалась слишком подробной и глубокой... Часть примеров/упражнений у меня не заработала. Тем не менее, основы Compose я получил и (неожиданно;) понял, что нужно бы и про сам Docker почитать.

  • Continious Delivery with Docker and Jenkins

Автор Rafal Leszko. Издательство Packt Publishing. На английском.

Эта книга мне показалась более поверхностной что ли. Кроме самого Docker, описываются и другие темы (например, Compose и Swarm).

Знаний из этой книги мне хватило, чтобы начать читать и писать docker-файлы. Например, написал файл для образа Jenkins-клиента со встроенным OScript.

 
Другая литература 

 

Эксперименты с Docker compose

Перед установкой Prometheus, решил потренироваться на другом ПО. И, в принципе, не прогадал, хоть это и отодвигало основную цель. Поскольку был выбран путь инсталляций с использованием Docker Compose, то и пробовал разворачивать запуская docker-compose.yml.

  • GitLab-ce

Решено, что GitLab придет на замену текущей Gitea.
Откуда у меня взялся docker-compose-файл - уже и не помню. Может с официального сайта, может нашел готовый и допилил.

Изначально в docker-compose был только запуск самого GitLab (без Runner). В gitlab.rb были какие-то минимальные правки.

Затем вместо использования self-signed сертификата настроил корпоративный.

Затем (уже намного позже) решил, что нужен и GitLab Runner. В следующей статье напишу, зачем. docker-compose немного усложнился.

Затем решил поэкспериментировать с Prometheus, встроенным в GitLab.
К времени этого эксперимента, Prometheus уже вполне работал, а я каким-то образом прочитал, что в GitLab есть свой bundle Prometheus, для сбора метрик. Как бы, зачем напрягать хост лишним ПО, если оно и так уже есть.

В официальной документации процесс переключения на внешний Prometheus описан достаточно подробно. Главное, не забыть открыть нужные порты экспортеров в docker-compose (секция ports описания сервиса), иначе GitLab не запустится.

Но это так и осталось экспериментом. Решил вернуться к использованию bundle.

 
 Текущий docker-compose.yml для GitLab

 

SonarQube, Jenkins

В принципе, ничего особо интересного. Для SQ прописан сервис Postgres, для хранения данных SQ.

Текущий Jenkins решено было оставить без изменений. Разве что, попробовал собрать образ Jenkins-клиента, со встроенным OScript и gitsync. Может когда-нибудь и пригодится.

 
 
 dockerfile (ssh-клиент Jenkins + OScript + gitsync)
 

Установка Prometheus 

Установка Prometheus прошла достаточно буднично - все восторги по поводу контейнеризации уже поулеглись. Главное, нужно было найти хороший docker-compose файл. 

Нужные файлы найдены тут (потом дорабатывались по необходимости). Помимо самого Prometheus, также поднимаются Grafana и экспортеры. 

Hot reload

Конечно же, мне захотелось перезапускать Prometheus при изменениях его конфигурации (которая в prometheus.yml). Читал, что можно настроить такую возможность - чтобы запуском curl можно было применить какие-то новые изменения. А то ведь делал docker compose down/up.

Да, нужно было установить нужный флаг запуска (--web.enable-lifecycle):

services:
...
  prometheus:
    ...
    command:
      ....
      - '--web.enable-lifecycle'

Но еще нужно было указать basic-аутентификацию:

curl -X POST http://user:password@prom-server:9090/-/reload

До этого не сразу додумался. Причем, ни гугл-поиск, ни ИИ-бот мне не подсказали, почему не работала перезагрузка конфигурации.

Remote write

Как мы знаем, Prometheus - это ПО для мониторинга другого ПО. Отсюда следующие идеологические выводы:

  1. Должна мониториться именно информационная система, без ухода в мелкие детали. Предполагается, что для мелких деталей должны быть предназначены logs and traces.
  2. Мониторинг - это что-то достаточно краткосрочное, чтобы своевременно выявить какие-то непредусмотренные/нежелательные режимы работы. Предполагается, что хранить глубокую историю данных система мониторинга хранить не будет.

Собственно, таким путем Prometheus и идет: 

  • Нежелательно работать с метриками высокой кардинальности;
  • Нежелательно хранить данные (метрики) на большую глубину.

Но в реалиях мы можем захотеть высокую кардинальность. Или просто вынуждены иметь ее, т.к. нужный нам экспортер выдает только детальные метрики.

И еще более вероятно, что мы захотим хотя бы на полгода хранить метрики.

Для этого в Prometheus можно использовать remote write - транслировать метрики в какое-то другое хранилище. Чаще всего упоминается трансляция в VictoriaMetrics (иногда далее, VM).

Настроить remote write, в простейшем случае, очень просто.

  1. Поднять хранилище (VM).
  2. Настроить конфиг Prometheus для трансляции метрик во внешнее хранилище.

Поднять хранилище можно примерно так:

 
 docker-compose.yml (Prometheus + VictoriaMetrics, частичный)
 
 

 Чтобы включить remote write, можно это прописать в default-настройки prometheus.yml:

 
 prometheus.yml (частичный, для remote write)

Можно даже настроить Prometheus, чтобы он только как агент remote write работал (см. --enable-feature=agent). При этом отключается часть сервисов и задействуются оптимизации WAL.
Я не пробовал этот режим.

Также, remote write можно более точно настроить под крейсерскую нагрузку. Об этом читал в Mastering Prometheus. Когда наконец организую у себя устойчивую конфигурацию источников, то займусь этим.

Понятно, что дополнительное ПО и трансляция добавляют свой оверхед по расходованию ресурсов. В том же Mastering Prometheus говориться о повышении расходования ресурсов на 10-15%. Но у меня получилась немного другая картина.

Если смотреть на CPU, то получилось примерно так.

Возьмем начальные расходования CPU за x. Добавилось 0.4x в контейнере Prometheus (накладные расходы на remote write). И добавилось 0.9x на контейнер VictoriaMetrics.
Т.е., было x, стало 2.3x.

Но все это меркнет на фоне расходов GitLab:))

Native histograms

Вот, в Prometheus есть такой тип метрик. Это гистограмма с динамическими бакетами. Потенциально, это более точный вид метрик для агрегации показателей. Также, Native histograms можно снабжать экземплярами (exemplars) - это какое-то конкретное значение показателя с детальными метками. Выгружаются не в текстовом формате, а в Protobuf (т.е., метрики так просто не сгенерировать конкатенацией строк).

Вообще, экспортеров, которые выводят такой вид метрик, очень мало. Но один из интересных мне экспортеров таки выдает гистограммы этого вида.

До версии Prometheus 3.8, использование таких гистограмм было "экспериментальной" опцией и включалось специальным feature-флагом --enable-feature=native-histograms . Также, в prometheus.yml нужно указать, что используется чтение Native histograms - например, в разделе настроек по умолчанию указать scrape_native_histograms: true .  

Для меня стало определенной проблемой, что такие гистограммы не передаются по remote write в VictoriaMetrics... Для передачи native histograms по remote write, в конфигурации remote_write предусмотрена настройка: нужно указать send_native_histograms: true. Но у меня так трансляция не заработала. VM считывать такие гистограммы из экспортеров не умеет - у нее есть свой подобный вид гистограмм, но попроще.

В общем, только из-за Native histograms я остался на Prometheus - а так, можно было бы только на VM построить мониторинг.

 

Альтернативы Prometheus

Можно задуматься об использовании Prometheus-совместимого ПО, более оптимизированного под высокую кардинальность, долгосрочное хранение, с меньшим потреблением ресурсов.

Что можно рассмотреть.

  1. VictoriaMetrics, без лишнего звена в виде Prometheus (упоминал выше).
    VM может сама делать scrape по тем же конфигурационным файлам, что использует Prometheus. Есть и свой AlertManager.
    Синтаксис MetricsQL на 100% совместим с PromQL (но где-то на 75% по сходимости результатов). Для дашбордов Grafana просто указываем VM, как источник данных типа Prometheus. 
  2. Deckhouse Prom++. Это российский форк Prometheus, с оптимизациями (хабр). С оф.сайта: 
    "Open Source-система мониторинга: Prometheus, переписанный на С++
    Потребляет до 10 раз меньше памяти, чем обычный Prometheus
    До 3 раз эффективней, чем VictoriaMetrics".
    Кто знает, может придется на него уехать - зарегистрирован в реестре российского ПО.

 

Промежуточные итоги

На предоставленной мне виртуальной машине (Debian) в контейнерах работает следующее ПО:

  • Gitlab-ce
  • SonarQube
  • Пара Postgree
  • Prometheus
  • Экспортеры
  • VictoriaMetrics

Можно уже переходить к настройке экспортеров для наблюдения за нашими ИС. Об этом в следующей статье.

Вступайте в нашу телеграмм-группу Инфостарт

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

31720 руб.

27.03.2025    92271    69    44    

77

Журнал регистрации Мониторинг Системный администратор Разработчик 1С 8.3 Абонемент ($m)

Мониторинг журнала регистрации - расширение, которое визуализирует ошибки из журнала регистрации в разрезе приложений. Расширение позволит выявить всплеск ошибок, подсветит динамические обновления и покажет картину рабочего процесса.

1 стартмани

07.11.2026    398    1    mrcamomile    8    

4

Мониторинг Сервера Системный администратор 1С 8.3 Бесплатно (free)

Шесть блоков технического отчёта по кластеру 1С: площадка, процессы, нагрузка, диск, копии, журналы за названный период — и открытые вопросы. Цифры из двух реальных прогонов на Windows Server 2019 (srvinfo 119 ГБ, 444 бэкапа и ни одного по нужной базе, висящий сеанс с лицензией). Что собирать, чего не делать, и где агент ошибся.

02.11.2026    291    netbka    0    

1

Журнал регистрации Инструменты администратора БД Технологический журнал Мониторинг Системный администратор Разработчик 1С 8.3 1С 8.5 1С:Управление торговлей 11 Абонемент ($m)

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

3 стартмани

19.10.2026    456    6    windsurf    0    

3

Мониторинг Системный администратор Абонемент ($m)

Небольшая программа для рабочих мест и серверов: следит за выбранными службами Windows (сервер 1С, СУБД, УТМ, лицензии) и сама запускает их, если служба остановилась или зависла. Полная редакция вдобавок не даёт пользователям запускать программы не из списка разрешённых или из списка запрещённых.

1 стартмани

08.10.2026    437    4    IronCAT09    0    

1

Мониторинг Обновление 1С Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Отложенное обновление идёт третий день, штатная форма пишет "Выполнено: N из M", и непонятно, ждать или разбираться. Проверьте у себя: в БСП 3.1 почасовая история обработанных объектов, время завершения каждого обработчика, попытки и текст ошибки уже лежат в регистрах, не хватает только деления. Разобрал, где это хранится, как считать прогноз двумя скоростями (по объектам и по обработчикам) и как найти обработчик, который держит очередь, в том числе когда БСП записала ему "зацикливание", а держала его блокировка. Проверено на копии УТ 11.5 с 215 настоящими обработчиками типовой: очередь шла 4 часа, прогноз за 2 часа до конца ошибся на 5 минут. В конце обработка, которая отвечает одной строкой.

30.09.2026    865    nedomolkov.ivan    0    

1

Мониторинг Обновление 1С Системный администратор Разработчик 1С 8.3 Абонемент ($m)

Внешняя обработка одной строкой говорит, идёт отложенное обновление или стоит, когда закончится и какой обработчик держит очередь. Скорость по почасовой истории БСП и по завершённым обработчикам, остаток по плану обмена обновления, виновник по регистру обработчиков и журналу регистрации. Выгрузка состояния в Markdown для нейросети. Только чтение. Нужен регистр "Обработчики обновления" из свежих версий БСП 3.1 (проверено на УТ 11.5.22).

10 стартмани

30.09.2026    524    0    nedomolkov.ivan    0    

0

Мониторинг Системный администратор Разработчик 1С 8.3 Бесплатно (free)

Регламентное задание включено, расписание заполнено, ошибок в журнале регистрации нет, а данные не приходят. Проверьте у себя форму "Регламентные и фоновые операции": если в колонке результата пусто, это не значит, что всё хорошо, это значит, что задание не запускалось. Мы собрали стенд на копии рабочей УТ 11.5 и прошли все места, где задание застревает до своего кода: флаг блокировки на кластере, признак копии базы у БСП, пользователь в карточке задания, функциональная опция, расписание, которое не наступит. У каждого места код проверки. Самое неприятное подтвердилось на платформе 8.3.27: задание под пользователем, которого нет в базе, не оставляет в журнале регистрации ни одной строки. Плюс как по журналу отличить ручной запуск от запуска сервером и как увидеть задание, которое работает вхолостую.

30.09.2026    991    nedomolkov.ivan    0    

1
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. chng 30.01.26 10:28 Сейчас в теме
Вы бы хоть задачу свою кратко описали, тем более планируете цикл статей.
А так из вашей первой статьи совершенно не понятно, а зачем вам вот это вот всё?
2. ImHunter 351 30.01.26 11:16 Сейчас в теме
(1) Вот прямо в начале)
На это меня побудили некоторые статьи, где все описано в радужных цветах. Типа: "Все уже сделано! Бери, настраивай и радуйся!". Но на деле все сопровождается какими-то нюансами разной степени тяжести.
....
Цель статей - описать, с чем и почему мне пришлось дополнительно разбираться в своих около-Prometheus-работах.
3. chng 30.01.26 11:49 Сейчас в теме
(2) У вас там даже больше написано: "...мониторинга 1С-ландшафта,..."
Только это не раскрывает сути, зачем вам прометей и еще куча приблуд вокруг него.
4. ImHunter 351 30.01.26 11:55 Сейчас в теме
(3) Про мониторинг ландшафта будет написано позже. Как бы, плановые статьи на это намекают - "Мониторинг кластера 1С", Инструментирование конфигураций".
Зачем мне прометей - это не суть ведь. У меня нет цели в агитации использования Prometheus.
Но если кто-то решит заняться настройкой Prometheus для мониторинга 1С, то, надеюсь, мои тычки на грабли этому кому-то пригодятся.
5. ImHunter 351 30.01.26 12:40 Сейчас в теме
(3) Хотя... Немного расскажу, зачем мне Prometheus.
Начальной целью, вообще, был экспорт ЖР и ТЖ (в ClickHouse, скорее всего). Но есть опасения, что это будет ресурсоемко. Поэтому решил сначала раскатать Prometheus, чтобы видеть нагрузку.
Но потом увяз коготком, и пошло-поехало. Решил сначала что-то более-менее полезное по текущим задачам взять от Prometheus.
Для отправки сообщения требуется регистрация/авторизация