<div><img src="https://top-fwz1.mail.ru/counter?id=3548135;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div>
Managed Kubernetes — разверните готовый кластер за 5 минут →
Вход / Регистрация
На главную
25eb9e0a-a5a8-472a-ace7-940b8bd2adf0
Облачные сервисы

Prometheus Exporter

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

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

  • Эндпойнты экспортеров доступны только в приватной сети. Перед использованием убедитесь, что сервер с Prometheus находится в той же приватной сети, что и кластер DBaaS.

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

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

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

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

Image 20251028164040472

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

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

curl -s http://private_IP:9308/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.

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

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']

Запуск Prometheus

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

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

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

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

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

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

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

up

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

Image 20251028172827404

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