Какие экспортеры (ex-пакеты) для мониторинга ты знаешь?

«Какие экспортеры (ex-пакеты) для мониторинга ты знаешь?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Экспортеры — это ключевые компоненты в стеке Prometheus для сбора метрик из различных систем. Вот с какими я работал:

Для инфраструктуры и ОС:

  • node_exporter — базовый экспортер для метрик Linux/Unix сервера (CPU, память, диск, сеть).
  • windows_exporter — аналог для серверов Windows.

Для контейнеризации и оркестрации:

  • cAdvisor (Container Advisor) — собирает метрики по ресурсам контейнеров. Часто встроен в Kubelet.
  • kube-state-metrics — генерирует метрики о состоянии объектов Kubernetes (поды, деплойменты, сервисы).

Для сетевых сервисов и баз данных:

  • blackbox_exporter — для probing (HTTP, TCP, ICMP) и проверки доступности.
  • nginx/nginx-vts-exporter — для метрик NGINX.
  • postgres_exporter / mysqld_exporter — для метрик соответствующих СУБД.
  • redis_exporter / memcached_exporter — для систем кэширования.

Для облачных провайдеров:

  • cloudwatch_exporter — для вытягивания метрик из AWS CloudWatch в Prometheus.
  • azure_monitor_exporter — аналогично для Azure.

Пример конфигурации Prometheus для scrape job с node_exporter:

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['10.0.1.15:9100', '10.0.1.16:9100']
    relabel_configs:
      - source_labels: [__address__]
        target_label: instance

На практике мы добавляли метки env=prod/staging и role=db/web через relabeling для удобства группировки и алертинга в Grafana и Alertmanager.