Redis

Redis — высокопроизводительное хранилище данных в оперативной памяти, используемое в качестве кэша, брокера сообщений или базы данных. Мониторинг Redis позволяет отслеживать использование памяти, производительность команд, состояние репликации, количество ключей и другие критичные метрики для обеспечения стабильной работы.

Примечание

Данные с экспортеров могут использоваться для различных продуктов. Обратите внимание на использование тегов product и component в документации к конкретному продукту

Способы мониторинга

В зависимости от версии Redis доступны два способа мониторинга:

Встроенные Prometheus метрики

Современные версии Redis (начиная с версии 7.0) имеют встроенную поддержку метрик в формате Prometheus. Это наиболее простой и рекомендуемый способ мониторинга.

Шаг 1: Настройка Redis

Включите экспорт метрик в конфигурационном файле Redis (redis.conf):

# Включить экспорт метрик Prometheus
metrics-enabled yes

# Порт для метрик (опционально, по умолчанию используется основной порт + 1000)
# metrics-port 16379

Или через командную строку при запуске:

redis-server --metrics-enabled yes

Предупреждение

После изменения конфигурации необходимо перезапустить Redis:

sudo systemctl restart redis

Шаг 2: Проверка доступности метрик

Убедитесь, что метрики доступны по адресу:

curl http://localhost:16379/metrics

Должны отображаться метрики в формате Prometheus.

Примечание

Если метрики недоступны, проверьте, что Redis запущен с включенным metrics-enabled и порт метрик доступен.

Шаг 3: Настройка агента для встроенных метрик

Добавьте источник метрик в конфигурацию агента через UI или файл конфигурации.

Через UI

  1. Откройте раздел настройки агента

  2. Добавьте новый источник данных

  3. Укажите адрес: http://<redis-host>:16379/metrics

Через файл конфигурации

metrics:
  sources:
    - name: redis
      url: http://localhost:16379/metrics
      interval: 30s
      labels:
        product: redis
        component: database

Шаг 4: Визуализация встроенных метрик

Рекомендуемые дашборды для Grafana:

Примечание

Подробнее о встроенных метриках Redis читайте в официальной документации Redis.

redis_exporter

Для версий Redis ниже 7.0 используйте внешний экспортер redis_exporter.

Предупреждение

Этот способ рекомендуется только для старых версий Redis. Для новых версий используйте встроенные метрики.

Шаг 1: Подготовка Redis

Убедитесь, что Redis доступен и работает. Если Redis защищен паролем, подготовьте учетные данные для подключения.

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

Настройте параметры подключения через аргументы командной строки или переменные окружения.

Вариант 1: Параметры командной строки

--redis.addr=redis://localhost:6379
--redis.password=your_secure_password

Вариант 2: Переменная окружения

export REDIS_PASSWORD="your_secure_password"

Шаг 3: Настройка агента для redis_exporter

Добавьте экспортер в конфигурацию агента через UI или файл конфигурации.

Настройка через UI

  1. Откройте раздел настройки агента

  2. Добавьте новый экспортер redis_exporter

  3. Укажите параметры запуска

Настройка через файл конфигурации

exporters:
  enabled: true
  exporters:
    - name: redis_exporter
      start_type: args
      args: |
        --redis.addr=redis://localhost:6379
        --redis.password=$REDIS_PASSWORD
        --web.listen-address=0.0.0.0:9121
      address: 127.0.0.1:9121
      labels:
        product: redis
        component: database
        redis_version: "6.2"

Примечание

Если используется переменная окружения REDIS_PASSWORD, она должна быть доступна агенту при запуске экспортера.

Шаг 4: Проверка работы redis_exporter

Убедитесь, что метрики доступны:

curl http://localhost:9121/metrics

Должны отображаться метрики в формате Prometheus, включая метрики Redis.

Шаг 5: Визуализация redis_exporter

Рекомендуемые дашборды для Grafana:

Примечание

Подробнее о настройке redis_exporter читайте в документации экспортера и официальном репозитории.

Ключевые метрики для мониторинга

При настройке мониторинга обратите внимание на следующие группы метрик:

  • Память: использование памяти, фрагментация памяти, максимальный объем памяти

  • Производительность: операции в секунду, время выполнения команд, медленные команды

  • Ключи: количество ключей, время жизни ключей, истечение ключей

  • Репликация: состояние реплик, задержки репликации, лаг репликации

  • Клиенты: количество подключенных клиентов, максимальное количество клиентов

  • Персистентность: состояние RDB и AOF, частота сохранений

  • Ошибки: количество ошибок, ошибки памяти, ошибки репликации

Собираемые метрики Redis

Ниже представлен список основных метрик, собираемых Redis (встроенные метрики или через redis_exporter), с их описанием и назначением.

Метрики общего состояния (redis_up, redis_*)

Метрика

Тип

Описание

redis_up

Gauge

Доступность Redis (1 = доступен, 0 = недоступен)

redis_uptime_in_seconds

Gauge

Время работы сервера в секундах

redis_version

Gauge

Версия Redis (в виде метки)

Метрики памяти (redis_memory_*)

Метрика

Тип

Описание

redis_memory_used_bytes

Gauge

Использованная память в байтах

redis_memory_peak_bytes

Gauge

Пиковое использование памяти в байтах

redis_memory_max_bytes

Gauge

Максимальный объем памяти в байтах

redis_memory_fragmentation_ratio

Gauge

Коэффициент фрагментации памяти

redis_memory_rss_bytes

Gauge

Память, выделенная операционной системой (RSS) в байтах

redis_memory_used_memory_dataset_bytes

Gauge

Память, используемая для данных в байтах

redis_memory_used_memory_overhead_bytes

Gauge

Память, используемая для накладных расходов в байтах

Метрики команд (redis_commands_*)

Метрика

Тип

Описание

redis_commands_processed_total

Counter

Общее количество обработанных команд

redis_commands_total

Counter

Количество команд по типам (get, set, и т.д.)

redis_instantaneous_ops_per_sec

Gauge

Операций в секунду

redis_commands_duration_seconds_total

Counter

Общее время выполнения команд в секундах

redis_commands_duration_seconds

Histogram

Распределение времени выполнения команд

Метрики ключей (redis_keys_*)

Метрика

Тип

Описание

redis_keyspace_keys

Gauge

Количество ключей в базе данных

redis_keyspace_expires

Gauge

Количество ключей с установленным временем истечения

redis_keyspace_avg_ttl_seconds

Gauge

Среднее время жизни ключей в секундах

redis_expired_keys_total

Counter

Количество истекших ключей

redis_evicted_keys_total

Counter

Количество вытесненных ключей (при нехватке памяти)

Метрики клиентов (redis_clients_*)

Метрика

Тип

Описание

redis_clients_connected

Gauge

Количество подключенных клиентов

redis_clients_max_connected

Gauge

Максимальное количество подключений

redis_clients_blocked

Gauge

Количество заблокированных клиентов

redis_clients_rejected_connections_total

Counter

Количество отклоненных подключений

Метрики репликации (redis_replication_*)

Метрика

Тип

Описание

redis_replication_role

Gauge

Роль в репликации (1 = master, 0 = slave)

redis_replication_connected_slaves

Gauge

Количество подключенных реплик

redis_replication_master_repl_offset

Gauge

Смещение репликации на мастере

redis_replication_slave_repl_offset

Gauge

Смещение репликации на реплике

redis_replication_master_sync_in_progress

Gauge

Статус синхронизации с мастером (1 = в процессе, 0 = нет)

redis_replication_slave_read_only

Gauge

Режим только чтения на реплике (1 = включен, 0 = выключен)

Метрики персистентности (redis_rdb_, redis_aof_)

Метрика

Тип

Описание

redis_rdb_changes_since_last_save

Gauge

Количество изменений с последнего сохранения RDB

redis_rdb_last_save_time_seconds

Gauge

Время последнего сохранения RDB (Unix timestamp)

redis_rdb_last_bgsave_status

Gauge

Статус последнего фонового сохранения RDB (1 = успешно, 0 = ошибка)

redis_rdb_last_bgsave_time_sec

Gauge

Длительность последнего фонового сохранения RDB (секунды)

redis_aof_enabled

Gauge

Включен ли AOF (1 = да, 0 = нет)

redis_aof_last_rewrite_time_seconds

Gauge

Время последней перезаписи AOF (Unix timestamp)

redis_aof_last_bgrewrite_status

Gauge

Статус последней фоновой перезаписи AOF (1 = успешно, 0 = ошибка)

redis_aof_current_size_bytes

Gauge

Текущий размер файла AOF в байтах

redis_aof_base_size_bytes

Gauge

Базовый размер файла AOF в байтах

Метрики производительности (redis_cpu_, redis_stats_)

Метрика

Тип

Описание

redis_cpu_sys_seconds_total

Counter

Время CPU в системном режиме (секунды)

redis_cpu_user_seconds_total

Counter

Время CPU в пользовательском режиме (секунды)

redis_cpu_sys_children_seconds_total

Counter

Время CPU дочерних процессов в системном режиме (секунды)

redis_cpu_user_children_seconds_total

Counter

Время CPU дочерних процессов в пользовательском режиме (секунды)

redis_net_input_bytes_total

Counter

Объем входящего сетевого трафика (байты)

redis_net_output_bytes_total

Counter

Объем исходящего сетевого трафика (байты)

redis_net_input_errors_total

Counter

Количество ошибок входящего трафика

redis_net_output_errors_total

Counter

Количество ошибок исходящего трафика

Метрики кластера (redis_cluster_*)

Метрика

Тип

Описание

redis_cluster_enabled

Gauge

Включен ли кластерный режим (1 = да, 0 = нет)

redis_cluster_known_nodes

Gauge

Количество известных узлов кластера

redis_cluster_size

Gauge

Размер кластера (количество мастеров)

redis_cluster_current_epoch

Gauge

Текущая эпоха кластера

redis_cluster_my_epoch

Gauge

Эпоха текущего узла

Системные метрики экспортера (redis_exporter_*)

Метрика

Тип

Описание

redis_exporter_last_scrape_duration_seconds

Gauge

Длительность последнего сбора метрик (секунды)

redis_exporter_scrapes_total

Counter

Общее количество сборов метрик

redis_exporter_scrape_errors_total

Counter

Количество ошибок при сборе метрик

Примечание

Важно: Данный список метрик может быть неполным или устаревшим, так как Redis и redis_exporter постоянно развиваются и добавляют новые метрики. Для получения актуального и полного списка метрик рекомендуется обращаться к официальной документации Redis (для встроенных метрик) или официальной документации redis_exporter на GitHub (для внешнего экспортера), где представлен актуальный список всех собираемых метрик с подробными описаниями.

Дополнительная информация

Связанные разделы