Prometheus Redis

Материал из Документация Ключ-АСТРОМ
Версия от 00:10, 29 сентября 2026; Azubarev (обсуждение | вклад) (Новая страница: «= Prometheus Redis = Расширение предназначено для мониторинга Redis по метрикам Prometheus, публикуемым Redis Exporter. Расширение собирает показатели производительности Redis и самого экспортёра, создаёт связанные сущности Redis и Exporter и добавляет готовую обзорную панель. '''...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Prometheus Redis

Расширение предназначено для мониторинга Redis по метрикам Prometheus, публикуемым Redis Exporter.

Расширение собирает показатели производительности Redis и самого экспортёра, создаёт связанные сущности Redis и Exporter и добавляет готовую обзорную панель.

Идентификатор расширения: prometheus-redis

Схема работы

Redis
  |
  | команды INFO, CONFIG, SLOWLOG и другие
  v
Redis Exporter
  |
  | Prometheus /metrics
  v
EEC
  |
  v
Ключ-АСТРОМ

Расширение не подключается к Redis напрямую. Перед настройкой необходимо установить и запустить Redis Exporter.

Возможности

  • контроль доступности Redis;
  • мониторинг памяти и фрагментации;
  • контроль клиентов и соединений;
  • анализ выполненных и отклонённых команд;
  • мониторинг ключей, попаданий и промахов кеша;
  • контроль удаления и истечения срока действия ключей;
  • мониторинг RDB и AOF;
  • контроль репликации;
  • сбор сетевых показателей;
  • мониторинг состояния Redis Exporter;
  • расчёт коэффициента попаданий в кеш;
  • создание сущностей Redis и Exporter.

Требования

  • Redis Exporter должен иметь сетевой доступ к Redis.
  • Prometheus endpoint экспортёра должен быть доступен с сервера EEC.
  • Межсетевой экран должен разрешать подключения от EEC к Redis Exporter.
  • Пользователь Redis должен иметь права, необходимые экспортёру для получения статистики.
  • Для каждого Redis Exporter рекомендуется задавать уникальное имя scraper.

По умолчанию Redis Exporter публикует метрики по адресу:

http://exporter.example.local:9121/metrics

Установка Redis Exporter

Redis Exporter можно запустить как отдельный процесс, контейнер или компонент Kubernetes.

Пример файла переменных окружения:

REDIS_ADDR=redis://redis.example.local:6379
REDIS_USER=monitoring
REDIS_PASSWORD=<password>
REDIS_EXPORTER_WEB_LISTEN_ADDRESS=0.0.0.0:9121

Пример запуска контейнера:

docker run -d \
  --name redis-exporter \
  --restart unless-stopped \
  --env-file /etc/redis-exporter.env \
  -p 9121:9121 \
  ghcr.io/oliver006/redis_exporter:<version>

Используйте протестированную в вашей среде версию Redis Exporter. Пароль Redis рекомендуется хранить в защищённом файле или системе управления секретами.

Проверьте работу экспортёра:

curl http://exporter.example.local:9121/metrics

В ответе должны присутствовать метрики с префиксом redis_. Метрика redis_up должна иметь значение 1.

Защита Redis Exporter

Доступ к порту 9121 рекомендуется разрешать только с серверов EEC и других систем мониторинга.

Redis Exporter также поддерживает Basic-аутентификацию:

REDIS_EXPORTER_BASIC_AUTH_USERNAME=monitoring
REDIS_EXPORTER_BASIC_AUTH_PASSWORD=<password>

Если Basic-аутентификация включена, те же учётные данные необходимо указать при настройке Prometheus endpoint в Ключ-АСТРОМ.

Установка расширения

  1. Скачайте пакет расширения.
  2. В интерфейсе Ключ-АСТРОМ откройте раздел управления расширениями.
  3. Загрузите архив расширения.
  4. Откройте расширение prometheus-redis.
  5. Добавьте конфигурацию мониторинга.
  6. Выберите удалённый режим выполнения.
  7. Укажите группу EEC, с которой доступен Redis Exporter.
  8. Добавьте Prometheus endpoint.
  9. Выберите необходимые наборы функций.
  10. Сохраните и активируйте конфигурацию.

Настройка подключения

Укажите URL Prometheus endpoint:

http://exporter.example.local:9121/metrics

Если Redis Exporter защищён Basic-аутентификацией, выберите соответствующий тип аутентификации и укажите имя пользователя и пароль.

В поле «If multiple separate scrapers are used please enter name» укажите понятное уникальное имя экспортёра, например:

redis-exporter-production

Значение добавляется в измерение scrapername и используется при создании сущности Exporter.

Мониторинг нескольких Redis

Для каждого отдельного Redis Exporter можно создать собственный endpoint и указать уникальное значение scrapername.

Redis Exporter также поддерживает multi-target режим через endpoint:

http://exporter.example.local:9121/scrape?target=redis://redis.example.local:6379

При использовании multi-target режима создайте отдельный endpoint для каждого контролируемого Redis и убедитесь, что адрес Redis корректно закодирован в URL.

Наборы функций

Расширение позволяет отдельно включать следующие группы показателей:

  • память и аллокатор;
  • клиенты и соединения;
  • команды Redis;
  • базы данных и keyspace;
  • удаление и истечение ключей;
  • кластер и репликация;
  • RDB и AOF;
  • процессор, сеть и процесс Redis;
  • Pub/Sub и модули;
  • состояние Redis Exporter;
  • процесс и среда Go экспортёра.

Для базового мониторинга рекомендуется включить:

  • Memory metrics;
  • Client metrics;
  • Connected metrics;
  • Command metrics;
  • Database metrics;
  • Keyspace metrics;
  • Replication metrics;
  • Exporter metrics.

Набор Standalone scraper metrics содержит показатели процесса Redis Exporter и среды Go.

Не включайте ненужные наборы функций: метки Prometheus автоматически становятся измерениями и могут увеличить количество временных рядов.

Основные метрики

Группа Метрики Назначение
Доступность ru.ruscomtech.extension.prometheus_redis-redis_up

ru.ruscomtech.extension.prometheus_redis-redis_uptime_in_seconds

Доступность и время работы Redis.
Память ru.ruscomtech.extension.prometheus_redis-redis_memory_used_bytes

ru.ruscomtech.extension.prometheus_redis-redis_memory_max_bytes
ru.ruscomtech.extension.prometheus_redis-redis_memory_used_rss_bytes
ru.ruscomtech.extension.prometheus_redis-redis_mem_fragmentation_ratio

Использование памяти и её фрагментация.
Клиенты ru.ruscomtech.extension.prometheus_redis-redis_connected_clients

ru.ruscomtech.extension.prometheus_redis-redis_blocked_clients
ru.ruscomtech.extension.prometheus_redis-redis_rejected_connections_total.count

Подключённые и заблокированные клиенты, отклонённые подключения.
Команды ru.ruscomtech.extension.prometheus_redis-redis_commands_processed_total.count

ru.ruscomtech.extension.prometheus_redis-redis_commands_failed_calls_total.count
ru.ruscomtech.extension.prometheus_redis-redis_commands_rejected_calls_total.count

Выполненные, завершившиеся ошибкой и отклонённые команды.
Keyspace ru.ruscomtech.extension.prometheus_redis-redis_keyspace_hits_total.count

ru.ruscomtech.extension.prometheus_redis-redis_keyspace_misses_total.count
func:ru.ruscomtech.extension.prometheus-redis_keyspace_cache_ratio.count

Попадания, промахи и рассчитанный коэффициент попаданий в кеш.
Базы данных ru.ruscomtech.extension.prometheus_redis-redis_db_keys

ru.ruscomtech.extension.prometheus_redis-redis_db_keys_expiring
ru.ruscomtech.extension.prometheus_redis-redis_db_avg_ttl_seconds

Количество ключей и среднее время жизни.
Удаление ключей ru.ruscomtech.extension.prometheus_redis-redis_evicted_keys_total.count

ru.ruscomtech.extension.prometheus_redis-redis_expired_keys_total.count

Ключи, удалённые из-за нехватки памяти или истечения TTL.
Репликация ru.ruscomtech.extension.prometheus_redis-redis_master_repl_offset

ru.ruscomtech.extension.prometheus_redis-redis_replication_backlog_bytes
ru.ruscomtech.extension.prometheus_redis-redis_replica_resyncs_full

Состояние журнала репликации и повторной синхронизации.
Сеть ru.ruscomtech.extension.prometheus_redis-redis_net_input_bytes_total.count

ru.ruscomtech.extension.prometheus_redis-redis_net_output_bytes_total.count

Входящий и исходящий сетевой трафик.
Экспортёр ru.ruscomtech.extension.prometheus_redis-redis_exporter_last_scrape_error

ru.ruscomtech.extension.prometheus_redis-redis_exporter_last_scrape_duration_seconds
ru.ruscomtech.extension.prometheus_redis-redis_exporter_scrapes_total.count

Ошибки, продолжительность и количество опросов Redis Exporter.

Наличие отдельных метрик зависит от версии Redis, конфигурации Redis Exporter и включённых возможностей Redis.

Сущности и топология

Расширение создаёт следующие сущности:

  • Redis — контролируемый экземпляр Redis;
  • Exporter — экземпляр Redis Exporter.

Сущность Redis связывается с соответствующим Exporter отношением «дочерняя сущность».

Для идентификации Redis используются адрес хоста, TCP-порт и доступные измерения инфраструктуры.

Обзорная панель

В состав расширения входит готовая панель «Redis Extension 2.0». Она отображает:

  • доступность экземпляров Redis;
  • количество выполненных команд;
  • использование памяти;
  • попадания и промахи кеша;
  • соединения;
  • удалённые и просроченные ключи;
  • состояние репликации;
  • показатели Redis Exporter.

Расширение также добавляет страницы сущностей Redis и Exporter.

Проверка работы

После активации конфигурации убедитесь, что:

  • endpoint Redis Exporter доступен с сервера EEC;
  • в ответе присутствуют метрики redis_*;
  • метрика redis_up имеет значение 1;
  • конфигурация расширения не содержит ошибок;
  • появляются сущности Redis и Exporter;
  • данные отображаются на обзорной панели.

Если метрики экспортёра поступают, но метрики Redis отсутствуют, проверьте:

  • адрес Redis в конфигурации экспортёра;
  • имя пользователя и пароль Redis;
  • сетевой доступ от экспортёра к Redis;
  • значение redis_exporter_last_scrape_error.

История изменений

Версия Изменения
20.22.13
  • Добавлен сбор метрик Redis через Redis Exporter.
  • Добавлены тематические наборы метрик памяти, клиентов, команд, keyspace, репликации, RDB и AOF.
  • Добавлен расчёт коэффициента попаданий в кеш.
  • Добавлены сущности Redis и Exporter.
  • Добавлена готовая обзорная панель.