Вокруг да около 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

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

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

См. также

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

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

31720 руб.

27.03.2025    76185    49    36    

59

Мониторинг Системный администратор Программист 1С:Предприятие 8 Россия Платные (руб)

Обработка позволяет использовать подобные КОРП-функциональности механизмы контроля расхода памяти (сеансом на 1 вызов и рабочими процессами), реагируя завершением "тяжелых" вызовов, перезапуском рабочих процессов при чрезмерном потреблении этого важного ресурса.

3660 руб.

03.05.2023    6803    5    0    

6

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

Рассмотрим разнообразные подходы к мониторингу 1С. Организация мониторинга публикаций на IIS при помощи ELK. Мониторинг состояния базы при помощи zabbix и rac. Прямые запросы при помощи самописных скриптов из zabbix.

03.03.2026    599    user1287977    0    

5

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

Объясняем, как связка Prometheus и Grafana помогает выстроить прозрачный и масштабируемый мониторинг: от первых шагов до продвинутых сценариев работы. Учимся собирать метрики, подключать экспортеры, настраивать Push-gateway, визуализировать данные и строить собственные дашборды. Разбираемся, как контролировать сотни и тысячи показателей, включая бизнес-метрики, и как настроить интеграцию Prometheus с 1С. Материал расширяет технический кругозор и демонстрирует, как поднять рабочий мониторинг за 15 минут.

02.03.2026    739    ptica    1    

6

Перенос данных 1C Мониторинг Программист 1С 8.3 1С:Документооборот 1С:ERP Управление предприятием 2 Россия Абонемент ($m)

Простое расширение конфигурации с регламентным заданием для мониторинга ошибок типового обмена с уведомлением на почту.

1 стартмани

29.01.2026    489    1    Triplexx    0    

2

Технологический журнал Мониторинг Системный администратор Программист Бесплатно (free)

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

29.12.2025    6890    leongl    0    

18

HighLoad оптимизация Мониторинг Системный администратор Программист Бесплатно (free)

Делимся опытом поддержки баз 1С с более чем 6 000 одновременно работающих пользователей и рассказываем о ключевых подходах к контролю высоконагруженных систем. Рассмотрим реальные кейсы и дадим ответ на вопрос о том,: что точно надо контролировать. Сравним ElasticSearch и ClickHouse, дадим ссылки на статьи и репозитарии для быстрого старта, а также посмотрим на примеры рабочих столов для анализа логов технологического журнала в ElasticSearch.

19.12.2025    2286    Sergey.Noskov    3    

11

Администрирование СУБД Технологический журнал Мониторинг Системный администратор Программист Бесплатно (free)

Рассказываем, почему высоконагруженным бэкендам на 1С нужен регулярный мониторинг и что происходит, когда его нет: производительность и стабильность деградируют, а обращения пользователей копятся. Показываем, как построили легкую систему наблюдаемости для бэкендов корпоративных порталов. Она включает сбор метрик из технологического журнала, Apdex, журнала регистрации и динамики размеров таблиц с последующим анализом в связке ClickHouse и служебной информационной базы на 1С. Объясняем, какие отчеты и метрики быстрее всего помогают находить критичные проблемы производительности, и демонстрируем интерфейс расследования. Разбираем несколько кейсов оптимизации, найденных по итогам мониторинга, включая доработки функционала БСП «управление доступом» и «присоединенные файлы».

15.12.2025    4406    tystik    1    

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