Что такое exporter в Prometheus?

«Что такое exporter в Prometheus?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Exporter (экспортер) в экосистеме Prometheus — это специализированное приложение, которое собирает метрики из целевой системы (ОС, базы данных, веб-сервера, аппаратного устройства) и предоставляет их в текстовом формате, понятном Prometheus, через HTTP-эндпоинт /metrics.

Принцип работы (Pull-модель):

  1. Exporter запускается рядом с целевым приложением.
  2. Он собирает внутренние метрики приложения (например, количество подключений к БД) или системные метрики (например, загрузку CPU).
  3. Prometheus Server, согласно своей конфигурации (scrape_configs), периодически опрашивает ("скармливает") endpoint экспортера.
  4. Prometheus забирает и сохраняет метрики в своем временном ряду.

Типичная архитектура и примеры:

  • Экспортер как sidecar-контейнер (Kubernetes):

    # Pod с приложением и экспортером для его метрик
    spec:
      containers:
      - name: my-app
        image: my-app:latest
      - name: prometheus-exporter
        image: prom/myapp-exporter:latest
        ports:
        - containerPort: 9102  # Порт, на котором exporter предоставляет /metrics
  • Популярные официальные и community экспортеры:

    • node_exporter — метрики операционной системы (CPU, память, диск, сеть).
    • mysqld_exporter / postgres_exporter — метрики баз данных.
    • nginx-prometheus-exporter — метрики Nginx (stub_status или logs).
    • cadvisor — метрики контейнеров.
    • blackbox_exporter — метрики доступности endpoint (HTTP, TCP, ICMP).

Конфигурация Prometheus для сбора метрик с экспортера:

scrape_configs:
  - job_name: 'node-exporter'
    static_configs:
      - targets: ['node-exporter-host:9100']
  - job_name: 'custom-app'
    static_configs:
      - targets: ['app-host:8080'] # Если приложение само предоставляет /metrics

Exporter — это ключевой компонент, превращающий данные любой системы в метрики, пригодные для мониторинга в Prometheus.