Масштабирование метрик Prometheus с помощью Grafana Mimir: пошаговая настройка
Это перевод оригинальной статьи Scaling Prometheus Metrics with Grafana Mimir: Step-by-Step Setup and Demo.
Перевод сделан специально для телеграм-канала Мониторим ИТ. Подписывайтесь! Там еще больше полезных постов о мониторинге.
Prometheus отлично подходит для мониторинга, но при масштабировании возникают реальные проблемы, такие как высокая кардинальность, долговременное хранение и высокая доступность. Вот тут-то и приходит на помощь Grafana Mimir.
На недавнем митапе Grafana & Friends x Kubernetes я выступил с докладом и живой демонстрацией того, как Grafana Mimir может масштабировать метрики Prometheus.
В этой статье вы шаг за шагом узнаете обо всем, что я показал в демонстрации.
Что мы рассмотрим
Ограничения Prometheus
Введение в Grafana Mimir
Архитектура и компоненты Mimir
Конфигурация remote write из Prometheus → Mimir
Настройка Grafana → Mimir в качестве источника данных
Визуализация метрик + изучение административного интерфейса
Почему именно Grafana Mimir?
Prometheus — мощная система сбора метрик, но у неё есть следующие проблемы:
- Отсутствует встроенная кластеризация или высокая доступность.
- Только локальное хранилище
- Интенсивное использование памяти при работе с данными высокой кардинальности.
Grafana Mimir — это высокомасштабируемый backend для долгосрочного хранения метрик Prometheus, который решает все эти проблемы.
Архитектура Mimir Architecture (краткий обзор)
Mimir подразделяется компоненты:
- Distributor — принимает remote write от Prometheus
- Ingester — временно хранит данные
- Compactor — компактизирует блоки
- Querier — обрабатывает запросы
- Store-gateway — извлекает блоки из объектного хранилища.
Это делает Mimir горизонтально масштабируемым и совместимым с HA.
Пошаговая настройка
Запуск экземпляра EC2 (виртуальной машины)
Перед установкой чего-либо я запустил экземпляр Amazon EC2, который использовал в качестве демонстрационной среды.
Настройка Prometheus
Скачайте и распакуйте Prometheus:
wget https://github.com/prometheus/prometheus/releases/download/v2.52.0/prometheus-2.52.0.linux-amd64.tar.gz tar -xvzf prometheus-2.52.0.linux-amd64.tar.gz cd prometheus-2.52.0.linux-amd64
Отредактируйте файл prometheus.yml, чтобы включить удаленную запись в Grafana Mimir:
remote_write:
- url: http://localhost:9009/api/v1/push
Настройка Grafana Mimir
wget https://github.com/grafana/mimir/releases/download/v2.12.0/mimir-linux-amd64.zip unzip mimir-linux-amd64.zip chmod +x mimir
Создайте конфигурационный файл demo.yaml (базовая настройка для одного процесса):
# Do not use this configuration in production.
# It is for demonstration purposes only.
multitenancy_enabled: false
blocks_storage:
backend: filesystem
bucket_store:
sync_dir: /tmp/mimir/tsdb-sync
filesystem:
dir: /tmp/mimir/data/tsdb
tsdb:
dir: /tmp/mimir/tsdb
compactor:
data_dir: /tmp/mimir/compactor
sharding_ring:
kvstore:
store: memberlist
distributor:
ring:
instance_addr: 127.0.0.1
kvstore:
store: memberlist
ingester:
ring:
instance_addr: 127.0.0.1
kvstore:
store: memberlist
replication_factor: 1
ruler_storage:
backend: filesystem
filesystem:
dir: /tmp/mimir/rules
server:
http_listen_port: 9009
log_level: error
store_gateway:
sharding_ring:
replication_factor: 1Настройка Grafana
sudo systemctl start grafana-server
- Войдите в Grafana по адресу
http://<ip>:3000(по умолчанию: admin/admin) - Перейдите в Settings → Data Sources → Add Data Source
- Выберите Prometheus
Теперь Grafana подключена к Mimir!
Обзор административного интерфейса Mimir
Эта конфигурация демонстрирует, насколько легко масштабировать Prometheus с помощью Grafana Mimir — без изменения способа сбора метрик.
Подписывайтесь на телеграм-канал Мониторим ИТ, там еще больше полезной информации о мониторинге!