Ответ
В моих проектах я активно использовал стандартные и сторонние экспортеры для сбора метрик из различных компонентов инфраструктуры и приложений.
Основные экспортеры в моем опыте:
- Node Exporter: Для сбора системных метрик с Linux-серверов (CPU, память, дисковое пространство, сетевые интерфейсы, нагрузка). Это основа мониторинга хостов.
- cAdvisor (Container Advisor): Интегрировал для сбора метрик по использованию ресурсов (CPU, память, сеть, файловая система) работающими контейнерами в Docker и Kubernetes-средах.
- Blackbox Exporter: Использовал для мониторинга доступности внешних сервисов по протоколам HTTP, HTTPS, TCP, ICMP и DNS. Например, для проверки, что веб-сайт возвращает код 200 и содержит определенный текст в ответе.
- Экспортеры для баз данных:
- PostgreSQL Exporter для метрик подключений, производительности запросов, репликации.
- MySQLd Exporter для аналогичных метрик СУБД MySQL.
- MongoDB Exporter для мониторинга состояния кластеров MongoDB.
- Экспортеры для очередей и кэшей:
- RabbitMQ Exporter для мониторинга очередей, потребителей, скорости обработки сообщений.
- Redis Exporter для отслеживания использования памяти, количества ключей, количества команд в секунду.
Пример конфигурации Prometheus для сбора метрик с Node Exporter и cAdvisor:
scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['node-exporter:9100']
- job_name: 'cadvisor'
static_configs:
- targets: ['cadvisor:8080']
- job_name: 'blackbox'
metrics_path: /probe
params:
module: [http_2xx]
static_configs:
- targets:
- https://example.com
- https://api.example.com/health
relabel_configs:
- source_labels: [__address__]
target_label: __param_target
- source_labels: [__param_target]
target_label: instance
- target_label: __address__
replacement: blackbox-exporter:9115
Также имею опыт работы с экспортерами для Nginx, HAProxy, Kafka и с написанием собственных простых экспортеров на Python с использованием библиотеки prometheus_client для кастомных метрик приложений.