Истории успеха наших клиентов — лучшие проекты
Вход/ Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Prometheus Exporter

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

Подключение экспортера

Данные для подключения экспортеров доступны в панели управления кластером, в разделе «Дашборд».

Scr 20251212 Pyre 2

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

Пример запроса к публичному экспортеру:

    
curl -u admin:'пароль' -s https://dbs-exporter.timeweb.cloud/id_экспортера/service/metrics

Особенности реализации

  • Экспортеры доступны на двух эндпоинтах:

    • node_exporter — метрики сервера (например, нагрузка, использование CPU и памяти);

    • db_exporter — метрики базы данных.

  • Если база развернута с репликацией (MySQL или PostgreSQL), метрики нужно собирать с каждой реплики отдельно. Данные для подключения к каждой реплике можно найти на странице «Дашборд».

Scr 20251212 Pyre 3

Типы экспортеров

Экспортеры бывают двух типов:

 

Публичные экспортеры

Приватные экспортеры

Доступ к метрикам

По домену

По IP-адресу внутри приватной сети

Требуется публичный IP

Нет

Нет

Авторизация

Basic Auth

Не требуется

Используемые экспортеры

Чтобы узнать версию конкретного экспортера, используйте команду вида:

    
curl -u admin:'пароль' -s https://db_exporter/metrics | grep '_exporter_build_info'

После выполнения команды вы получите подобный вывод:

    
# HELP postgres_exporter_build_info A metric with a constant '1' value labeled by version, revision, branch, goversion from which postgres_exporter was built, and the goos and goarch for the build. # TYPE postgres_exporter_build_info gauge postgres_exporter_build_info{branch="HEAD",goarch="amd64",goos="linux",goversion="go1.23.3",revision="a324fe37bca5193a293118b940b3df7ab3a8505c",tags="unknown",version="0.16.0"} 1

Значение version="0.16.0" в метке указывает на версию экспортера.

Экспортер для OpenSearch собирается нами вручную, поэтому узнать его версию с помощью команды не получится.

Пример настройки Prometheus

Рассмотрим настройку Prometheus на облачном сервере для сбора метрик с PostgreSQL-кластера.

Убедитесь, что кластер базы данных и облачный сервер находятся в одной приватной сети.

Установка Prometheus

Перейдите на страницу релизов Prometheus и скачайте актуальную версию. Например:

    
wget https://github.com/prometheus/prometheus/releases/download/v3.7.2/prometheus-3.7.2.linux-amd64.tar.gz

Распакуйте архив:

    
tar -xzf prometheus-*.tar.gz

Перейдите в директорию:

    
cd prometheus-3.7.2.linux-amd64

Настройка конфигурации

Откройте файл prometheus.yml для редактирования:

    
nano prometheus.yml

Добавьте в раздел scrape_configs IP-адрес кластера базы данных с нужными портами:

    
- job_name: 'linux-metrics' static_configs: - targets: ['192.168.0.5:9100'] - job_name: 'postgres-metrics' static_configs: - targets: ['192.168.0.5:9308']

Где 192.168.0.5 — приватный IP кластера PostgreSQL.

При использовании публичного экспортера настройка будет выглядеть так:

    
- job_name: 'postgres-public' scheme: https metrics_path: /id_экспортера/service/metrics static_configs: - targets: ['dbs-exporter.timeweb.cloud'] basic_auth: username: 'admin' password: 'пароль'

Чтобы получать метрики сервера, вместо /id_экспортера/service/metrics укажите /id_экспортера/node-exporter/metrics.

Полный пример конфига:

    
global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: "prometheus" # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ["localhost:9090"] # The label name is added as a label `label_name=<label_value>` to any timeseries scraped from this config. labels: app: "prometheus" - job_name: 'linux-metrics' static_configs: - targets: ['192.168.0.5:9100'] - job_name: 'postgres-metrics' static_configs: - targets: ['192.168.0.5:9308']   - job_name: 'postgres-public'     scheme: https   metrics_path: /id_экспортера/service/metrics     static_configs:       - targets: ['dbs-exporter.timeweb.cloud']     basic_auth:       username: 'admin'     password: 'пароль'

Запуск Prometheus

Запустите Prometheus с указанием конфига:

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

По умолчанию веб-интерфейс Prometheus будет доступен по адресу:

    
http://IP_облачного_сервера:9090

Проверка статуса экспортеров

Перейдите во вкладку «Status» → «Targets» в веб-интерфейсе Prometheus и убедитесь, что все job_name отображаются и находятся в статусе «UP».

Для базовой проверки можно выполнить запрос на вкладке «Graph»:

    
up

В результате отобразятся все подключенные экспортеры. Если они работают корректно, вы увидите список метрик с нужными job_name.

Image 20251028172827404

Была ли статья полезна?
Ваша оценка очень важна
Пока нет комментариев