Prometheus Redis
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 в Ключ-АСТРОМ.
Установка расширения
- Скачайте пакет расширения.
- В интерфейсе Ключ-АСТРОМ откройте раздел управления расширениями.
- Загрузите архив расширения.
- Откройте расширение
prometheus-redis. - Добавьте конфигурацию мониторинга.
- Выберите удалённый режим выполнения.
- Укажите группу EEC, с которой доступен Redis Exporter.
- Добавьте Prometheus endpoint.
- Выберите необходимые наборы функций.
- Сохраните и активируйте конфигурацию.
Настройка подключения
Укажите 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
|
Доступность и время работы Redis. |
| Память | ru.ruscomtech.extension.prometheus_redis-redis_memory_used_bytes
|
Использование памяти и её фрагментация. |
| Клиенты | ru.ruscomtech.extension.prometheus_redis-redis_connected_clients
|
Подключённые и заблокированные клиенты, отклонённые подключения. |
| Команды | ru.ruscomtech.extension.prometheus_redis-redis_commands_processed_total.count
|
Выполненные, завершившиеся ошибкой и отклонённые команды. |
| Keyspace | ru.ruscomtech.extension.prometheus_redis-redis_keyspace_hits_total.count
|
Попадания, промахи и рассчитанный коэффициент попаданий в кеш. |
| Базы данных | ru.ruscomtech.extension.prometheus_redis-redis_db_keys
|
Количество ключей и среднее время жизни. |
| Удаление ключей | ru.ruscomtech.extension.prometheus_redis-redis_evicted_keys_total.count
|
Ключи, удалённые из-за нехватки памяти или истечения TTL. |
| Репликация | ru.ruscomtech.extension.prometheus_redis-redis_master_repl_offset
|
Состояние журнала репликации и повторной синхронизации. |
| Сеть | ru.ruscomtech.extension.prometheus_redis-redis_net_input_bytes_total.count
|
Входящий и исходящий сетевой трафик. |
| Экспортёр | ru.ruscomtech.extension.prometheus_redis-redis_exporter_last_scrape_error
|
Ошибки, продолжительность и количество опросов 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 |
|