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
Откройте раздел настройки агента
Добавьте новый источник данных
Укажите адрес:
http://<redis-host>:16379/metrics
Через файл конфигурации
metrics:
sources:
- name: redis
url: http://localhost:16379/metrics
interval: 30s
labels:
product: redis
component: database
Шаг 4: Визуализация встроенных метрик
Рекомендуемые дашборды для Grafana:
Redis Overview (ID: 11835)
Redis Dashboard (ID: 763)
Примечание
Подробнее о встроенных метриках 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
Откройте раздел настройки агента
Добавьте новый экспортер
redis_exporterУкажите параметры запуска
Настройка через файл конфигурации
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 Overview (ID: 11835)
Redis Dashboard (ID: 763)
Примечание
Подробнее о настройке redis_exporter читайте в документации экспортера и официальном репозитории.
Ключевые метрики для мониторинга
При настройке мониторинга обратите внимание на следующие группы метрик:
Память: использование памяти, фрагментация памяти, максимальный объем памяти
Производительность: операции в секунду, время выполнения команд, медленные команды
Ключи: количество ключей, время жизни ключей, истечение ключей
Репликация: состояние реплик, задержки репликации, лаг репликации
Клиенты: количество подключенных клиентов, максимальное количество клиентов
Персистентность: состояние RDB и AOF, частота сохранений
Ошибки: количество ошибок, ошибки памяти, ошибки репликации
Собираемые метрики Redis
Ниже представлен список основных метрик, собираемых Redis (встроенные метрики или через redis_exporter), с их описанием и назначением.
Метрики общего состояния (redis_up, redis_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Доступность Redis (1 = доступен, 0 = недоступен) |
|
Gauge |
Время работы сервера в секундах |
|
Gauge |
Версия Redis (в виде метки) |
Метрики памяти (redis_memory_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Использованная память в байтах |
|
Gauge |
Пиковое использование памяти в байтах |
|
Gauge |
Максимальный объем памяти в байтах |
|
Gauge |
Коэффициент фрагментации памяти |
|
Gauge |
Память, выделенная операционной системой (RSS) в байтах |
|
Gauge |
Память, используемая для данных в байтах |
|
Gauge |
Память, используемая для накладных расходов в байтах |
Метрики команд (redis_commands_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Counter |
Общее количество обработанных команд |
|
Counter |
Количество команд по типам (get, set, и т.д.) |
|
Gauge |
Операций в секунду |
|
Counter |
Общее время выполнения команд в секундах |
|
Histogram |
Распределение времени выполнения команд |
Метрики ключей (redis_keys_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Количество ключей в базе данных |
|
Gauge |
Количество ключей с установленным временем истечения |
|
Gauge |
Среднее время жизни ключей в секундах |
|
Counter |
Количество истекших ключей |
|
Counter |
Количество вытесненных ключей (при нехватке памяти) |
Метрики клиентов (redis_clients_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Количество подключенных клиентов |
|
Gauge |
Максимальное количество подключений |
|
Gauge |
Количество заблокированных клиентов |
|
Counter |
Количество отклоненных подключений |
Метрики репликации (redis_replication_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Роль в репликации (1 = master, 0 = slave) |
|
Gauge |
Количество подключенных реплик |
|
Gauge |
Смещение репликации на мастере |
|
Gauge |
Смещение репликации на реплике |
|
Gauge |
Статус синхронизации с мастером (1 = в процессе, 0 = нет) |
|
Gauge |
Режим только чтения на реплике (1 = включен, 0 = выключен) |
Метрики персистентности (redis_rdb_, redis_aof_)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Количество изменений с последнего сохранения RDB |
|
Gauge |
Время последнего сохранения RDB (Unix timestamp) |
|
Gauge |
Статус последнего фонового сохранения RDB (1 = успешно, 0 = ошибка) |
|
Gauge |
Длительность последнего фонового сохранения RDB (секунды) |
|
Gauge |
Включен ли AOF (1 = да, 0 = нет) |
|
Gauge |
Время последней перезаписи AOF (Unix timestamp) |
|
Gauge |
Статус последней фоновой перезаписи AOF (1 = успешно, 0 = ошибка) |
|
Gauge |
Текущий размер файла AOF в байтах |
|
Gauge |
Базовый размер файла AOF в байтах |
Метрики производительности (redis_cpu_, redis_stats_)
Метрика |
Тип |
Описание |
|---|---|---|
|
Counter |
Время CPU в системном режиме (секунды) |
|
Counter |
Время CPU в пользовательском режиме (секунды) |
|
Counter |
Время CPU дочерних процессов в системном режиме (секунды) |
|
Counter |
Время CPU дочерних процессов в пользовательском режиме (секунды) |
|
Counter |
Объем входящего сетевого трафика (байты) |
|
Counter |
Объем исходящего сетевого трафика (байты) |
|
Counter |
Количество ошибок входящего трафика |
|
Counter |
Количество ошибок исходящего трафика |
Метрики кластера (redis_cluster_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Включен ли кластерный режим (1 = да, 0 = нет) |
|
Gauge |
Количество известных узлов кластера |
|
Gauge |
Размер кластера (количество мастеров) |
|
Gauge |
Текущая эпоха кластера |
|
Gauge |
Эпоха текущего узла |
Системные метрики экспортера (redis_exporter_*)
Метрика |
Тип |
Описание |
|---|---|---|
|
Gauge |
Длительность последнего сбора метрик (секунды) |
|
Counter |
Общее количество сборов метрик |
|
Counter |
Количество ошибок при сборе метрик |
Примечание
Важно: Данный список метрик может быть неполным или устаревшим, так как Redis и redis_exporter постоянно развиваются и добавляют новые метрики. Для получения актуального и полного списка метрик рекомендуется обращаться к официальной документации Redis (для встроенных метрик) или официальной документации redis_exporter на GitHub (для внешнего экспортера), где представлен актуальный список всех собираемых метрик с подробными описаниями.