---
title: "Подключение Prometheus Exporter к кластерам баз данных"
description: "Подключение Prometheus Exporter к кластерам баз данных. Документация и инструкции по использованию и настройке облачных сервисов Timeweb Cloud."
---

# Подключение Prometheus Exporter

> Полный индекс документации для ИИ-агентов: [llms.txt](https://timeweb.cloud/llms.txt).

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

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

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

![Scr 20251212 Pyre 2](https://content.timeweb.com/assets/68a19c5f-d27e-43c2-85c6-3753023512d1.png?width=1706&height=1208)

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

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

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

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

-   Сбор метрик доступен только в [BGP-сетях](https://timeweb.cloud/docs/vpc/managing-bgp-networks).
    

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

-   `node_exporter` — метрики сервера (например, нагрузка, использование CPU и памяти);
    
-   `db_exporter` — метрики базы данных.
    

-   Если база развернута с репликацией ([MySQL](https://timeweb.cloud/docs/dbaas/mysql#replikaciya) или [PostgreSQL](https://timeweb.cloud/docs/dbaas/postgresql#replikaciya)), метрики нужно собирать с каждой реплики отдельно. Данные для подключения к каждой реплике можно найти на странице «Дашборд».
    

![Scr 20251212 Pyre 3](https://content.timeweb.com/assets/053ca045-2315-4a61-bf24-6d828779e29c.png?width=1706&height=1208)

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

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

-   Публичные — работают по HTTPS и доступны по доменному имени.
-   Приватные — доступны только [внутри приватной сети BGP](https://timeweb.cloud/docs/vpc/managing-bgp-networks/adding-services-to-bgp).

|  | **Публичные экспортеры** | **Приватные экспортеры** |
| --- | --- | --- |
| **Доступ к метрикам** | По домену | По IP-адресу внутри приватной сети |
| **Требуется публичный IP** | Нет | Нет |
| **Авторизация** | Basic Auth | Не требуется |

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

| **Кластер DBaaS** | **Экспортер** |
| --- | --- |
| MySQL | [MySQL Server Exporter](https://github.com/prometheus/mysqld_exporter) |
| PostgreSQL | [PostgreSQL Server Exporter](https://github.com/prometheus-community/postgres_exporter) |
| MongoDB | [MongoDB Exporter](https://github.com/percona/mongodb_exporter) |
| RabbitMQ | [RabbitMQ Exporter](https://github.com/kbudde/rabbitmq_exporter) |
| Valkey | [Prometheus Valkey & Redis Metrics Exporter](https://github.com/oliver006/redis_exporter) |
| Kafka | [JMX Exporter](https://github.com/prometheus/jmx_exporter) |
| OpenSearch | [Prometheus Exporter Plugin for OpenSearch](https://github.com/opensearch-project/opensearch-prometheus-exporter) |
| ClickHouse | [Встроенный экспортер](https://clickhouse.com/docs/interfaces/formats/Prometheus) |

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

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

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

```bash
# 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-кластера.

Убедитесь, что кластер базы данных и облачный сервер находятся в [одной приватной сети](https://timeweb.cloud/docs/vpc/managing-bgp-networks/adding-services-to-bgp).

### Установка Prometheus

Перейдите на страницу [релизов Prometheus](https://prometheus.io/download/) и скачайте актуальную версию. Например:

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

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

```bash
tar -xzf prometheus-*.tar.gz
```

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

```bash
cd prometheus-3.7.2.linux-amd64
```

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

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

```bash
nano prometheus.yml
```

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

```yaml
  - 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.

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

```yaml
  - 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`.

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

```yaml
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 с указанием конфига:

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

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

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

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

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

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

```shell
up
```

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

![Image 20251028172827404](https://content.timeweb.com/assets/aef4c1cb-737e-4414-82fd-c9acc0500161.png?width=2610&height=1434)

_Список метрик в интерфейсе [Prometheus](https://prometheus.io/)_
